diff --git a/api/test/mock_video_encoder.h b/api/test/mock_video_encoder.h index 26d758fd6a..b4ae27106a 100644 --- a/api/test/mock_video_encoder.h +++ b/api/test/mock_video_encoder.h @@ -26,6 +26,10 @@ class MockEncodedImageCallback : public EncodedImageCallback { const CodecSpecificInfo*, const RTPFragmentationHeader*), (override)); + MOCK_METHOD(Result, + OnEncodedImage, + (const EncodedImage&, const CodecSpecificInfo*), + (override)); MOCK_METHOD(void, OnDroppedFrame, (DropReason reason), (override)); }; diff --git a/api/video_codecs/video_encoder.cc b/api/video_codecs/video_encoder.cc index 4427d6c1f1..ab946a26e0 100644 --- a/api/video_codecs/video_encoder.cc +++ b/api/video_codecs/video_encoder.cc @@ -18,6 +18,19 @@ namespace webrtc { +EncodedImageCallback::Result EncodedImageCallback::OnEncodedImage( + const EncodedImage& encoded_image, + const CodecSpecificInfo* codec_specific_info, + const RTPFragmentationHeader* /*fragmentation*/) { + return OnEncodedImage(encoded_image, codec_specific_info); +} + +EncodedImageCallback::Result EncodedImageCallback::OnEncodedImage( + const EncodedImage& encoded_image, + const CodecSpecificInfo* codec_specific_info) { + return OnEncodedImage(encoded_image, codec_specific_info, nullptr); +} + // TODO(mflodman): Add default complexity for VP9 and VP9. VideoCodecVP8 VideoEncoder::GetDefaultVp8Settings() { VideoCodecVP8 vp8_settings; diff --git a/api/video_codecs/video_encoder.h b/api/video_codecs/video_encoder.h index 064dc8ffb5..50f21d7e1c 100644 --- a/api/video_codecs/video_encoder.h +++ b/api/video_codecs/video_encoder.h @@ -36,7 +36,7 @@ struct CodecSpecificInfo; constexpr int kDefaultMinPixelsPerFrame = 320 * 180; -class EncodedImageCallback { +class RTC_EXPORT EncodedImageCallback { public: virtual ~EncodedImageCallback() {} @@ -73,10 +73,16 @@ class EncodedImageCallback { }; // Callback function which is called when an image has been encoded. - virtual Result OnEncodedImage( - const EncodedImage& encoded_image, - const CodecSpecificInfo* codec_specific_info, - const RTPFragmentationHeader* fragmentation) = 0; + // Deprecated, use OnEncodedImage below instead, see bugs.webrtc.org/6471 + virtual Result OnEncodedImage(const EncodedImage& encoded_image, + const CodecSpecificInfo* codec_specific_info, + const RTPFragmentationHeader* fragmentation); + + // Callback function which is called when an image has been encoded. + // TODO(bugs.webrtc.org/6471): Make pure virtual + // when OnEncodedImage above is deleted. + virtual Result OnEncodedImage(const EncodedImage& encoded_image, + const CodecSpecificInfo* codec_specific_info); virtual void OnDroppedFrame(DropReason reason) {} };