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

Unified Diff: content/renderer/media/rtc_video_encoder_factory.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_encoder.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/media/rtc_video_encoder_factory.cc
diff --git a/content/renderer/media/rtc_video_encoder_factory.cc b/content/renderer/media/rtc_video_encoder_factory.cc
index e9c1578817dab8cd5b38b8552588ad778b613cef..b21792204877947f0ac89cbb01098781239c62e9 100644
--- a/content/renderer/media/rtc_video_encoder_factory.cc
+++ b/content/renderer/media/rtc_video_encoder_factory.cc
@@ -14,32 +14,26 @@ namespace content {
namespace {
// Translate from media::VideoEncodeAccelerator::SupportedProfile to
-// cricket::WebRtcVideoEncoderFactory::VideoCodec
-cricket::WebRtcVideoEncoderFactory::VideoCodec VEAToWebRTCCodec(
+// one or more instances of cricket::WebRtcVideoEncoderFactory::VideoCodec
+void VEAToWebRTCCodecs(
+ std::vector<cricket::WebRtcVideoEncoderFactory::VideoCodec>* codecs,
const media::VideoEncodeAccelerator::SupportedProfile& profile) {
- webrtc::VideoCodecType type = webrtc::kVideoCodecUnknown;
- std::string name;
- int width = 0, height = 0, fps = 0;
+ int width = profile.max_resolution.width();
+ int height = profile.max_resolution.height();
+ int fps = profile.max_framerate.numerator;
+ DCHECK_EQ(profile.max_framerate.denominator, 1U);
if (profile.profile >= media::VP8PROFILE_MIN &&
profile.profile <= media::VP8PROFILE_MAX) {
- type = webrtc::kVideoCodecVP8;
- name = "VP8";
+ codecs->push_back(cricket::WebRtcVideoEncoderFactory::VideoCodec(
+ webrtc::kVideoCodecVP8, "VP8", width, height, fps));
} else if (profile.profile >= media::H264PROFILE_MIN &&
profile.profile <= media::H264PROFILE_MAX) {
- type = webrtc::kVideoCodecGeneric;
- name = "CAST1";
+ codecs->push_back(cricket::WebRtcVideoEncoderFactory::VideoCodec(
+ webrtc::kVideoCodecGeneric, "CAST1", width, height, fps));
+ codecs->push_back(cricket::WebRtcVideoEncoderFactory::VideoCodec(
+ webrtc::kVideoCodecH264, "H264", width, height, fps));
}
-
- if (type != webrtc::kVideoCodecUnknown) {
- width = profile.max_resolution.width();
- height = profile.max_resolution.height();
- fps = profile.max_framerate.numerator;
- DCHECK_EQ(profile.max_framerate.denominator, 1U);
- }
-
- return cricket::WebRtcVideoEncoderFactory::VideoCodec(
- type, name, width, height, fps);
}
// Translate from cricket::WebRtcVideoEncoderFactory::VideoCodec to
@@ -49,6 +43,7 @@ media::VideoCodecProfile WebRTCCodecToVideoCodecProfile(
switch (type) {
case webrtc::kVideoCodecVP8:
return media::VP8PROFILE_ANY;
+ case webrtc::kVideoCodecH264:
case webrtc::kVideoCodecGeneric:
return media::H264PROFILE_MAIN;
default:
@@ -64,11 +59,8 @@ RTCVideoEncoderFactory::RTCVideoEncoderFactory(
// Query media::VideoEncodeAccelerator (statically) for our supported codecs.
std::vector<media::VideoEncodeAccelerator::SupportedProfile> profiles =
GpuVideoEncodeAcceleratorHost::GetSupportedProfiles();
- for (size_t i = 0; i < profiles.size(); ++i) {
- VideoCodec codec = VEAToWebRTCCodec(profiles[i]);
- if (codec.type != webrtc::kVideoCodecUnknown)
- codecs_.push_back(codec);
- }
+ for (size_t i = 0; i < profiles.size(); ++i)
+ VEAToWebRTCCodecs(&codecs_, profiles[i]);
}
RTCVideoEncoderFactory::~RTCVideoEncoderFactory() {}
« no previous file with comments | « content/renderer/media/rtc_video_encoder.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698