From fdd41ecf6b05b02a1ee12583e537f1cdb5922919 Mon Sep 17 00:00:00 2001 From: Danil Chapovalov Date: Thu, 23 Jul 2020 11:28:50 +0200 Subject: [PATCH] Add EncodedImageCallback::OnEncodedImage without RTPFragmentationHeader RTPFragmentationHeader is no longer used by any webrtc code. Bug: webrtc:6471 Change-Id: I1362d58465c550f5c8e0a5b292dc0abcd6251431 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/180120 Reviewed-by: Sebastian Jansson Reviewed-by: Rasmus Brandt Reviewed-by: Niels Moller Commit-Queue: Danil Chapovalov Cr-Commit-Position: refs/heads/master@{#31833} --- api/test/mock_video_encoder.h | 4 ++++ api/video_codecs/video_encoder.cc | 13 +++++++++++++ api/video_codecs/video_encoder.h | 14 ++++++++++---- 3 files changed, 27 insertions(+), 4 deletions(-) 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..c5b855349a 100644 --- a/api/video_codecs/video_encoder.h +++ b/api/video_codecs/video_encoder.h @@ -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) {} };