aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/media_stream_interface.h14
-rw-r--r--media/base/adapted_video_track_source.h8
-rw-r--r--pc/rtc_stats_collector_unittest.cc6
-rw-r--r--pc/video_track_source.h7
-rw-r--r--sdk/android/native_api/video/video_source.cc8
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_;
};