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

Issue 1954633002: MEDIA_LOG for large encoded timestamp gaps in decoder stream. (Closed)

Created:
4 years, 7 months ago by chcunningham
Modified:
4 years, 6 months ago
Reviewers:
DaleCurtis
CC:
chromium-reviews, feature-media-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

MEDIA_LOG for large encoded timestamp gaps in decoder stream. Gaps in the encoded timestamps are likely to cause AV sync drift. AV sync issues are a pain to debug, so this log should save developers considerable time by highlighting exactly where in their media things went wrong. BUG=527990 Committed: https://crrev.com/05efd76e46d3729a8e615abfe6277de56737381b Cr-Commit-Position: refs/heads/master@{#401887}

Patch Set 1 #

Patch Set 2 : Adjust strategy to catch slow building drift. #

Patch Set 3 : Typos #

Patch Set 4 : New strategy, only check gaps after meeting initial (offset) expectations. #

Total comments: 8

Patch Set 5 : Doing the easy feedback. #

Patch Set 6 : New AudioTimestampValidator class and tests #

Total comments: 1

Patch Set 7 : Cleanup. #

Patch Set 8 : Rebase and document GetAudioBuffer #

Patch Set 9 : Push AudioTimestampValidator into DecoderStreamTraits #

Patch Set 10 : Fix unit test include #

Patch Set 11 : Rebase #

Total comments: 10

Patch Set 12 : Feedback #

Total comments: 14

Patch Set 13 : Moar feedback #

Total comments: 6

Patch Set 14 : Rebase #

Patch Set 15 : Final feedback #

Patch Set 16 : Fix test failures (check the right traits) #

Patch Set 17 : Rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+579 lines, -27 lines) Patch
M media/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +3 lines, -0 lines 0 comments Download
M media/base/audio_discard_helper.cc View 1 1 chunk +3 lines, -0 lines 0 comments Download
M media/filters/audio_decoder_selector_unittest.cc View 1 2 3 4 5 6 7 8 3 chunks +10 lines, -3 lines 0 comments Download
A media/filters/audio_timestamp_validator.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +67 lines, -0 lines 0 comments Download
A media/filters/audio_timestamp_validator.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +146 lines, -0 lines 0 comments Download
A media/filters/audio_timestamp_validator_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +252 lines, -0 lines 0 comments Download
M media/filters/decoder_selector.h View 1 2 3 4 5 6 7 8 2 chunks +3 lines, -1 line 0 comments Download
M media/filters/decoder_selector.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 5 chunks +5 lines, -2 lines 0 comments Download
M media/filters/decoder_stream.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 chunks +4 lines, -0 lines 0 comments Download
M media/filters/decoder_stream.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 8 chunks +12 lines, -4 lines 0 comments Download
M media/filters/decoder_stream_traits.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +35 lines, -13 lines 0 comments Download
M media/filters/decoder_stream_traits.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 chunks +26 lines, -1 line 0 comments Download
M media/filters/video_decoder_selector_unittest.cc View 1 2 3 4 5 6 7 8 3 chunks +10 lines, -3 lines 0 comments Download
M media/media.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +3 lines, -0 lines 0 comments Download

Messages

Total messages: 40 (8 generated)
chcunningham
4 years, 7 months ago (2016-05-05 22:35:28 UTC) #2
chcunningham
This is working well to catch the issues in the associated bug. After an hour ...
4 years, 7 months ago (2016-05-05 22:59:02 UTC) #3
DaleCurtis
Are you still iterating on this?
4 years, 7 months ago (2016-05-09 18:53:46 UTC) #4
chcunningham
yes. will have an update today On Mon, May 9, 2016 at 11:53 AM, <dalecurtis@chromium.org> ...
4 years, 7 months ago (2016-05-09 18:55:39 UTC) #5
chcunningham
Ok, finally an update. This strategy works nicely to smooth out the differences in pre-skip ...
4 years, 7 months ago (2016-05-17 21:03:54 UTC) #6
chcunningham
Similarly, here is the same for trimming.opus via src= CheckForTimestampGap setting audio_base:0 CheckForTimestampGap setting audio_base:120000 ...
4 years, 7 months ago (2016-05-17 21:06:19 UTC) #7
chcunningham
Even better, lets demo an mp3 that has preskip (the earlier appears to not have ...
4 years, 7 months ago (2016-05-17 21:16:32 UTC) #8
DaleCurtis
The approach seems okay modulo the case I pointed out. Review wise, this is too ...
4 years, 7 months ago (2016-05-17 21:32:54 UTC) #9
chcunningham
On 2016/05/17 21:32:54, DaleCurtis wrote: > The approach seems okay modulo the case I pointed ...
4 years, 7 months ago (2016-05-18 00:18:00 UTC) #10
DaleCurtis
Well there are a few ways you could do it, so I leave it to ...
4 years, 7 months ago (2016-05-18 03:57:32 UTC) #11
chcunningham
PTAL https://codereview.chromium.org/1954633002/diff/120001/media/filters/decoder_stream.cc File media/filters/decoder_stream.cc (right): https://codereview.chromium.org/1954633002/diff/120001/media/filters/decoder_stream.cc#newcode503 media/filters/decoder_stream.cc:503: // error: static_cast from 'media::VideoFrame *' to 'media::AudioBuffer ...
4 years, 6 months ago (2016-05-27 21:35:06 UTC) #13
DaleCurtis
The constexpr will only help linking, things must still compile.
4 years, 6 months ago (2016-05-31 22:23:16 UTC) #14
chcunningham
On 2016/05/31 22:23:16, DaleCurtis wrote: > The constexpr will only help linking, things must still ...
4 years, 6 months ago (2016-06-01 17:31:26 UTC) #15
chcunningham
Forgot to mention: With the new code to assert initial-stabilization when no codec-delay/skip, we have ...
4 years, 6 months ago (2016-06-01 17:41:43 UTC) #16
DaleCurtis
I think a DecoderStreamTraits::ValidateBuffer(validator*, buffer*) function would be better, it can just noop for video.
4 years, 6 months ago (2016-06-01 22:49:52 UTC) #17
DaleCurtis
Not sure what to do about the files. I'd take a look to see if ...
4 years, 6 months ago (2016-06-01 22:50:55 UTC) #18
chcunningham
> I think a DecoderStreamTraits::ValidateBuffer(validator*, buffer*) function > would be better, it can just noop ...
4 years, 6 months ago (2016-06-04 01:15:15 UTC) #19
DaleCurtis
I think we can do better; it's a bit crufty cramming audio stuff into the ...
4 years, 6 months ago (2016-06-06 23:35:33 UTC) #20
chcunningham
Ok, I'll give this a shot.
4 years, 6 months ago (2016-06-06 23:56:57 UTC) #21
chcunningham
Ran perf tests on the latest patch set - no significant difference before/after making traits_ ...
4 years, 6 months ago (2016-06-20 13:48:42 UTC) #22
DaleCurtis
https://codereview.chromium.org/1954633002/diff/220001/media/filters/decoder_stream.h File media/filters/decoder_stream.h (right): https://codereview.chromium.org/1954633002/diff/220001/media/filters/decoder_stream.h#newcode266 media/filters/decoder_stream.h:266: // Validates encoded timestamps match decoded output duration. MEDIA_LOG ...
4 years, 6 months ago (2016-06-20 18:40:33 UTC) #23
chcunningham
https://codereview.chromium.org/1954633002/diff/220001/media/filters/decoder_stream.h File media/filters/decoder_stream.h (right): https://codereview.chromium.org/1954633002/diff/220001/media/filters/decoder_stream.h#newcode266 media/filters/decoder_stream.h:266: // Validates encoded timestamps match decoded output duration. MEDIA_LOG ...
4 years, 6 months ago (2016-06-21 00:32:00 UTC) #24
chcunningham
Will have a patch to fix the failing browser tests shortly.
4 years, 6 months ago (2016-06-21 00:47:49 UTC) #25
DaleCurtis
https://codereview.chromium.org/1954633002/diff/240001/media/filters/audio_timestamp_validator.h File media/filters/audio_timestamp_validator.h (right): https://codereview.chromium.org/1954633002/diff/240001/media/filters/audio_timestamp_validator.h#newcode5 media/filters/audio_timestamp_validator.h:5: #ifndef MEDIA_FILTERS_AUDIO_TIMESTAMP_VALIDATOR_H_ Should be in media/base maybe? https://codereview.chromium.org/1954633002/diff/240001/media/filters/audio_timestamp_validator.h#newcode21 media/filters/audio_timestamp_validator.h:21: ...
4 years, 6 months ago (2016-06-22 01:19:24 UTC) #26
chcunningham
https://codereview.chromium.org/1954633002/diff/240001/media/filters/audio_timestamp_validator.h File media/filters/audio_timestamp_validator.h (right): https://codereview.chromium.org/1954633002/diff/240001/media/filters/audio_timestamp_validator.h#newcode5 media/filters/audio_timestamp_validator.h:5: #ifndef MEDIA_FILTERS_AUDIO_TIMESTAMP_VALIDATOR_H_ On 2016/06/22 01:19:23, DaleCurtis wrote: > Should ...
4 years, 6 months ago (2016-06-23 23:39:52 UTC) #27
DaleCurtis
lgtm https://codereview.chromium.org/1954633002/diff/260001/media/filters/audio_timestamp_validator.h File media/filters/audio_timestamp_validator.h (right): https://codereview.chromium.org/1954633002/diff/260001/media/filters/audio_timestamp_validator.h#newcode23 media/filters/audio_timestamp_validator.h:23: virtual ~AudioTimestampValidator(); Remove virtual? https://codereview.chromium.org/1954633002/diff/260001/media/filters/audio_timestamp_validator_unittest.cc File media/filters/audio_timestamp_validator_unittest.cc (right): ...
4 years, 6 months ago (2016-06-24 00:11:30 UTC) #28
chcunningham
Thanks Dale. https://codereview.chromium.org/1954633002/diff/260001/media/filters/audio_timestamp_validator.h File media/filters/audio_timestamp_validator.h (right): https://codereview.chromium.org/1954633002/diff/260001/media/filters/audio_timestamp_validator.h#newcode23 media/filters/audio_timestamp_validator.h:23: virtual ~AudioTimestampValidator(); On 2016/06/24 00:11:29, DaleCurtis wrote: ...
4 years, 6 months ago (2016-06-24 01:56:34 UTC) #29
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1954633002/320001
4 years, 6 months ago (2016-06-24 01:57:26 UTC) #32
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_compile_dbg_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_compile_dbg_ng/builds/221171) linux_chromium_rel_ng on tryserver.chromium.linux (JOB_FAILED, ...
4 years, 6 months ago (2016-06-24 02:04:38 UTC) #34
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/1954633002/340001
4 years, 6 months ago (2016-06-24 15:57:43 UTC) #37
commit-bot: I haz the power
Committed patchset #17 (id:340001)
4 years, 6 months ago (2016-06-24 17:16:50 UTC) #38
commit-bot: I haz the power
4 years, 6 months ago (2016-06-24 17:20:35 UTC) #40
Message was sent while issue was closed.
Patchset 17 (id:??) landed as
https://crrev.com/05efd76e46d3729a8e615abfe6277de56737381b
Cr-Commit-Position: refs/heads/master@{#401887}

Powered by Google App Engine
This is Rietveld 408576698