diff options
author | hshi@chromium.org <hshi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-16 00:53:42 +0000 |
---|---|---|
committer | hshi@chromium.org <hshi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-16 00:53:42 +0000 |
commit | 224016e9a37f89694e8d15e320de261c1399bfe9 (patch) | |
tree | 32ce1bbf981c26115bb6c11a10e290998774fb6a /content/common/gpu | |
parent | 1b416c962754e6dfe031084a1aeedf82108965fb (diff) | |
download | chromium_src-224016e9a37f89694e8d15e320de261c1399bfe9.zip chromium_src-224016e9a37f89694e8d15e320de261c1399bfe9.tar.gz chromium_src-224016e9a37f89694e8d15e320de261c1399bfe9.tar.bz2 |
Buffer returned textures from render to VDA
This is CrOS ARM only hot fix for tearing/out of order frames caused
by render/decode synchronization issues until we understand the
underlying problem (presumably in the driver) better.
The main effect of this change is to add an extra delay of 2 frames
between draw and decode to clearly separate both. We had a similar
hack in Flash when synchronization was broken (then in particular
> 2 was used to achieve sufficient delay). We have a total of 8
PictureBuffers in flight but only need about 4 for smooth playback.
(With this change we are down to 6 which is still sufficient.)
BUG=chromium:225563
AUTHOR=ihf@chromium.org
TEST=Ran on Daisy with different problematic videos and did not notice problems.
TBR=sheu
TBR=xhwang
NOTRY=true
Original Review CL: https://codereview.chromium.org/14238003/
Landing this on behalf of ihf@ - CQ is down.
Review URL: https://codereview.chromium.org/13994020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194267 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/common/gpu')
-rw-r--r-- | content/common/gpu/media/exynos_video_decode_accelerator.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/content/common/gpu/media/exynos_video_decode_accelerator.cc b/content/common/gpu/media/exynos_video_decode_accelerator.cc index 43089b9..0948ccc 100644 --- a/content/common/gpu/media/exynos_video_decode_accelerator.cc +++ b/content/common/gpu/media/exynos_video_decode_accelerator.cc @@ -1285,9 +1285,10 @@ void ExynosVideoDecodeAccelerator::EnqueueGsc() { } // Enqueue a GSC output, only if we need one + // TODO(ihf): Revert to size > 0 once issue 225563 is fixed. if (gsc_input_buffer_queued_count_ != 0 && gsc_output_buffer_queued_count_ == 0 && - !gsc_free_output_buffers_.empty()) { + gsc_free_output_buffers_.size() > 2) { const int old_gsc_outputs_queued = gsc_output_buffer_queued_count_; if (!EnqueueGscOutputRecord()) return; |