| 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 c55ebbdca2e04cbe6aa4a82667e7d7f01e3c63fb..60ae893d9d4c502af3f7f4bc554c3eedb2136615 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_ANY;
|
| 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_EQ(video_codec_type_, codecSettings->codecType);
|
| + if (codecSettings->codecType == webrtc::kVideoCodecVP8 &&
|
| + codecSettings->codecSpecific.VP8.feedbackModeOn) {
|
| LOG(ERROR) << "Feedback mode not supported";
|
| return RecordInitDecodeUMA(WEBRTC_VIDEO_CODEC_ERROR);
|
| }
|
|
|