Chromium Code Reviews| 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) |