Index: webrtc/modules/video_coding/main/source/generic_decoder.cc |
diff --git a/webrtc/modules/video_coding/main/source/generic_decoder.cc b/webrtc/modules/video_coding/main/source/generic_decoder.cc |
index f874e163c83f6ad3a3362cefe32a014f23585059..0e2451402709b5c352e340d5389108bacc2f427a 100644 |
--- a/webrtc/modules/video_coding/main/source/generic_decoder.cc |
+++ b/webrtc/modules/video_coding/main/source/generic_decoder.cc |
@@ -18,15 +18,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() |
{ |
@@ -102,6 +99,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); |
@@ -157,6 +161,7 @@ int32_t VCMGenericDecoder::Decode(const VCMEncodedFrame& frame, |
frame.CodecSpecific(), |
frame.RenderTimeMs()); |
+ _callback->OnDecoderImplementationName(_decoder.ImplementationName()); |
if (ret < WEBRTC_VIDEO_CODEC_OK) |
{ |
LOG(LS_WARNING) << "Failed to decode frame with timestamp " |