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

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

Issue 2832273002: Media Capabilities encoding: wire the hardware encoding support (Closed)
Patch Set: moved base::SysInfo::IsLowEndDevice back inside a method 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
« no previous file with comments | « content/renderer/media_recorder/video_track_recorder.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 96cb15c59538018ae513dd08fd64c6216398e6b8..6b46f88c0a11ed7cdb6befe30c80c4f758970c45 100644
--- a/content/renderer/media_recorder/video_track_recorder.cc
+++ b/content/renderer/media_recorder/video_track_recorder.cc
@@ -332,6 +332,16 @@ VideoTrackRecorder::CodecId VideoTrackRecorder::GetPreferredCodecId() {
return GetCodecEnumerator()->GetPreferredCodecId();
}
+// static
+bool VideoTrackRecorder::CanUseAcceleratedEncoder(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,
@@ -410,17 +420,14 @@ 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) {
+ if (allow_vea_encoder && CanUseAcceleratedEncoder(codec, input_size.width(),
+ 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)
« no previous file with comments | « content/renderer/media_recorder/video_track_recorder.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698