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) {}
 };