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 dc78ec21f214fe1fe69316b7b92586bb9da4be7a..3c72509c052d978276fe5c964b327ce993453d7e 100644 |
--- a/webrtc/modules/video_coding/generic_decoder.cc |
+++ b/webrtc/modules/video_coding/generic_decoder.cc |
@@ -19,15 +19,12 @@ namespace webrtc { |
VCMDecodedFrameCallback::VCMDecodedFrameCallback(VCMTiming& timing, |
Clock* clock) |
-: |
-_critSect(CriticalSectionWrapper::CreateCriticalSection()), |
-_clock(clock), |
-_receiveCallback(NULL), |
-_timing(timing), |
-_timestampMap(kDecoderFrameMemoryLength), |
-_lastReceivedPictureID(0) |
-{ |
-} |
+ : _critSect(CriticalSectionWrapper::CreateCriticalSection()), |
+ _clock(clock), |
+ _receiveCallback(NULL), |
+ _timing(timing), |
+ _timestampMap(kDecoderFrameMemoryLength), |
+ _lastReceivedPictureID(0) {} |
VCMDecodedFrameCallback::~VCMDecodedFrameCallback() |
{ |
@@ -115,6 +112,13 @@ uint64_t VCMDecodedFrameCallback::LastReceivedPictureID() const |
return _lastReceivedPictureID; |
} |
+void VCMDecodedFrameCallback::OnDecoderImplementationName( |
+ const char* implementation_name) { |
+ CriticalSectionScoped cs(_critSect); |
+ if (_receiveCallback) |
+ _receiveCallback->OnDecoderImplementationName(implementation_name); |
+} |
+ |
void VCMDecodedFrameCallback::Map(uint32_t timestamp, |
VCMFrameInformation* frameInfo) { |
CriticalSectionScoped cs(_critSect); |
@@ -164,6 +168,7 @@ int32_t VCMGenericDecoder::Decode(const VCMEncodedFrame& frame, int64_t nowMs) { |
frame.FragmentationHeader(), |
frame.CodecSpecific(), frame.RenderTimeMs()); |
+ _callback->OnDecoderImplementationName(_decoder->ImplementationName()); |
if (ret < WEBRTC_VIDEO_CODEC_OK) |
{ |
LOG(LS_WARNING) << "Failed to decode frame with timestamp " |