diff options
author | liberato <liberato@chromium.org> | 2016-02-29 16:25:55 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-01 00:28:00 +0000 |
commit | 46e95bb6168b76d8664d3dc9bd971d06be4a2fc0 (patch) | |
tree | d68bb3a4b05a9861e77cce9704f4fb2361c562ee /gpu | |
parent | 542f9e5244355165647f0a6897b7c44bdc92503b (diff) | |
download | chromium_src-46e95bb6168b76d8664d3dc9bd971d06be4a2fc0.zip chromium_src-46e95bb6168b76d8664d3dc9bd971d06be4a2fc0.tar.gz chromium_src-46e95bb6168b76d8664d3dc9bd971d06be4a2fc0.tar.bz2 |
Check that MediaCodec sends FORMAT_CHANGED before decoded buffers.
It looks like MediaCodec erroneously returns decoded frames before
sending an OUTPUT_FORMAT_CHANGED notification. This will cause us to
SendDecodedFrameToClient, then crashes when it tries to get a
picture buffer to use.
MediaCodec is not supposed to do that, see EncodeDecodeTest.java
line 617 in the android cts tests. Once it does, it's unclear what
state it's in. We post an error and stop decoding.
I do not have a local repro, so this is my best guess about what is
causing some reported crashes. They seem to happen only on JB with
Adreno 330 GPUs (Snapdragon 800 series), driver version 45. This
combination has been added to the blacklist for accelerated video
decoding (AVDA).
This CL also adds a metric for how often this occurs, to help to
identify other affected devices.
BUG=585963
CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel
Review URL: https://codereview.chromium.org/1685303004
Cr-Commit-Position: refs/heads/master@{#378340}
Diffstat (limited to 'gpu')
-rw-r--r-- | gpu/config/software_rendering_list_json.cc | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/gpu/config/software_rendering_list_json.cc b/gpu/config/software_rendering_list_json.cc index 484467d..fb8b84c 100644 --- a/gpu/config/software_rendering_list_json.cc +++ b/gpu/config/software_rendering_list_json.cc @@ -18,7 +18,7 @@ const char kSoftwareRenderingListJson[] = LONG_STRING_CONST( { "name": "software rendering list", // Please update the version number whenever you change this file. - "version": "10.17", + "version": "10.18", "entries": [ { "id": 1, @@ -1189,6 +1189,26 @@ LONG_STRING_CONST( "gpu_rasterization", "accelerated_2d_canvas" ] + }, + { + "id": 109, + "description": "MediaCodec on Adreno 330 / 4.2.2 doesn't always send FORMAT_CHANGED", + "cr_bugs": [585963], + "os": { + "type": "android", + "version": { + "op": "=", + "value": "4.2.2" + } + }, + "gl_renderer": "Adreno \\(TM\\) 330", + "driver_version": { + "op": "=", + "value": "45.0" + }, + "features": [ + "accelerated_video_decode" + ] } ] } |