Chromium Code Reviews| Index: webrtc/modules/video_coding/main/source/generic_encoder.cc |
| diff --git a/webrtc/modules/video_coding/main/source/generic_encoder.cc b/webrtc/modules/video_coding/main/source/generic_encoder.cc |
| index fe3d5cb9915cb44a2e4b9b932b4a9f04d518a08f..e25499ae0c0c6f3e5fbceb51433bcab23e0ec0c6 100644 |
| --- a/webrtc/modules/video_coding/main/source/generic_encoder.cc |
| +++ b/webrtc/modules/video_coding/main/source/generic_encoder.cc |
| @@ -153,6 +153,12 @@ int32_t VCMGenericEncoder::Encode(const VideoFrame& inputFrame, |
| } |
| int32_t result = encoder_->Encode(inputFrame, codecSpecificInfo, &frameTypes); |
| + |
| + if (vcm_encoded_frame_callback_) { |
| + vcm_encoded_frame_callback_->LastEncoderImplementationUsed( |
| + encoder_->ImplementationName()); |
| + } |
| + |
| if (is_screenshare_ && |
| result == WEBRTC_VIDEO_CODEC_TARGET_BITRATE_OVERSHOOT) { |
| // Target bitrate exceeded, encoder state has been reset - try again. |
| @@ -255,7 +261,7 @@ int VCMGenericEncoder::GetTargetFramerate() { |
| ***************************/ |
| VCMEncodedFrameCallback::VCMEncodedFrameCallback( |
| EncodedImageCallback* post_encode_callback) |
| - : _sendCallback(), |
| + : send_callback_(), |
| _mediaOpt(NULL), |
| _payloadType(0), |
| _internalSource(false), |
| @@ -281,25 +287,25 @@ VCMEncodedFrameCallback::~VCMEncodedFrameCallback() |
| int32_t |
| VCMEncodedFrameCallback::SetTransportCallback(VCMPacketizationCallback* transport) |
| { |
| - _sendCallback = transport; |
| + send_callback_ = transport; |
| return VCM_OK; |
| } |
| int32_t VCMEncodedFrameCallback::Encoded( |
| - const EncodedImage& encodedImage, |
| + const EncodedImage& encoded_image, |
| const CodecSpecificInfo* codecSpecificInfo, |
| const RTPFragmentationHeader* fragmentationHeader) { |
| - RTC_DCHECK(encodedImage._frameType == kVideoFrameKey || |
| - encodedImage._frameType == kVideoFrameDelta); |
| - post_encode_callback_->Encoded(encodedImage, NULL, NULL); |
| + RTC_DCHECK(encoded_image._frameType == kVideoFrameKey || |
| + encoded_image._frameType == kVideoFrameDelta); |
| + post_encode_callback_->Encoded(encoded_image, NULL, NULL); |
| - if (_sendCallback == NULL) { |
| + if (send_callback_ == NULL) { |
| return VCM_UNINITIALIZED; |
| } |
| #ifdef DEBUG_ENCODER_BIT_STREAM |
| if (_bitStreamAfterEncoder != NULL) { |
| - fwrite(encodedImage._buffer, 1, encodedImage._length, |
| + fwrite(encoded_image._buffer, 1, encoded_image._length, |
| _bitStreamAfterEncoder); |
| } |
| #endif |
| @@ -312,25 +318,29 @@ int32_t VCMEncodedFrameCallback::Encoded( |
| } |
| rtpVideoHeader.rotation = _rotation; |
| - int32_t callbackReturn = _sendCallback->SendData( |
| - _payloadType, encodedImage, *fragmentationHeader, rtpVideoHeaderPtr); |
| + int32_t callbackReturn = send_callback_->SendData( |
| + _payloadType, encoded_image, *fragmentationHeader, rtpVideoHeaderPtr); |
| if (callbackReturn < 0) { |
| return callbackReturn; |
| } |
| if (_mediaOpt != NULL) { |
| - _mediaOpt->UpdateWithEncodedData(encodedImage); |
| + _mediaOpt->UpdateWithEncodedData(encoded_image); |
| if (_internalSource) |
| return _mediaOpt->DropFrame(); // Signal to encoder to drop next frame. |
| } |
| return VCM_OK; |
| } |
| -void |
| -VCMEncodedFrameCallback::SetMediaOpt( |
| - media_optimization::MediaOptimization *mediaOpt) |
| -{ |
| - _mediaOpt = mediaOpt; |
| +void VCMEncodedFrameCallback::SetMediaOpt( |
| + media_optimization::MediaOptimization* mediaOpt) { |
| + _mediaOpt = mediaOpt; |
| +} |
| + |
| +void VCMEncodedFrameCallback::LastEncoderImplementationUsed( |
|
stefan-webrtc
2015/10/27 08:31:53
SetLast...?
pbos-webrtc
2015/10/27 12:16:59
SignalLast.. done.
|
| + const char* implementation_name) { |
| + if (send_callback_) |
| + send_callback_->OnEncoderImplementationName(implementation_name); |
| } |
| } // namespace webrtc |