| Index: webrtc/modules/video_coding/generic_decoder.cc
|
| diff --git a/webrtc/modules/video_coding/generic_decoder.cc b/webrtc/modules/video_coding/generic_decoder.cc
|
| index b95571b8f73793718d318eedc82fff249e9a9f17..7acacbb40947716528ba7eaa1a45dcc61c50488e 100644
|
| --- a/webrtc/modules/video_coding/generic_decoder.cc
|
| +++ b/webrtc/modules/video_coding/generic_decoder.cc
|
| @@ -48,6 +48,15 @@ int32_t VCMDecodedFrameCallback::Decoded(VideoFrame& decodedImage) {
|
|
|
| int32_t VCMDecodedFrameCallback::Decoded(VideoFrame& decodedImage,
|
| int64_t decode_time_ms) {
|
| + return Decoded(decodedImage,
|
| + decode_time_ms >= 0 ? rtc::Optional<int32_t>(decode_time_ms)
|
| + : rtc::Optional<int32_t>(),
|
| + rtc::Optional<uint8_t>());
|
| +}
|
| +
|
| +int32_t VCMDecodedFrameCallback::Decoded(VideoFrame& decodedImage,
|
| + rtc::Optional<int32_t> decode_time_ms,
|
| + rtc::Optional<uint8_t> qp) {
|
| TRACE_EVENT_INSTANT1("webrtc", "VCMDecodedFrameCallback::Decoded",
|
| "timestamp", decodedImage.timestamp());
|
| // TODO(holmer): We should improve this so that we can handle multiple
|
| @@ -67,11 +76,11 @@ int32_t VCMDecodedFrameCallback::Decoded(VideoFrame& decodedImage,
|
| }
|
|
|
| const int64_t now_ms = _clock->TimeInMilliseconds();
|
| - if (decode_time_ms < 0) {
|
| + if (!decode_time_ms) {
|
| decode_time_ms =
|
| - static_cast<int32_t>(now_ms - frameInfo->decodeStartTimeMs);
|
| + rtc::Optional<int32_t>(now_ms - frameInfo->decodeStartTimeMs);
|
| }
|
| - _timing->StopDecodeTimer(decodedImage.timestamp(), decode_time_ms, now_ms,
|
| + _timing->StopDecodeTimer(decodedImage.timestamp(), *decode_time_ms, now_ms,
|
| frameInfo->renderTimeMs);
|
|
|
| decodedImage.set_render_time_ms(frameInfo->renderTimeMs);
|
| @@ -79,7 +88,7 @@ int32_t VCMDecodedFrameCallback::Decoded(VideoFrame& decodedImage,
|
| // TODO(sakal): Investigate why callback is NULL sometimes and replace if
|
| // statement with a DCHECK.
|
| if (callback) {
|
| - callback->FrameToRender(decodedImage);
|
| + callback->FrameToRender(decodedImage, qp);
|
| } else {
|
| LOG(LS_WARNING) << "No callback, dropping frame.";
|
| }
|
|
|