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

Side by Side Diff: content/renderer/media_recorder/video_track_recorder.cc

Issue 2801803002: Android: enable H264&VP8 HW accelerator for MediaRecorder (Closed)
Patch Set: remove change in ffmpeg_demuxer.cc 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/media_recorder/video_track_recorder.h" 5 #include "content/renderer/media_recorder/video_track_recorder.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 59
60 using CodecId = VideoTrackRecorder::CodecId; 60 using CodecId = VideoTrackRecorder::CodecId;
61 61
62 static const struct { 62 static const struct {
63 CodecId codec_id; 63 CodecId codec_id;
64 media::VideoCodecProfile min_profile; 64 media::VideoCodecProfile min_profile;
65 media::VideoCodecProfile max_profile; 65 media::VideoCodecProfile max_profile;
66 } kPreferredCodecIdAndVEAProfiles[] = { 66 } kPreferredCodecIdAndVEAProfiles[] = {
67 {CodecId::VP8, media::VP8PROFILE_MIN, media::VP8PROFILE_MAX}, 67 {CodecId::VP8, media::VP8PROFILE_MIN, media::VP8PROFILE_MAX},
68 {CodecId::VP9, media::VP9PROFILE_MIN, media::VP9PROFILE_MAX}, 68 {CodecId::VP9, media::VP9PROFILE_MIN, media::VP9PROFILE_MAX},
69 #if BUILDFLAG(RTC_USE_H264) 69 #if defined(IS_H264_SUPPORTED)
70 {CodecId::H264, media::H264PROFILE_MIN, media::H264PROFILE_MAX} 70 {CodecId::H264, media::H264PROFILE_MIN, media::H264PROFILE_MAX}
71 #endif 71 #endif
72 }; 72 };
73 73
74 static_assert(arraysize(kPreferredCodecIdAndVEAProfiles) == 74 static_assert(arraysize(kPreferredCodecIdAndVEAProfiles) ==
75 static_cast<int>(CodecId::LAST), 75 static_cast<int>(CodecId::LAST),
76 "|kPreferredCodecIdAndVEAProfiles| should consider all CodecIds"); 76 "|kPreferredCodecIdAndVEAProfiles| should consider all CodecIds");
77 77
78 // Class to encapsulate the enumeration of CodecIds/VideoCodecProfiles supported 78 // Class to encapsulate the enumeration of CodecIds/VideoCodecProfiles supported
79 // by the VEA underlying platform. Provides methods to query the preferred 79 // by the VEA underlying platform. Provides methods to query the preferred
(...skipping 22 matching lines...) Expand all
102 static CodecEnumerator* enumerator = new CodecEnumerator(); 102 static CodecEnumerator* enumerator = new CodecEnumerator();
103 return enumerator; 103 return enumerator;
104 } 104 }
105 105
106 CodecEnumerator::CodecEnumerator() { 106 CodecEnumerator::CodecEnumerator() {
107 #if defined(OS_CHROMEOS) 107 #if defined(OS_CHROMEOS)
108 // See https://crbug.com/616659. 108 // See https://crbug.com/616659.
109 return; 109 return;
110 #endif 110 #endif
111 111
112 #if defined(OS_ANDROID)
113 // See https://crbug.com/653864.
114 return;
115 #endif
116
117 content::RenderThreadImpl* const render_thread_impl = 112 content::RenderThreadImpl* const render_thread_impl =
118 content::RenderThreadImpl::current(); 113 content::RenderThreadImpl::current();
119 if (!render_thread_impl) { 114 if (!render_thread_impl) {
120 DVLOG(2) << "Couldn't access the render thread"; 115 DVLOG(2) << "Couldn't access the render thread";
121 return; 116 return;
122 } 117 }
123 118
124 media::GpuVideoAcceleratorFactories* const gpu_factories = 119 media::GpuVideoAcceleratorFactories* const gpu_factories =
125 render_thread_impl->GetGpuFactories(); 120 render_thread_impl->GetGpuFactories();
126 if (!gpu_factories || !gpu_factories->IsGpuVideoAcceleratorEnabled()) { 121 if (!gpu_factories || !gpu_factories->IsGpuVideoAcceleratorEnabled()) {
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 MediaStreamVideoSink::DisconnectFromTrack(); 453 MediaStreamVideoSink::DisconnectFromTrack();
459 encoder_ = nullptr; 454 encoder_ = nullptr;
460 MediaStreamVideoSink::ConnectToTrack( 455 MediaStreamVideoSink::ConnectToTrack(
461 track_, 456 track_,
462 media::BindToCurrentLoop(base::Bind(initialize_encoder_callback_, 457 media::BindToCurrentLoop(base::Bind(initialize_encoder_callback_,
463 false /*allow_vea_encoder*/)), 458 false /*allow_vea_encoder*/)),
464 false); 459 false);
465 } 460 }
466 461
467 } // namespace content 462 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698