diff options
-rw-r--r-- | api/media_stream_interface.h | 14 | ||||
-rw-r--r-- | media/base/adapted_video_track_source.h | 8 | ||||
-rw-r--r-- | pc/rtc_stats_collector_unittest.cc | 6 | ||||
-rw-r--r-- | pc/video_track_source.h | 7 | ||||
-rw-r--r-- | sdk/android/native_api/video/video_source.cc | 8 |
5 files changed, 33 insertions, 10 deletions
diff --git a/api/media_stream_interface.h b/api/media_stream_interface.h index 79d463d788..bd4a2c0292 100644 --- a/api/media_stream_interface.h +++ b/api/media_stream_interface.h @@ -137,15 +137,11 @@ class VideoTrackSourceInterface : public MediaSourceInterface, virtual bool GetStats(Stats* stats) = 0; // Returns true if encoded output can be enabled in the source. - // TODO(bugs.webrtc.org/11114): make pure virtual once downstream project - // adapts. - virtual bool SupportsEncodedOutput() const { return false; } + virtual bool SupportsEncodedOutput() const = 0; // Reliably cause a key frame to be generated in encoded output. // TODO(bugs.webrtc.org/11115): find optimal naming. - // TODO(bugs.webrtc.org/11114): make pure virtual once downstream project - // adapts. - virtual void GenerateKeyFrame() {} + virtual void GenerateKeyFrame() = 0; // Add an encoded video sink to the source and additionally cause // a key frame to be generated from the source. The sink will be @@ -153,13 +149,11 @@ class VideoTrackSourceInterface : public MediaSourceInterface, // TODO(bugs.webrtc.org/11114): make pure virtual once downstream project // adapts. virtual void AddEncodedSink( - rtc::VideoSinkInterface<RecordableEncodedFrame>* sink) {} + rtc::VideoSinkInterface<RecordableEncodedFrame>* sink) = 0; // Removes an encoded video sink from the source. - // TODO(bugs.webrtc.org/11114): make pure virtual once downstream project - // adapts. virtual void RemoveEncodedSink( - rtc::VideoSinkInterface<RecordableEncodedFrame>* sink) {} + rtc::VideoSinkInterface<RecordableEncodedFrame>* sink) = 0; protected: ~VideoTrackSourceInterface() override = default; diff --git a/media/base/adapted_video_track_source.h b/media/base/adapted_video_track_source.h index 667715a272..7dbab540ed 100644 --- a/media/base/adapted_video_track_source.h +++ b/media/base/adapted_video_track_source.h @@ -79,6 +79,14 @@ class RTC_EXPORT AdaptedVideoTrackSource void OnSinkWantsChanged(const rtc::VideoSinkWants& wants); + // Encoded sinks not implemented for AdaptedVideoTrackSource. + bool SupportsEncodedOutput() const override { return false; } + void GenerateKeyFrame() override {} + void AddEncodedSink( + rtc::VideoSinkInterface<webrtc::RecordableEncodedFrame>* sink) override {} + void RemoveEncodedSink( + rtc::VideoSinkInterface<webrtc::RecordableEncodedFrame>* sink) override {} + cricket::VideoAdapter video_adapter_; rtc::CriticalSection stats_crit_; diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc index d3114f328e..db00dd7d91 100644 --- a/pc/rtc_stats_collector_unittest.cc +++ b/pc/rtc_stats_collector_unittest.cc @@ -248,6 +248,12 @@ class FakeVideoTrackSourceForStats : public VideoTrackSourceInterface { void AddOrUpdateSink(rtc::VideoSinkInterface<VideoFrame>* sink, const rtc::VideoSinkWants& wants) override {} void RemoveSink(rtc::VideoSinkInterface<VideoFrame>* sink) override {} + bool SupportsEncodedOutput() const override { return false; } + void GenerateKeyFrame() override {} + void AddEncodedSink( + rtc::VideoSinkInterface<RecordableEncodedFrame>* sink) override {} + void RemoveEncodedSink( + rtc::VideoSinkInterface<RecordableEncodedFrame>* sink) override {} private: int input_width_; diff --git a/pc/video_track_source.h b/pc/video_track_source.h index ad0fe09619..27331eac4f 100644 --- a/pc/video_track_source.h +++ b/pc/video_track_source.h @@ -41,6 +41,13 @@ class RTC_EXPORT VideoTrackSource : public Notifier<VideoTrackSourceInterface> { const rtc::VideoSinkWants& wants) override; void RemoveSink(rtc::VideoSinkInterface<VideoFrame>* sink) override; + bool SupportsEncodedOutput() const override { return false; } + void GenerateKeyFrame() override {} + void AddEncodedSink( + rtc::VideoSinkInterface<RecordableEncodedFrame>* sink) override {} + void RemoveEncodedSink( + rtc::VideoSinkInterface<RecordableEncodedFrame>* sink) override {} + protected: virtual rtc::VideoSourceInterface<VideoFrame>* source() = 0; diff --git a/sdk/android/native_api/video/video_source.cc b/sdk/android/native_api/video/video_source.cc index a813f40313..1f4bc4dead 100644 --- a/sdk/android/native_api/video/video_source.cc +++ b/sdk/android/native_api/video/video_source.cc @@ -89,6 +89,14 @@ class JavaVideoTrackSourceImpl : public JavaVideoTrackSourceInterface { } private: + // Encoded sinks not implemented for JavaVideoTrackSourceImpl. + bool SupportsEncodedOutput() const override { return false; } + void GenerateKeyFrame() override {} + void AddEncodedSink( + rtc::VideoSinkInterface<webrtc::RecordableEncodedFrame>* sink) override {} + void RemoveEncodedSink( + rtc::VideoSinkInterface<webrtc::RecordableEncodedFrame>* sink) override {} + rtc::scoped_refptr<jni::AndroidVideoTrackSource> android_video_track_source_; ScopedJavaGlobalRef<jobject> native_capturer_observer_; }; |