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

Issue 348623003: Fix muxed MP4 parsing so it won't crash on partial media segment appends. (Closed)

Created:
6 years, 6 months ago by acolwell GONE FROM CHROMIUM
Modified:
6 years, 6 months ago
Reviewers:
wolenetz
CC:
chromium-reviews, feature-media-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Fix muxed MP4 parsing so it won't crash on partial media segment appends. Partial appends could cause the MP4StreamParser to emit buffers in non-monotonically increasing timestamp order because of how we process trun boxes. This patch makes sure that processing of trun boxes is deferred until we have all the sample & aux_info data before emitting samples. This prevents the parser from emitting samples in such a way that will break downstream code. This is a minimal impact fix to avoid bad behavior at the expense of buffering more data. BUG=None TEST=All MP4StreamParserTests that do partial appends now verify the fix. Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=278650

Patch Set 1 #

Patch Set 2 : Make ChromeOS compiler happy #

Total comments: 23

Patch Set 3 : Address CR comments. #

Patch Set 4 : Fix compiler error and test #

Patch Set 5 : Fix run skipping bug. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+106 lines, -15 lines) Patch
M media/formats/mp4/mp4_stream_parser.h View 3 chunks +15 lines, -0 lines 0 comments Download
M media/formats/mp4/mp4_stream_parser.cc View 1 2 3 4 6 chunks +68 lines, -13 lines 0 comments Download
M media/formats/mp4/mp4_stream_parser_unittest.cc View 1 2 3 5 chunks +23 lines, -2 lines 0 comments Download

Messages

Total messages: 7 (0 generated)
acolwell GONE FROM CHROMIUM
6 years, 6 months ago (2014-06-19 20:27:12 UTC) #1
wolenetz
Looking pretty good. https://codereview.chromium.org/348623003/diff/20001/media/formats/mp4/mp4_stream_parser.cc File media/formats/mp4/mp4_stream_parser.cc (right): https://codereview.chromium.org/348623003/diff/20001/media/formats/mp4/mp4_stream_parser.cc#newcode80 media/formats/mp4/mp4_stream_parser.cc:80: Reset(); Before Reset(), we now have ...
6 years, 6 months ago (2014-06-19 22:01:15 UTC) #2
acolwell GONE FROM CHROMIUM
https://codereview.chromium.org/348623003/diff/20001/media/formats/mp4/mp4_stream_parser.cc File media/formats/mp4/mp4_stream_parser.cc (right): https://codereview.chromium.org/348623003/diff/20001/media/formats/mp4/mp4_stream_parser.cc#newcode80 media/formats/mp4/mp4_stream_parser.cc:80: Reset(); On 2014/06/19 22:01:14, wolenetz_OOO_June20-June29 wrote: > Before Reset(), ...
6 years, 6 months ago (2014-06-19 23:46:47 UTC) #3
wolenetz
lgtm % 2 nits: nit: s/buffing/buffering/ in CL description. (Thank you for fixing this nasty ...
6 years, 6 months ago (2014-06-20 00:17:29 UTC) #4
acolwell GONE FROM CHROMIUM
The CQ bit was checked by acolwell@chromium.org
6 years, 6 months ago (2014-06-20 00:26:39 UTC) #5
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/acolwell@chromium.org/348623003/70001
6 years, 6 months ago (2014-06-20 00:28:37 UTC) #6
commit-bot: I haz the power
6 years, 6 months ago (2014-06-20 08:40:35 UTC) #7
Message was sent while issue was closed.
Change committed as 278650

Powered by Google App Engine
This is Rietveld 408576698