summaryrefslogtreecommitdiffstats
path: root/gpu/config
diff options
context:
space:
mode:
authorfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-04 09:27:57 +0000
committerfischman@chromium.org <fischman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-04 09:27:57 +0000
commit6998f01f2c0dfb3a304eafeabddf7cadd1d08db9 (patch)
tree70c2a550552db75bbdd11944be6a17501367844d /gpu/config
parentc3998d38cf9c8f3008dc6c6b79a696bda5399115 (diff)
downloadchromium_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.cc2
-rw-r--r--gpu/config/gpu_blacklist_unittest.cc4
-rw-r--r--gpu/config/gpu_feature_type.h1
-rw-r--r--gpu/config/software_rendering_list_json.cc10
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"
+ ]
}
]
}