Add RegisterExternalDecoder in VideoCodingModule.

In preparation for landing https://webrtc-review.googlesource.com/c/src/+/72441
a downstream project that uses the VideoCodingModule needs to be able to
inject a decoder object created from the outside, just like how encoders
are possible to inject.

Bug: webrtc:7925
Change-Id: Ibaeffda55f84410436d79f75730e7352e298b9f0
Reviewed-on: https://webrtc-review.googlesource.com/77160
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23297}
diff --git a/modules/video_coding/include/video_coding.h b/modules/video_coding/include/video_coding.h
index 5aeb222..af03f1e 100644
--- a/modules/video_coding/include/video_coding.h
+++ b/modules/video_coding/include/video_coding.h
@@ -32,6 +32,7 @@
 
 class Clock;
 class EncodedImageCallback;
+class VideoDecoder;
 class VideoEncoder;
 struct CodecSpecificInfo;
 
@@ -205,6 +206,14 @@
                                        int32_t numberOfCores,
                                        bool requireKeyFrame = false) = 0;
 
+  // Register an external decoder object.
+  //
+  // Input:
+  //      - externalDecoder : Decoder object to be used for decoding frames.
+  //      - payloadType     : The payload type which this decoder is bound to.
+  virtual void RegisterExternalDecoder(VideoDecoder* externalDecoder,
+                                       uint8_t payloadType) = 0;
+
   // Register a receive callback. Will be called whenever there is a new frame
   // ready
   // for rendering.