diff options
author | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-04 09:27:57 +0000 |
---|---|---|
committer | fischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-04 09:27:57 +0000 |
commit | 6998f01f2c0dfb3a304eafeabddf7cadd1d08db9 (patch) | |
tree | 70c2a550552db75bbdd11944be6a17501367844d /gpu/config | |
parent | c3998d38cf9c8f3008dc6c6b79a696bda5399115 (diff) | |
download | chromium_src-6998f01f2c0dfb3a304eafeabddf7cadd1d08db9.zip chromium_src-6998f01f2c0dfb3a304eafeabddf7cadd1d08db9.tar.gz chromium_src-6998f01f2c0dfb3a304eafeabddf7cadd1d08db9.tar.bz2 |
AndroidVideoEncodeAccelerator is born!
AVEA is the encode-side analogue of AndroidVideoDecodeAccelerator, or the
Android analogue of ExynosVideoEncodeAccelerator, depending on your POV.
Also included in this CL:
- MediaCodecBridge learns how to be an encoder, too.
- MediaCodecBridge::Start is sunk into Create since they were always called
together.
- android.os.Log() is given an exception parameter instead of concatenating its
.toString() (and losing its stacktrace!)
- MediaCodecBridge exposes its buffers to reduce unnecessary memcpy'ing
Performance impact: isolating encode performance by making Android decode only
240p and no audio send/receive with the following URLs:
z620/gprecise: https://apprtc.appspot.com/?video=maxHeight=240&audio=false&r=<ROOM>
Nexus5: https://apprtc.appspot.com/?video=minHeight=720,maxHeight=720,minWidth=1280,maxWidth=1280&audio=false&r=<ROOM>
All 4 cores are max'd are running at top speed (ondemand governor ramps them up
on its own with this workload).
SW encode: CPU utilization 80% and desktop receives 0.1-0.5FPS (jankily).
HW encode: CPU utilization 60-70% and desktop receives 30FPS reliably.
Comparing an easier workload of encoding 360p:
z620/gprecise: https://apprtc.appspot.com/?video=maxHeight=240&audio=false&r=<ROOM>
Nexus5: https://apprtc.appspot.com/?video=minHeight=360,maxHeight=360,minWidth=640,maxWidth=640&audio=false&r=<ROOM>
Set all 4 cores to "performance" governor for stable comparison.
SW encode: CPU utilization 63% and desktop receives 30FPS reliably.
HW encode: CPU utilization 53% and desktop receives 30FPS reliably.
BUG=313115
Review URL: https://codereview.chromium.org/74563002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238658 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/config')
-rw-r--r-- | gpu/config/gpu_blacklist.cc | 2 | ||||
-rw-r--r-- | gpu/config/gpu_blacklist_unittest.cc | 4 | ||||
-rw-r--r-- | gpu/config/gpu_feature_type.h | 1 | ||||
-rw-r--r-- | gpu/config/software_rendering_list_json.cc | 10 |
4 files changed, 17 insertions, 0 deletions
diff --git a/gpu/config/gpu_blacklist.cc b/gpu/config/gpu_blacklist.cc index 39946b0..92c5207 100644 --- a/gpu/config/gpu_blacklist.cc +++ b/gpu/config/gpu_blacklist.cc @@ -36,6 +36,8 @@ GpuBlacklist* GpuBlacklist::Create() { GPU_FEATURE_TYPE_TEXTURE_SHARING); list->AddSupportedFeature("accelerated_video_decode", GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE); + list->AddSupportedFeature("accelerated_video_encode", + GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE); list->AddSupportedFeature("3d_css", GPU_FEATURE_TYPE_3D_CSS); list->AddSupportedFeature("accelerated_video", diff --git a/gpu/config/gpu_blacklist_unittest.cc b/gpu/config/gpu_blacklist_unittest.cc index b1ed333..af381e0 100644 --- a/gpu/config/gpu_blacklist_unittest.cc +++ b/gpu/config/gpu_blacklist_unittest.cc @@ -123,6 +123,10 @@ GPU_BLACKLIST_FEATURE_TEST(AcceleratedVideoDecode, "accelerated_video_decode", GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE) +GPU_BLACKLIST_FEATURE_TEST(AcceleratedVideoEncode, + "accelerated_video_encode", + GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE) + GPU_BLACKLIST_FEATURE_TEST(Css3D, "3d_css", GPU_FEATURE_TYPE_3D_CSS) diff --git a/gpu/config/gpu_feature_type.h b/gpu/config/gpu_feature_type.h index b082d78..e0e4df4 100644 --- a/gpu/config/gpu_feature_type.h +++ b/gpu/config/gpu_feature_type.h @@ -19,6 +19,7 @@ enum GpuFeatureType { GPU_FEATURE_TYPE_FLASH_STAGE3D, GPU_FEATURE_TYPE_TEXTURE_SHARING, GPU_FEATURE_TYPE_ACCELERATED_VIDEO_DECODE, + GPU_FEATURE_TYPE_ACCELERATED_VIDEO_ENCODE, GPU_FEATURE_TYPE_3D_CSS, GPU_FEATURE_TYPE_ACCELERATED_VIDEO, GPU_FEATURE_TYPE_PANEL_FITTING, diff --git a/gpu/config/software_rendering_list_json.cc b/gpu/config/software_rendering_list_json.cc index 6ed261f..d686d84 100644 --- a/gpu/config/software_rendering_list_json.cc +++ b/gpu/config/software_rendering_list_json.cc @@ -971,6 +971,16 @@ LONG_STRING_CONST( "features": [ "force_compositing_mode" ] + }, + { + "id": 82, + "description": "MediaCodec is still too buggy to use for encoding (b/11536167).", + "os": { + "type": "android" + }, + "features": [ + "accelerated_video_encode" + ] } ] } |