|
|
Chromium Code Reviews
Descriptionmedia: Stop flushing the renderer for pipeline suspend
Previously when performing a pipeline suspend we would flush the
renderer before destructing it. This CL removes the flush because
it's no longer necessary and has issues:
1) it adds ~100-150ms to suspend on a Galaxy Nexus (which makes
a difference for fullscreen transitions), and
2) on <API level 18 devices it will cause AVDA to go into an
error state when it handles the flush by creating a new
MediaCodec without a valid output surface.
BUG=596641, 595545
TEST=media_unittests
Committed: https://crrev.com/9edddb9ded49023460a204675ee4e9bb763b9da7
Cr-Commit-Position: refs/heads/master@{#382417}
Patch Set 1 #Patch Set 2 : Removing Flush from unittests #
Messages
Total messages: 19 (10 generated)
watk@chromium.org changed reviewers: + sandersd@chromium.org
I tested this on Android by causing a bunch of suspends and wasn't able to cause any issues. I also tried it on desktop with --enable-media-suspend and tab switching a lot. No issues AFAICT.
dalecurtis@chromium.org changed reviewers: + dalecurtis@chromium.org
Should give this a BUG= since we might want to merge later since this speeds up the transition and may reduce the number decode errors too.
dalecurtis@chromium.org changed reviewers: - dalecurtis@chromium.org
Description was changed from ========== media: Stop flushing the renderer for pipeline suspend Previously when performing a pipeline suspend we would flush the renderer before destructing it. This CL removes the flush because it's no longer necessary and adds ~100-150ms to suspend on a Galaxy Nexus (which makes a difference for fullscreen transitions). BUG= ========== to ========== media: Stop flushing the renderer for pipeline suspend Previously when performing a pipeline suspend we would flush the renderer before destructing it. This CL removes the flush because it's no longer necessary and adds ~100-150ms to suspend on a Galaxy Nexus (which makes a difference for fullscreen transitions). BUG=596641 TEST=media_unittests ==========
Description was changed from ========== media: Stop flushing the renderer for pipeline suspend Previously when performing a pipeline suspend we would flush the renderer before destructing it. This CL removes the flush because it's no longer necessary and adds ~100-150ms to suspend on a Galaxy Nexus (which makes a difference for fullscreen transitions). BUG=596641 TEST=media_unittests ========== to ========== media: Stop flushing the renderer for pipeline suspend Previously when performing a pipeline suspend we would flush the renderer before destructing it. This CL removes the flush because it's no longer necessary and adds ~100-150ms to suspend on a Galaxy Nexus (which makes a difference for fullscreen transitions). BUG=596641,595545 TEST=media_unittests ==========
Description was changed from ========== media: Stop flushing the renderer for pipeline suspend Previously when performing a pipeline suspend we would flush the renderer before destructing it. This CL removes the flush because it's no longer necessary and adds ~100-150ms to suspend on a Galaxy Nexus (which makes a difference for fullscreen transitions). BUG=596641,595545 TEST=media_unittests ========== to ========== media: Stop flushing the renderer for pipeline suspend Previously when performing a pipeline suspend we would flush the renderer before destructing it. This CL removes the flush because it's no longer necessary and has issues: 1) it adds ~100-150ms to suspend on a Galaxy Nexus (which makes a difference for fullscreen transitions), and 2) on <API level 18 devices it will cause AVDA to go into an error state when it handles the flush by creating a new MediaCodec without a valid output surface. BUG=596641,595545 TEST=media_unittests ==========
lgtm
The CQ bit was checked by watk@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1815423002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1815423002/20001
Message was sent while issue was closed.
Description was changed from ========== media: Stop flushing the renderer for pipeline suspend Previously when performing a pipeline suspend we would flush the renderer before destructing it. This CL removes the flush because it's no longer necessary and has issues: 1) it adds ~100-150ms to suspend on a Galaxy Nexus (which makes a difference for fullscreen transitions), and 2) on <API level 18 devices it will cause AVDA to go into an error state when it handles the flush by creating a new MediaCodec without a valid output surface. BUG=596641,595545 TEST=media_unittests ========== to ========== media: Stop flushing the renderer for pipeline suspend Previously when performing a pipeline suspend we would flush the renderer before destructing it. This CL removes the flush because it's no longer necessary and has issues: 1) it adds ~100-150ms to suspend on a Galaxy Nexus (which makes a difference for fullscreen transitions), and 2) on <API level 18 devices it will cause AVDA to go into an error state when it handles the flush by creating a new MediaCodec without a valid output surface. BUG=596641,595545 TEST=media_unittests ==========
Message was sent while issue was closed.
Committed patchset #2 (id:20001)
Message was sent while issue was closed.
Description was changed from ========== media: Stop flushing the renderer for pipeline suspend Previously when performing a pipeline suspend we would flush the renderer before destructing it. This CL removes the flush because it's no longer necessary and has issues: 1) it adds ~100-150ms to suspend on a Galaxy Nexus (which makes a difference for fullscreen transitions), and 2) on <API level 18 devices it will cause AVDA to go into an error state when it handles the flush by creating a new MediaCodec without a valid output surface. BUG=596641,595545 TEST=media_unittests ========== to ========== media: Stop flushing the renderer for pipeline suspend Previously when performing a pipeline suspend we would flush the renderer before destructing it. This CL removes the flush because it's no longer necessary and has issues: 1) it adds ~100-150ms to suspend on a Galaxy Nexus (which makes a difference for fullscreen transitions), and 2) on <API level 18 devices it will cause AVDA to go into an error state when it handles the flush by creating a new MediaCodec without a valid output surface. BUG=596641,595545 TEST=media_unittests Committed: https://crrev.com/9edddb9ded49023460a204675ee4e9bb763b9da7 Cr-Commit-Position: refs/heads/master@{#382417} ==========
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/9edddb9ded49023460a204675ee4e9bb763b9da7 Cr-Commit-Position: refs/heads/master@{#382417}
Message was sent while issue was closed.
A revert of this CL (patchset #2 id:20001) has been created in https://codereview.chromium.org/1824923002/ by watk@chromium.org. The reason for reverting is: This hit a CHECK in PipelineIntegrationTest.SuspendWhilePlaying [12876:12876:0321/173811:1285613567:FATAL:ffmpeg_demuxer.cc(592)] Check failed: read_cb_.is_null(). Overlapping reads are not supported https://build.chromium.org/p/chromium.memory.fyi/builders/Chromium%20OS%20%28... This was something we didn't consider and probably can't be relanded without a fair amount of work..
Message was sent while issue was closed.
dalecurtis@chromium.org changed reviewers: + dalecurtis@chromium.org
Message was sent while issue was closed.
Ah, you'll likely need to abort the current read or wait for it to complete before allowing resume. It might be possible to coordinate the demuxer and pipeline in some way to resolve this. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
