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 0b5ccda45dbeb2c5b7fe5d73459c4adf0827731c..d3297959109af14d5cb03d1143c0332d29b47909 100644 |
--- a/content/renderer/media/rtc_video_decoder.cc |
+++ b/content/renderer/media/rtc_video_decoder.cc |
@@ -71,8 +71,10 @@ RTCVideoDecoder::BufferData::BufferData() {} |
RTCVideoDecoder::BufferData::~BufferData() {} |
RTCVideoDecoder::RTCVideoDecoder( |
+ webrtc::VideoCodecType type, |
const scoped_refptr<media::GpuVideoAcceleratorFactories>& factories) |
- : factories_(factories), |
+ : video_codec_type_(type), |
+ factories_(factories), |
decoder_texture_target_(0), |
next_picture_buffer_id_(0), |
state_(UNINITIALIZED), |
@@ -116,13 +118,16 @@ 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(); |
} |
base::WaitableEvent waiter(true, false); |
- decoder.reset(new RTCVideoDecoder(factories)); |
+ decoder.reset(new RTCVideoDecoder(type, factories)); |
decoder->factories_->GetTaskRunner()->PostTask( |
FROM_HERE, |
base::Bind(&RTCVideoDecoder::CreateVDA, |
@@ -130,7 +135,7 @@ scoped_ptr<RTCVideoDecoder> RTCVideoDecoder::Create( |
profile, |
&waiter)); |
waiter.Wait(); |
- // vda can be NULL if VP8 is not supported. |
+ // vda can be NULL if the codec is not supported. |
if (decoder->vda_ != NULL) { |
decoder->state_ = INITIALIZED; |
} else { |
@@ -142,8 +147,9 @@ 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(video_codec_type_ == codecSettings->codecType); |
DaleCurtis
2014/08/15 16:48:49
DCHECK_EQ
hshi1
2014/08/15 20:14:56
Done.
|
+ if (codecSettings->codecType == webrtc::kVideoCodecVP8 && |
+ codecSettings->codecSpecific.VP8.feedbackModeOn) { |
LOG(ERROR) << "Feedback mode not supported"; |
return RecordInitDecodeUMA(WEBRTC_VIDEO_CODEC_ERROR); |
} |