Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Issue 2330273002: media: Use associated interface for mojo AudioDecoderClient (Closed)

Created:
4 years, 3 months ago by xhwang
Modified:
4 years, 3 months ago
Reviewers:
yzshen1, AndyWu, dcheng
CC:
chromium-reviews, feature-media-reviews_chromium.org, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, yzshen+watch_chromium.org, abarth-chromium, Aaron Boodman, alokp+watch_chromium.org, darin (slow to review), AndyWu
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

media: Use associated interface for mojo AudioDecoderClient Currently the AudioDecoderClient interface is running on a separate message pipe than the main AudioDecoder interface. Hence the order of AudioDecoder callbacks and AudioDecoderClient calls are not always guaranteed. However, the media pipeline requires strict ordering of some of these events. In this CL, we use associated interface for the client so that client calls runs on the same message pipe as the main interface, so that we can guarantee the delivery order. BUG=646054 TEST=Verified by Cast team; unittests will be added right after this CL. Committed: https://crrev.com/e4bef74d708e121a6b7959a1d18e30fc5e6765d5 Cr-Commit-Position: refs/heads/master@{#418364}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+18 lines, -13 lines) Patch
M media/mojo/clients/mojo_audio_decoder.h View 2 chunks +2 lines, -1 line 0 comments Download
M media/mojo/clients/mojo_audio_decoder.cc View 2 chunks +6 lines, -3 lines 0 comments Download
M media/mojo/interfaces/audio_decoder.mojom View 1 chunk +2 lines, -2 lines 0 comments Download
M media/mojo/services/mojo_audio_decoder_service.h View 2 chunks +2 lines, -2 lines 0 comments Download
M media/mojo/services/mojo_audio_decoder_service.cc View 2 chunks +6 lines, -5 lines 0 comments Download

Messages

Total messages: 18 (7 generated)
xhwang
yzshen: This is my first time using associated interfaces, so I'd like you to take ...
4 years, 3 months ago (2016-09-12 23:55:42 UTC) #2
yzshen1
On 2016/09/12 23:55:42, xhwang (slow) wrote: > yzshen: This is my first time using associated ...
4 years, 3 months ago (2016-09-13 00:02:18 UTC) #3
xhwang
On 2016/09/13 00:02:18, yzshen1 wrote: > On 2016/09/12 23:55:42, xhwang (slow) wrote: > > yzshen: ...
4 years, 3 months ago (2016-09-13 00:04:28 UTC) #4
yzshen1
On 2016/09/13 00:04:28, xhwang (slow) wrote: > On 2016/09/13 00:02:18, yzshen1 wrote: > > On ...
4 years, 3 months ago (2016-09-13 15:11:24 UTC) #5
AndyWu
Usually, I can reproduce this issue with around 20~30 seek operations. With this patch, I ...
4 years, 3 months ago (2016-09-13 17:30:07 UTC) #7
xhwang
dcheng: Could you please security review the one word change in media/mojo/interfaces/audio_decoder.mojom? I am basically ...
4 years, 3 months ago (2016-09-13 17:38:32 UTC) #9
dcheng
lgtm
4 years, 3 months ago (2016-09-13 18:00:01 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2330273002/1
4 years, 3 months ago (2016-09-13 18:24:57 UTC) #13
commit-bot: I haz the power
Committed patchset #1 (id:1)
4 years, 3 months ago (2016-09-13 20:58:39 UTC) #15
commit-bot: I haz the power
Patchset 1 (id:??) landed as https://crrev.com/e4bef74d708e121a6b7959a1d18e30fc5e6765d5 Cr-Commit-Position: refs/heads/master@{#418364}
4 years, 3 months ago (2016-09-13 21:05:31 UTC) #17
xhwang
4 years, 3 months ago (2016-09-14 17:48:51 UTC) #18
Message was sent while issue was closed.
On 2016/09/13 21:05:31, commit-bot: I haz the power wrote:
> Patchset 1 (id:??) landed as
> https://crrev.com/e4bef74d708e121a6b7959a1d18e30fc5e6765d5
> Cr-Commit-Position: refs/heads/master@{#418364}

For the record, I wrote some unittest that returns 10 AudioBuffers per decode,
and I can repro the original issue on Android. It's falky, but almost always
repros when I run the test 100 times. With this CL, I cannot repro at all.

Note that I cannot repro the issue on desktop Linux. This may be due to how the
message loop and mojo message dispatching are implemented on different
platforms.

I'll clean up my local test and upload a test CL.

Powered by Google App Engine
This is Rietveld 408576698