From 4e2b87b2300ea838a830646d87d4b29a6b637454 Mon Sep 17 00:00:00 2001 From: jethead71 Date: Mon, 3 Jan 2011 20:13:05 +0000 Subject: [PATCH] MPEGPlayer: Try a few timestamps for all streams at the beginning, not just video, to help deal with anomalous start PTS values in a stream. Hopefully the hardcoded number gives it enough tolerance. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28961 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/mpegplayer/mpeg_parser.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/plugins/mpegplayer/mpeg_parser.c b/apps/plugins/mpegplayer/mpeg_parser.c index b683efe1c..572bd1b13 100644 --- a/apps/plugins/mpegplayer/mpeg_parser.c +++ b/apps/plugins/mpegplayer/mpeg_parser.c @@ -289,8 +289,11 @@ static void init_times(struct stream *str) str->start_pts = INVALID_TIMESTAMP; - /* Probe many for video because of B-frames */ - for (i = STREAM_IS_VIDEO(str->id) ? 5 : 1; i > 0;) + /* Probe for many for the start because a stamp or two could be anomalous. + * Video also can also have things out of order. How many? There isn't any + * "right" value but just a few seems suffient to filter some bad cases. + * Too many and file loading could take too long. */ + for (i = 5; i > 0;) { switch (parser_get_next_data(&tmp_str, STREAM_PM_RANDOM_ACCESS)) { -- 2.11.4.GIT