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

Issue 2016213003: Separate MediaCodecLoop from MediaCodecAudioDecoder (Closed)

Created:
4 years, 6 months ago by liberato (no reviews please)
Modified:
4 years, 5 months ago
CC:
avayvod+watch_chromium.org, chromium-reviews, feature-media-reviews_chromium.org, mlamouri+watch-media_chromium.org, posciak+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Separate MediaCodecLoop from MediaCodecAudioDecoder MCAD and AndroidVideoDecodeAccelerator share lots of code to interact with MediaCodec. This CL splits out much of that into a new MediaCodecLoop class. MediaCodecLoop manages driving the I/O loop for MediaCodec and interacting with a client (AVDA or MCAD). This CL only affects MCAD. AVDA's event loop is more complicated, and will be merged into MediaCodecLoop as part of a separate CL. BUG=583082 Committed: https://crrev.com/8634a951e0946d4bf63889d888cc369dd4c2c665 Cr-Commit-Position: refs/heads/master@{#403350}

Patch Set 1 #

Patch Set 2 : cleanup. #

Patch Set 3 : removed changes from manifest and renderer factory #

Patch Set 4 : removed some MediaCodec* args, updated docs. #

Patch Set 5 : added gyp. #

Total comments: 31

Patch Set 6 : cl feedback. #

Total comments: 8

Patch Set 7 : cl feedback. #

Total comments: 14

Patch Set 8 : cl feedback. #

Total comments: 60

Patch Set 9 : cl feedback. #

Total comments: 28

Patch Set 10 : cl feedback, added unit test. #

Patch Set 11 : rebased, removed include. #

Total comments: 70

Patch Set 12 : cl feedback #

Total comments: 12

Patch Set 13 : cl feedback #

Total comments: 5

Patch Set 14 : cl feedback. #

Patch Set 15 : fixed |media_crypto_| #

Patch Set 16 : don't allow STATE_DRAINED when flushing #

Unified diffs Side-by-side diffs Delta from patch set Stats (+880 lines, -508 lines) Patch
M media/base/android/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +3 lines, -0 lines 0 comments Download
A media/base/android/media_codec_loop.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +308 lines, -0 lines 0 comments Download
A media/base/android/media_codec_loop.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +363 lines, -0 lines 0 comments Download
A media/base/android/media_codec_loop_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +43 lines, -0 lines 0 comments Download
M media/filters/android/media_codec_audio_decoder.h View 1 2 3 4 5 6 7 8 9 10 11 12 6 chunks +48 lines, -134 lines 0 comments Download
M media/filters/android/media_codec_audio_decoder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 17 chunks +112 lines, -374 lines 0 comments Download
M media/media.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +3 lines, -0 lines 0 comments Download

Messages

Total messages: 54 (13 generated)
liberato (no reviews please)
i'll open up for others to review once you're satisfied that it's approximately sane. i've ...
4 years, 6 months ago (2016-05-31 18:35:30 UTC) #4
Tima Vaisburd
https://codereview.chromium.org/2016213003/diff/80001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/80001/media/base/android/media_codec_loop.cc#newcode135 media/base/android/media_codec_loop.cc:135: if (!client_->IsAnyInputPending()) To be equivalent to the old code ...
4 years, 6 months ago (2016-06-01 00:52:41 UTC) #5
liberato (no reviews please)
https://codereview.chromium.org/2016213003/diff/80001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/80001/media/base/android/media_codec_loop.cc#newcode135 media/base/android/media_codec_loop.cc:135: if (!client_->IsAnyInputPending()) On 2016/06/01 00:52:40, Tima Vaisburd wrote: > ...
4 years, 6 months ago (2016-06-01 21:47:54 UTC) #6
Tima Vaisburd
https://codereview.chromium.org/2016213003/diff/80001/media/base/android/media_codec_loop.h File media/base/android/media_codec_loop.h (right): https://codereview.chromium.org/2016213003/diff/80001/media/base/android/media_codec_loop.h#newcode126 media/base/android/media_codec_loop.h:126: struct InputBufferData { On 2016/06/01 21:47:54, liberato wrote: > ...
4 years, 6 months ago (2016-06-02 00:35:22 UTC) #7
liberato (no reviews please)
timav: thanks for all the comments! dalecurtis, watk: added for wider review. thanks -fl https://codereview.chromium.org/2016213003/diff/80001/media/base/android/media_codec_loop.h ...
4 years, 6 months ago (2016-06-03 16:23:29 UTC) #9
DaleCurtis
Didn't finish review before needing to head out; here are partial comments. https://codereview.chromium.org/2016213003/diff/120001/media/base/android/media_codec_loop.h File media/base/android/media_codec_loop.h ...
4 years, 6 months ago (2016-06-03 23:10:24 UTC) #10
liberato (no reviews please)
https://codereview.chromium.org/2016213003/diff/120001/media/base/android/media_codec_loop.h File media/base/android/media_codec_loop.h (right): https://codereview.chromium.org/2016213003/diff/120001/media/base/android/media_codec_loop.h#newcode5 media/base/android/media_codec_loop.h:5: #ifndef MEDIA_FILTERS_ANDROID_MEDIA_CODEC_LOOP_H_ On 2016/06/03 23:10:24, DaleCurtis wrote: > Fix ...
4 years, 6 months ago (2016-06-07 16:00:15 UTC) #11
DaleCurtis
Overall looking good; though I'm worried there's still more lines in the MediaCodecAudioDecoder than I'd ...
4 years, 6 months ago (2016-06-08 22:55:01 UTC) #12
Tima Vaisburd
https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc#newcode398 media/base/android/media_codec_loop.cc:398: #undef RETURN_STRING On 2016/06/08 22:55:01, DaleCurtis wrote: > No ...
4 years, 6 months ago (2016-06-08 23:14:20 UTC) #13
Tima Vaisburd
https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc#newcode116 media/base/android/media_codec_loop.cc:116: const bool did_input = QueueInput(); On 2016/06/08 22:55:01, DaleCurtis ...
4 years, 6 months ago (2016-06-08 23:24:13 UTC) #14
DaleCurtis
https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc#newcode116 media/base/android/media_codec_loop.cc:116: const bool did_input = QueueInput(); On 2016/06/08 at 23:24:13, ...
4 years, 6 months ago (2016-06-09 00:30:49 UTC) #15
Tima Vaisburd
https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc#newcode116 media/base/android/media_codec_loop.cc:116: const bool did_input = QueueInput(); On 2016/06/09 00:30:49, DaleCurtis ...
4 years, 6 months ago (2016-06-09 00:54:45 UTC) #16
DaleCurtis
https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc#newcode116 media/base/android/media_codec_loop.cc:116: const bool did_input = QueueInput(); On 2016/06/09 at 00:54:45, ...
4 years, 6 months ago (2016-06-09 00:56:48 UTC) #17
Tima Vaisburd
On 2016/06/09 00:56:48, DaleCurtis wrote: > https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc > File media/base/android/media_codec_loop.cc (right): > > https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc#newcode116 > ...
4 years, 6 months ago (2016-06-09 01:16:20 UTC) #18
Tima Vaisburd
On 2016/06/09 01:16:20, Tima Vaisburd wrote: > On 2016/06/09 00:56:48, DaleCurtis wrote: > > Pulling ...
4 years, 6 months ago (2016-06-09 01:23:31 UTC) #19
DaleCurtis
On 2016/06/09 at 01:23:31, timav wrote: > On 2016/06/09 01:16:20, Tima Vaisburd wrote: > > ...
4 years, 6 months ago (2016-06-09 01:24:50 UTC) #20
Tima Vaisburd
On 2016/06/09 01:24:50, DaleCurtis wrote: > On 2016/06/09 at 01:23:31, timav wrote: > > On ...
4 years, 6 months ago (2016-06-09 01:37:48 UTC) #21
watk
On 2016/06/09 01:37:48, Tima Vaisburd wrote: > On 2016/06/09 01:24:50, DaleCurtis wrote: > > On ...
4 years, 6 months ago (2016-06-09 01:45:59 UTC) #22
watk
Just posting my progress (mainly nits) https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc#newcode75 media/base/android/media_codec_loop.cc:75: media_codec_.reset(); Any reason ...
4 years, 6 months ago (2016-06-09 02:04:34 UTC) #23
liberato (no reviews please)
wow... it's not easy to change the world :) it'll take me a while to ...
4 years, 6 months ago (2016-06-09 05:42:30 UTC) #24
liberato (no reviews please)
thanks for the feedback. -fl https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/140001/media/base/android/media_codec_loop.cc#newcode22 media/base/android/media_codec_loop.cc:22: // TODO(liberato): the client ...
4 years, 6 months ago (2016-06-10 21:34:10 UTC) #25
DaleCurtis
Is it possible to add a basic unit test for media_codec_loop? Nothing fancy right now, ...
4 years, 6 months ago (2016-06-13 23:16:13 UTC) #26
liberato (no reviews please)
unittest: done, and found a bug with it. :) didn't try to mock media_codec_bridge. i'll ...
4 years, 6 months ago (2016-06-14 17:26:45 UTC) #27
DaleCurtis
lgtm https://codereview.chromium.org/2016213003/diff/200001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/200001/media/base/android/media_codec_loop.cc#newcode47 media/base/android/media_codec_loop.cc:47: if (media_codec_ == nullptr) if (!media_codec_) -- but ...
4 years, 6 months ago (2016-06-14 19:29:04 UTC) #28
liberato (no reviews please)
https://codereview.chromium.org/2016213003/diff/200001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/200001/media/base/android/media_codec_loop.cc#newcode47 media/base/android/media_codec_loop.cc:47: if (media_codec_ == nullptr) On 2016/06/14 19:29:03, DaleCurtis wrote: ...
4 years, 6 months ago (2016-06-14 21:56:45 UTC) #29
watk
https://codereview.chromium.org/2016213003/diff/200001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/200001/media/base/android/media_codec_loop.cc#newcode61 media/base/android/media_codec_loop.cc:61: // Flush if we can, otherwise completely recreate and ...
4 years, 6 months ago (2016-06-15 00:29:18 UTC) #30
liberato (no reviews please)
lots of good comments. i might have misunderstood the concerns in TryFlush -- the rest ...
4 years, 6 months ago (2016-06-15 20:27:31 UTC) #31
watk
lgtm https://codereview.chromium.org/2016213003/diff/200001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/200001/media/base/android/media_codec_loop.cc#newcode61 media/base/android/media_codec_loop.cc:61: // Flush if we can, otherwise completely recreate ...
4 years, 6 months ago (2016-06-15 20:52:11 UTC) #32
Tima Vaisburd
https://codereview.chromium.org/2016213003/diff/240001/media/base/android/media_codec_loop.h File media/base/android/media_codec_loop.h (right): https://codereview.chromium.org/2016213003/diff/240001/media/base/android/media_codec_loop.h#newcode196 media/base/android/media_codec_loop.h:196: std::unique_ptr<MediaCodecBridge>&& media_codec); It seems passing unique_ptr by value is ...
4 years, 6 months ago (2016-06-16 18:41:27 UTC) #33
Tima Vaisburd
https://codereview.chromium.org/2016213003/diff/240001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/240001/media/base/android/media_codec_loop.cc#newcode98 media/base/android/media_codec_loop.cc:98: did_input = ProcessOneInputBuffer(); If the OUTPUT_FORMAT_CHANGED arrives, this code ...
4 years, 6 months ago (2016-06-16 21:47:30 UTC) #34
liberato (no reviews please)
thanks for the comments. -fl https://codereview.chromium.org/2016213003/diff/220001/media/filters/android/media_codec_audio_decoder.cc File media/filters/android/media_codec_audio_decoder.cc (right): https://codereview.chromium.org/2016213003/diff/220001/media/filters/android/media_codec_audio_decoder.cc#newcode203 media/filters/android/media_codec_audio_decoder.cc:203: // we have to ...
4 years, 5 months ago (2016-06-27 16:13:37 UTC) #35
Tima Vaisburd
lgtm. Please test the audio with EME. https://codereview.chromium.org/2016213003/diff/240001/media/base/android/media_codec_loop.cc File media/base/android/media_codec_loop.cc (right): https://codereview.chromium.org/2016213003/diff/240001/media/base/android/media_codec_loop.cc#newcode98 media/base/android/media_codec_loop.cc:98: did_input = ...
4 years, 5 months ago (2016-06-27 17:45:26 UTC) #36
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/2016213003/280001
4 years, 5 months ago (2016-06-29 18:32:30 UTC) #39
commit-bot: I haz the power
Try jobs failed on following builders: linux_android_rel_ng on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/linux_android_rel_ng/builds/96009)
4 years, 5 months ago (2016-06-29 19:29:04 UTC) #41
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/2016213003/300001
4 years, 5 months ago (2016-06-30 19:54:24 UTC) #44
Tima Vaisburd
Patch Set 16 lgtm.
4 years, 5 months ago (2016-06-30 20:39:33 UTC) #45
commit-bot: I haz the power
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_rel_ng/builds/255783)
4 years, 5 months ago (2016-06-30 21:01:04 UTC) #47
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/2016213003/300001
4 years, 5 months ago (2016-06-30 22:19:26 UTC) #49
commit-bot: I haz the power
Committed patchset #16 (id:300001)
4 years, 5 months ago (2016-06-30 23:53:13 UTC) #51
commit-bot: I haz the power
CQ bit was unchecked.
4 years, 5 months ago (2016-06-30 23:53:27 UTC) #52
commit-bot: I haz the power
4 years, 5 months ago (2016-06-30 23:54:31 UTC) #54
Message was sent while issue was closed.
Patchset 16 (id:??) landed as
https://crrev.com/8634a951e0946d4bf63889d888cc369dd4c2c665
Cr-Commit-Position: refs/heads/master@{#403350}

Powered by Google App Engine
This is Rietveld 408576698