Reland "Add EncodedImageCallback::OnEncodedImage without RTPFragmentationHeader"
This is a reland of fdd41ecf6b05b02a1ee12583e537f1cdb5922919
Original change's description:
> 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 <srte@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31833}
Bug: webrtc:6471
Change-Id: I7f551110a68704bfe12897772083c3616acd173c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/180881
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31848}
diff --git a/api/test/mock_video_encoder.h b/api/test/mock_video_encoder.h
index 26d758f..b4ae271 100644
--- a/api/test/mock_video_encoder.h
+++ b/api/test/mock_video_encoder.h
@@ -26,6 +26,10 @@
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 4427d6c..ab946a2 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 064dc8f..50f21d7 100644
--- a/api/video_codecs/video_encoder.h
+++ b/api/video_codecs/video_encoder.h
@@ -36,7 +36,7 @@
constexpr int kDefaultMinPixelsPerFrame = 320 * 180;
-class EncodedImageCallback {
+class RTC_EXPORT EncodedImageCallback {
public:
virtual ~EncodedImageCallback() {}
@@ -73,10 +73,16 @@
};
// 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) {}
};