|
|
Descriptionmedia: Increase the default audio buffer size for encrypted streams
Encrypted audio may need to be decrypted on the renderer main thread
which means that long running tasks on that thread can stall audio
decoding, causing noticeable audio gaps.
By increasing the default initial buffer size from 200ms to 500ms for
encrypted streams, we should drastically reduce the occurrence of
audio hitches caused by this.
There is ongoing work to move decryption to the media thread, at which
point we can revert this change (http://crbug.com/403462).
This change has an impact on preload time (load() to loaded) for audio
because we now decode more. On a linux z620 preload time for crowd.ogg
goes from 94ms to 130ms. (Release, component, dcheck_always_on build).
BUG=718161
Review-Url: https://codereview.chromium.org/2858393002
Cr-Commit-Position: refs/heads/master@{#471522}
Committed: https://chromium.googlesource.com/chromium/src/+/a51ee9488f2b82b1dc8e9c79881b97dc318f0b39
Patch Set 1 #
Total comments: 3
Patch Set 2 : fixed #Patch Set 3 : fix cast's FakeMediaSource #Patch Set 4 : Revert test #Patch Set 5 : Fix another chromecast usage of AudioRendererAlgorithm #
Messages
Total messages: 61 (32 generated)
watk@chromium.org changed reviewers: + xhwang@chromium.org
xhwang: PTAL. I don't love the increase in preload time, but I think it's the right trade off until we land SoDo. dalecurtis: FYI
https://codereview.chromium.org/2858393002/diff/1/media/test/pipeline_integra... File media/test/pipeline_integration_test.cc (right): https://codereview.chromium.org/2858393002/diff/1/media/test/pipeline_integra... media/test/pipeline_integration_test.cc:1490: "-0.71,0.36,2.96,2.68,2.10,-1.08,"))); This changed because it hashes all audio it's seen. I Don't know why it changes so little though.
Sorry for the delay! The idea looks good. But it seems we are missing some code in this CL? https://codereview.chromium.org/2858393002/diff/1/media/renderers/audio_rende... File media/renderers/audio_renderer_impl.h (right): https://codereview.chromium.org/2858393002/diff/1/media/renderers/audio_rende... media/renderers/audio_renderer_impl.h:249: bool encrypted_; I am not seeing this initialized and/or set anywhere? Style nit: is_encrypted_
The CQ bit was checked by watk@chromium.org to run a CQ dry run
Patchset #2 (id:20001) has been deleted
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by watk@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Oops, looks like I lost some changes. For testing I was always using 500ms for unencrypted too.
PTAL thanks! https://codereview.chromium.org/2858393002/diff/1/media/renderers/audio_rende... File media/renderers/audio_renderer_impl.h (right): https://codereview.chromium.org/2858393002/diff/1/media/renderers/audio_rende... media/renderers/audio_renderer_impl.h:249: bool encrypted_; On 2017/05/06 03:52:13, xhwang wrote: > I am not seeing this initialized and/or set anywhere? > > Style nit: is_encrypted_ Done.
LGTM, thanks for the fix!
The CQ bit was unchecked by watk@chromium.org
The CQ bit was checked by watk@chromium.org
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by watk@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from xhwang@chromium.org Link to the patchset: https://codereview.chromium.org/2858393002/#ps60001 (title: "fix cast's FakeMediaSource")
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromeos_amd64-generic_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_amd64-...)
The CQ bit was checked by watk@chromium.org
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromeos_amd64-generic_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_TIMED_OUT, build has not started yet; builder either lacks capacity or does not exist (misspelled?)) chromium_presubmit on master.tryserver.chromium.linux (JOB_TIMED_OUT, build has not started yet; builder either lacks capacity or does not exist (misspelled?))
The CQ bit was checked by watk@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from xhwang@chromium.org Link to the patchset: https://codereview.chromium.org/2858393002/#ps80001 (title: "Revert test")
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Oops. The test needed changing originally because I increased the buffer for non-encrypted. Now that it's encrypted only, it doesn't need to change.
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: cast_shell_linux on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_linu...)
The CQ bit was checked by watk@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from xhwang@chromium.org Link to the patchset: https://codereview.chromium.org/2858393002/#ps100001 (title: "Fix another chromecast usage of AudioRendererAlgorithm")
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presub...)
watk@chromium.org changed reviewers: + lcwu@chromium.org
lcwu@chromium.org: Please review changes in chromecast
chromecast/ lgtm
The CQ bit was checked by watk@chromium.org
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by watk@chromium.org
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by watk@chromium.org
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by watk@chromium.org
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_asan_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by watk@chromium.org
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 100001, "attempt_start_ts": 1494627655646690, "parent_rev": "cf212f476a0b162cb0971da9dd30e89facd943bb", "commit_rev": "a51ee9488f2b82b1dc8e9c79881b97dc318f0b39"}
Message was sent while issue was closed.
Description was changed from ========== media: Increase the default audio buffer size for encrypted streams Encrypted audio may need to be decrypted on the renderer main thread which means that long running tasks on that thread can stall audio decoding, causing noticeable audio gaps. By increasing the default initial buffer size from 200ms to 500ms for encrypted streams, we should drastically reduce the occurrence of audio hitches caused by this. There is ongoing work to move decryption to the media thread, at which point we can revert this change (http://crbug.com/403462). This change has an impact on preload time (load() to loaded) for audio because we now decode more. On a linux z620 preload time for crowd.ogg goes from 94ms to 130ms. (Release, component, dcheck_always_on build). BUG=718161 ========== to ========== media: Increase the default audio buffer size for encrypted streams Encrypted audio may need to be decrypted on the renderer main thread which means that long running tasks on that thread can stall audio decoding, causing noticeable audio gaps. By increasing the default initial buffer size from 200ms to 500ms for encrypted streams, we should drastically reduce the occurrence of audio hitches caused by this. There is ongoing work to move decryption to the media thread, at which point we can revert this change (http://crbug.com/403462). This change has an impact on preload time (load() to loaded) for audio because we now decode more. On a linux z620 preload time for crowd.ogg goes from 94ms to 130ms. (Release, component, dcheck_always_on build). BUG=718161 Review-Url: https://codereview.chromium.org/2858393002 Cr-Commit-Position: refs/heads/master@{#471522} Committed: https://chromium.googlesource.com/chromium/src/+/a51ee9488f2b82b1dc8e9c79881b... ==========
Message was sent while issue was closed.
Committed patchset #5 (id:100001) as https://chromium.googlesource.com/chromium/src/+/a51ee9488f2b82b1dc8e9c79881b... |