Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(899)

Unified Diff: content/renderer/media/rtc_video_decoder.cc

Issue 457733002: Support for H264 HW offload for webRTC. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased at 291440. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/media/rtc_video_decoder.h ('k') | content/renderer/media/rtc_video_decoder_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
}
« no previous file with comments | « content/renderer/media/rtc_video_decoder.h ('k') | content/renderer/media/rtc_video_decoder_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698