diff options
Diffstat (limited to 'webrtc/modules/video_coding/main/source/video_receiver.cc')
-rw-r--r-- | webrtc/modules/video_coding/main/source/video_receiver.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/webrtc/modules/video_coding/main/source/video_receiver.cc b/webrtc/modules/video_coding/main/source/video_receiver.cc index cea8b448d5..68668eae7d 100644 --- a/webrtc/modules/video_coding/main/source/video_receiver.cc +++ b/webrtc/modules/video_coding/main/source/video_receiver.cc @@ -52,6 +52,7 @@ VideoReceiver::VideoReceiver(const int32_t id, _keyRequestMode(kKeyOnError), _scheduleKeyRequest(false), max_nack_list_size_(0), + pre_decode_image_callback_(NULL), _codecDataBase(id), _receiveStatsTimer(1000, clock_), _retransmissionTimer(10, clock_), @@ -400,6 +401,11 @@ int32_t VideoReceiver::Decode(uint16_t maxWaitTimeMs) { _timing.UpdateCurrentDelay(frame->RenderTimeMs(), clock_->TimeInMilliseconds()); + if (pre_decode_image_callback_) { + EncodedImage encoded_image(frame->EncodedImage()); + pre_decode_image_callback_->Encoded(encoded_image); + } + #ifdef DEBUG_DECODER_BIT_STREAM if (_bitStreamBeforeDecoder != NULL) { // Write bit stream to file for debugging purposes @@ -815,5 +821,11 @@ int VideoReceiver::SetMinReceiverDelay(int desired_delay_ms) { return _receiver.SetMinReceiverDelay(desired_delay_ms); } +void VideoReceiver::RegisterPreDecodeImageCallback( + EncodedImageCallback* observer) { + CriticalSectionScoped cs(_receiveCritSect); + pre_decode_image_callback_ = observer; +} + } // namespace vcm } // namespace webrtc |