From 9211a180887b188cf818a4568677dfb4c93e5b8b Mon Sep 17 00:00:00 2001 From: "Carsten \"Tomcat\" Book" Date: Tue, 2 Aug 2016 12:53:48 +0200 Subject: [PATCH] Backed out changeset f239b2ba9c46 (bug 1201363) --- .../src/mediapipeline/MediaPipeline.cpp | 73 +++---------------- .../src/mediapipeline/MediaPipeline.h | 2 - .../webrtc/signaling/test/FakeMediaStreams.h | 25 ------- 3 files changed, 11 insertions(+), 89 deletions(-) diff --git a/media/webrtc/signaling/src/mediapipeline/MediaPipeline.cpp b/media/webrtc/signaling/src/mediapipeline/MediaPipeline.cpp index 42c76c77e9e7..bdcdbef2d325 100644 --- a/media/webrtc/signaling/src/mediapipeline/MediaPipeline.cpp +++ b/media/webrtc/signaling/src/mediapipeline/MediaPipeline.cpp @@ -25,9 +25,7 @@ #include "DOMMediaStream.h" #include "MediaStreamTrack.h" #include "MediaStreamListener.h" -#include "MediaStreamVideoSink.h" #include "VideoUtils.h" -#include "VideoStreamTrack.h" #ifdef WEBRTC_GONK #include "GrallocImages.h" #include "mozilla/layers/GrallocTextureClient.h" @@ -1260,34 +1258,6 @@ protected: }; #endif -class MediaPipelineTransmit::PipelineVideoSink : - public MediaStreamVideoSink -{ -public: - explicit PipelineVideoSink(const RefPtr& conduit, - MediaPipelineTransmit::PipelineListener* listener) - : conduit_(conduit) - , pipelineListener_(listener) - { - } - - virtual void SetCurrentFrames(const VideoSegment& aSegment) override; - virtual void ClearFrames() override {} - -private: - ~PipelineVideoSink() { - // release conduit on mainthread. Must use forget()! - nsresult rv = NS_DispatchToMainThread(new - ConduitDeleteEvent(conduit_.forget())); - MOZ_ASSERT(!NS_FAILED(rv),"Could not dispatch conduit shutdown to main"); - if (NS_FAILED(rv)) { - MOZ_CRASH(); - } - } - RefPtr conduit_; - MediaPipelineTransmit::PipelineListener* pipelineListener_; -}; - MediaPipelineTransmit::MediaPipelineTransmit( const std::string& pc, nsCOMPtr main_thread, @@ -1302,7 +1272,6 @@ MediaPipelineTransmit::MediaPipelineTransmit( MediaPipeline(pc, TRANSMIT, main_thread, sts_thread, track_id, level, conduit, rtp_transport, rtcp_transport, filter), listener_(new PipelineListener(conduit)), - video_sink_(new PipelineVideoSink(conduit, listener_)), domtrack_(domtrack) { #if !defined(MOZILLA_EXTERNAL_LINKAGE) @@ -1356,10 +1325,6 @@ void MediaPipelineTransmit::AttachToTrack(const std::string& track_id) { domtrack_->AddDirectListener(listener_); domtrack_->AddListener(listener_); -#if !defined(MOZILLA_EXTERNAL_LINKAGE) - domtrack_->AddDirectListener(video_sink_); -#endif - #ifndef MOZILLA_INTERNAL_API // this enables the unit tests that can't fiddle with principals and the like listener_->SetEnabled(true); @@ -1408,7 +1373,6 @@ MediaPipelineTransmit::DetachMedia() if (domtrack_) { domtrack_->RemoveDirectListener(listener_); domtrack_->RemoveListener(listener_); - domtrack_->RemoveDirectListener(video_sink_); domtrack_ = nullptr; } // Let the listener be destroyed with the pipeline (or later). @@ -1679,6 +1643,17 @@ NewData(MediaStreamGraph* graph, rate, *iter); iter.Next(); } + } else if (media.GetType() == MediaSegment::VIDEO) { +#if !defined(MOZILLA_EXTERNAL_LINKAGE) + VideoSegment* video = const_cast( + static_cast(&media)); + + VideoSegment::ChunkIterator iter(*video); + while(!iter.IsEnded()) { + converter_->QueueVideoChunk(*iter, !enabled_); + iter.Next(); + } +#endif } else { // Ignore } @@ -1752,32 +1727,6 @@ void MediaPipelineTransmit::PipelineListener::ProcessAudioChunk( } } -void MediaPipelineTransmit::PipelineVideoSink:: -SetCurrentFrames(const VideoSegment& aSegment) -{ - MOZ_ASSERT(pipelineListener_); - - if (!pipelineListener_->active_) { - MOZ_MTLOG(ML_DEBUG, "Discarding packets because transport not ready"); - return; - } - - if (conduit_->type() != MediaSessionConduit::VIDEO) { - // Ignore data of wrong kind in case we have a muxed stream - return; - } - -#if !defined(MOZILLA_EXTERNAL_LINKAGE) - VideoSegment* video = const_cast(&aSegment); - - VideoSegment::ChunkIterator iter(*video); - while(!iter.IsEnded()) { - pipelineListener_->converter_->QueueVideoChunk(*iter, !pipelineListener_->enabled_); - iter.Next(); - } -#endif -} - class TrackAddedCallback { public: virtual void TrackAdded(TrackTicks current_ticks) = 0; diff --git a/media/webrtc/signaling/src/mediapipeline/MediaPipeline.h b/media/webrtc/signaling/src/mediapipeline/MediaPipeline.h index 003e76380038..638abf7b2523 100644 --- a/media/webrtc/signaling/src/mediapipeline/MediaPipeline.h +++ b/media/webrtc/signaling/src/mediapipeline/MediaPipeline.h @@ -342,7 +342,6 @@ public: // Separate classes to allow ref counting class PipelineListener; class VideoFrameFeeder; - class PipelineVideoSink; protected: ~MediaPipelineTransmit(); @@ -353,7 +352,6 @@ public: RefPtr feeder_; RefPtr converter_; #endif - RefPtr video_sink_; dom::MediaStreamTrack* domtrack_; }; diff --git a/media/webrtc/signaling/test/FakeMediaStreams.h b/media/webrtc/signaling/test/FakeMediaStreams.h index b8529718d429..6ad33d6e3f88 100644 --- a/media/webrtc/signaling/test/FakeMediaStreams.h +++ b/media/webrtc/signaling/test/FakeMediaStreams.h @@ -23,7 +23,6 @@ #include "AudioSegment.h" #include "MediaSegment.h" #include "StreamTracks.h" -#include "VideoSegment.h" #include "nsTArray.h" #include "nsIRunnable.h" #include "nsISupportsImpl.h" @@ -148,29 +147,6 @@ public: virtual void NotifyDirectListenerUninstalled() = 0; }; -class Fake_MediaStreamVideoSink : public Fake_DirectMediaStreamTrackListener{ -public: - NS_INLINE_DECL_THREADSAFE_REFCOUNTING(Fake_MediaStreamVideoSink) - - Fake_MediaStreamVideoSink() {} - - void NotifyQueuedChanges(mozilla::MediaStreamGraph* aGraph, - mozilla::StreamTime aTrackOffset, - const mozilla::MediaSegment& aQueuedMedia) override {} - - void NotifyRealtimeTrackData(mozilla::MediaStreamGraph* aGraph, - mozilla::StreamTime aTrackOffset, - const mozilla::MediaSegment& aMedia) override {} - void NotifyDirectListenerInstalled(InstallationResult aResult) override {} - void NotifyDirectListenerUninstalled() override {} - - virtual void SetCurrentFrames(const mozilla::VideoSegment& aSegment) {}; - virtual void ClearFrames() {}; - -protected: - virtual ~Fake_MediaStreamVideoSink() {} -}; - // Note: only one listener supported class Fake_MediaStream { protected: @@ -643,7 +619,6 @@ typedef Fake_MediaStreamTrackListener MediaStreamTrackListener; typedef Fake_DirectMediaStreamTrackListener DirectMediaStreamTrackListener; typedef Fake_DOMMediaStream DOMMediaStream; typedef Fake_DOMMediaStream DOMLocalMediaStream; -typedef Fake_MediaStreamVideoSink MediaStreamVideoSink; namespace dom { typedef Fake_MediaStreamTrack MediaStreamTrack;