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

Issue 239363003: Fix an issue that audio and video may ran out of sync (Closed)

Created:
6 years, 8 months ago by qinmin
Modified:
6 years, 8 months ago
Reviewers:
wolenetz
CC:
chromium-reviews, feature-media-reviews_chromium.org, avayvod+watch_chromium.org, gunsch
Visibility:
Public.

Description

Fix an issue that audio and video may ran out of sync this is cloned from https://codereview.chromium.org/215783002/, it fixes some flaky unit test. This CL fixes 3 issues: 1. In ProcessPendingEvents(), if there is a non-seek pending event, UpdateTimestamps() will not get called. This is probably the number 1 contributor to losing sync issue. 2. MSP use its internal clock to estmate the current presentation time. However, hardware may consume data at a different rate. Passing the current frame position from AudioTrack to MSP so we get a better estimation of the current time. 3. When config change comes, We don't need to reset the clock if audio decoder is not recreated. BUG=351722 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=264744

Patch Set 1 #

Patch Set 2 : Fix the flaky test in previous patch #

Total comments: 4

Patch Set 3 : addressing comments #

Total comments: 8

Patch Set 4 : fixing nits #

Patch Set 5 : fixing another flakiness #

Total comments: 4

Patch Set 6 : addressing comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+242 lines, -122 lines) Patch
M media/base/android/audio_decoder_job.h View 3 chunks +14 lines, -1 line 0 comments Download
M media/base/android/audio_decoder_job.cc View 3 chunks +39 lines, -8 lines 0 comments Download
M media/base/android/java/src/org/chromium/media/MediaCodecBridge.java View 2 chunks +30 lines, -10 lines 0 comments Download
M media/base/android/media_codec_bridge.h View 1 chunk +3 lines, -2 lines 0 comments Download
M media/base/android/media_codec_bridge.cc View 2 chunks +3 lines, -2 lines 0 comments Download
M media/base/android/media_decoder_job.h View 1 2 3 4 5 3 chunks +13 lines, -9 lines 0 comments Download
M media/base/android/media_decoder_job.cc View 11 chunks +18 lines, -16 lines 0 comments Download
M media/base/android/media_source_player.h View 5 chunks +12 lines, -12 lines 0 comments Download
M media/base/android/media_source_player.cc View 13 chunks +30 lines, -41 lines 0 comments Download
M media/base/android/media_source_player_unittest.cc View 1 2 3 4 5 8 chunks +77 lines, -20 lines 0 comments Download
M media/base/android/video_decoder_job.h View 1 chunk +1 line, -0 lines 0 comments Download
M media/base/android/video_decoder_job.cc View 1 chunk +2 lines, -1 line 0 comments Download

Messages

Total messages: 14 (0 generated)
qinmin
Matt, would you please take another look at this CL. Patch 1 is cloned from ...
6 years, 8 months ago (2014-04-15 17:33:00 UTC) #1
wolenetz
https://codereview.chromium.org/239363003/diff/20001/media/base/android/media_source_player_unittest.cc File media/base/android/media_source_player_unittest.cc (right): https://codereview.chromium.org/239363003/diff/20001/media/base/android/media_source_player_unittest.cc#newcode347 media/base/android/media_source_player_unittest.cc:347: while (true) { Is there a reasonable cap on ...
6 years, 8 months ago (2014-04-15 20:40:21 UTC) #2
qinmin
https://codereview.chromium.org/239363003/diff/20001/media/base/android/media_source_player_unittest.cc File media/base/android/media_source_player_unittest.cc (right): https://codereview.chromium.org/239363003/diff/20001/media/base/android/media_source_player_unittest.cc#newcode347 media/base/android/media_source_player_unittest.cc:347: while (true) { It takes about 5-7 frames for ...
6 years, 8 months ago (2014-04-15 21:53:04 UTC) #3
wolenetz
lgtm % nits. Note I haven't tested this CL myself. https://codereview.chromium.org/239363003/diff/80001/media/base/android/media_source_player_unittest.cc File media/base/android/media_source_player_unittest.cc (right): https://codereview.chromium.org/239363003/diff/80001/media/base/android/media_source_player_unittest.cc#newcode353 ...
6 years, 8 months ago (2014-04-15 22:17:34 UTC) #4
qinmin
https://codereview.chromium.org/239363003/diff/80001/media/base/android/media_source_player_unittest.cc File media/base/android/media_source_player_unittest.cc (right): https://codereview.chromium.org/239363003/diff/80001/media/base/android/media_source_player_unittest.cc#newcode353 media/base/android/media_source_player_unittest.cc:353: if ((player_.GetCurrentTime() - start_timestamp).InMilliseconds() > 0) On 2014/04/15 22:17:34, ...
6 years, 8 months ago (2014-04-15 22:43:42 UTC) #5
wolenetz
https://codereview.chromium.org/239363003/diff/80001/media/base/android/media_source_player_unittest.cc File media/base/android/media_source_player_unittest.cc (right): https://codereview.chromium.org/239363003/diff/80001/media/base/android/media_source_player_unittest.cc#newcode1101 media/base/android/media_source_player_unittest.cc:1101: player_.OnDemuxerDataAvailable(CreateReadFromDemuxerAckForAudio(3)); On 2014/04/15 22:43:42, qinmin wrote: > The issue ...
6 years, 8 months ago (2014-04-15 23:48:58 UTC) #6
qinmin
After running the test many times on a slow device, i can still sometimes see ...
6 years, 8 months ago (2014-04-16 01:48:24 UTC) #7
qinmin
Sorry, not PS#4, but PS#5. in PS#5, i renamed DecodeAudioDataUntilAudioBufferBecomesFull() because it doesn't work properly ...
6 years, 8 months ago (2014-04-16 02:46:25 UTC) #8
wolenetz
Thanks for helping clarify offline why there was the second source of flakiness. https://codereview.chromium.org/239363003/diff/140001/media/base/android/media_decoder_job.h File ...
6 years, 8 months ago (2014-04-17 21:35:27 UTC) #9
qinmin
https://codereview.chromium.org/239363003/diff/140001/media/base/android/media_decoder_job.h File media/base/android/media_decoder_job.h (right): https://codereview.chromium.org/239363003/diff/140001/media/base/android/media_decoder_job.h#newcode34 media/base/android/media_decoder_job.h:34: // job skipped rendering of the decoded output and ...
6 years, 8 months ago (2014-04-17 23:03:35 UTC) #10
wolenetz
lgtm
6 years, 8 months ago (2014-04-17 23:11:09 UTC) #11
qinmin
The CQ bit was checked by qinmin@chromium.org
6 years, 8 months ago (2014-04-17 23:39:32 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/qinmin@chromium.org/239363003/160001
6 years, 8 months ago (2014-04-17 23:40:27 UTC) #13
commit-bot: I haz the power
6 years, 8 months ago (2014-04-18 05:26:55 UTC) #14
Message was sent while issue was closed.
Change committed as 264744

Powered by Google App Engine
This is Rietveld 408576698