Index: content/renderer/media/rtc_video_decoder.cc |
diff --git a/content/renderer/media/rtc_video_decoder.cc b/content/renderer/media/rtc_video_decoder.cc |
index 4e4b3199683e7a0f33e37f48fee7360be304417c..509b72802e954553413447009c8ce44662e83025 100644 |
--- a/content/renderer/media/rtc_video_decoder.cc |
+++ b/content/renderer/media/rtc_video_decoder.cc |
@@ -120,6 +120,9 @@ scoped_ptr<RTCVideoDecoder> RTCVideoDecoder::Create( |
case webrtc::kVideoCodecVP8: |
profile = media::VP8PROFILE_MAIN; |
break; |
+ case webrtc::kVideoCodecH264: |
+ profile = media::H264PROFILE_MAIN; |
+ break; |
default: |
DVLOG(2) << "Video codec not supported:" << type; |
return decoder.Pass(); |
@@ -146,8 +149,10 @@ scoped_ptr<RTCVideoDecoder> RTCVideoDecoder::Create( |
int32_t RTCVideoDecoder::InitDecode(const webrtc::VideoCodec* codecSettings, |
int32_t /*numberOfCores*/) { |
DVLOG(2) << "InitDecode"; |
- DCHECK_EQ(codecSettings->codecType, webrtc::kVideoCodecVP8); |
- if (codecSettings->codecSpecific.VP8.feedbackModeOn) { |
+ DCHECK(codecSettings->codecType == webrtc::kVideoCodecVP8 || |
+ codecSettings->codecType == webrtc::kVideoCodecH264); |
+ if (codecSettings->codecType == webrtc::kVideoCodecVP8 && |
+ codecSettings->codecSpecific.VP8.feedbackModeOn) { |
LOG(ERROR) << "Feedback mode not supported"; |
return RecordInitDecodeUMA(WEBRTC_VIDEO_CODEC_ERROR); |
} |
@@ -208,10 +213,12 @@ int32_t RTCVideoDecoder::Decode( |
bool need_to_reset_for_midstream_resize = false; |
if (inputImage._frameType == webrtc::kKeyFrame) { |
+ int width = inputImage._encodedWidth ? inputImage._encodedWidth : 640; |
+ int height = inputImage._encodedHeight ? inputImage._encodedHeight : 480; |
DVLOG(2) << "Got key frame. size=" << inputImage._encodedWidth << "x" |
<< inputImage._encodedHeight; |
gfx::Size prev_frame_size = frame_size_; |
- frame_size_.SetSize(inputImage._encodedWidth, inputImage._encodedHeight); |
+ frame_size_.SetSize(width, height); |
if (!kVDACanHandleMidstreamResize && !prev_frame_size.IsEmpty() && |
prev_frame_size != frame_size_) { |
need_to_reset_for_midstream_resize = true; |