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

Unified Diff: content/renderer/media_recorder/video_track_recorder.cc

Issue 2832273002: Media Capabilities encoding: wire the hardware encoding support (Closed)
Patch Set: Created 3 years, 8 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
Index: content/renderer/media_recorder/video_track_recorder.cc
diff --git a/content/renderer/media_recorder/video_track_recorder.cc b/content/renderer/media_recorder/video_track_recorder.cc
index 8b7477374e1b9ae67e0d3a51dca4ddb0efdde62d..6ea98944edc1032d45e908ebfe1117d4ebf00fb9 100644
--- a/content/renderer/media_recorder/video_track_recorder.cc
+++ b/content/renderer/media_recorder/video_track_recorder.cc
@@ -327,6 +327,16 @@ VideoTrackRecorder::CodecId VideoTrackRecorder::GetPreferredCodecId() {
return GetCodecEnumerator()->GetPreferredCodecId();
}
+// static
+bool VideoTrackRecorder::IsEncodingLikelyAccelerated(CodecId codec,
+ size_t width,
+ size_t height) {
+ return GetCodecEnumerator()->CodecIdToVEAProfile(codec) !=
+ media::VIDEO_CODEC_PROFILE_UNKNOWN &&
+ width >= kVEAEncoderMinResolutionWidth &&
+ height >= kVEAEncoderMinResolutionHeight;
+}
+
VideoTrackRecorder::VideoTrackRecorder(
CodecId codec,
const blink::WebMediaStreamTrack& track,
@@ -405,17 +415,15 @@ void VideoTrackRecorder::InitializeEncoder(
MediaStreamVideoSink::DisconnectFromTrack();
const gfx::Size& input_size = frame->visible_rect().size();
- const auto& vea_supported_profile =
- GetCodecEnumerator()->CodecIdToVEAProfile(codec);
if (allow_vea_encoder &&
- vea_supported_profile != media::VIDEO_CODEC_PROFILE_UNKNOWN &&
- input_size.width() >= kVEAEncoderMinResolutionWidth &&
- input_size.height() >= kVEAEncoderMinResolutionHeight) {
+ IsEncodingLikelyAccelerated(codec, input_size.width(),
emircan 2017/04/25 02:04:30 This serves as a decision mechanism of accelerated
mcasas 2017/04/25 18:16:07 CanUseAcceleratedEncoder() ?
+ input_size.height())) {
+ const auto vea_profile = GetCodecEnumerator()->CodecIdToVEAProfile(codec);
encoder_ = new VEAEncoder(
on_encoded_video_callback,
media::BindToCurrentLoop(base::Bind(&VideoTrackRecorder::OnError,
weak_ptr_factory_.GetWeakPtr())),
- bits_per_second, vea_supported_profile, input_size);
+ bits_per_second, vea_profile, input_size);
} else {
switch (codec) {
#if BUILDFLAG(RTC_USE_H264)

Powered by Google App Engine
This is Rietveld 408576698