From 776c2adb53c58473714b118c5c0f76939a705d1a Mon Sep 17 00:00:00 2001 From: Viktor Gal Date: Tue, 22 Dec 2009 15:01:17 +1100 Subject: [PATCH] Fix for bogus Ogg streams with decreasing granulepos This patch fixes the problems with bogus Ogg streams that have decreasing granule positions by ignoring those packets. Mozilla bug 481921 NOTE: from Ogg specs.: "Granule Position must always increase forward or remain equal from page to page, be unset, or be zero for a header page" --- src/liboggplay/oggplay_callback.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/liboggplay/oggplay_callback.c b/src/liboggplay/oggplay_callback.c index 19846e0..40a6744 100644 --- a/src/liboggplay/oggplay_callback.c +++ b/src/liboggplay/oggplay_callback.c @@ -121,7 +121,7 @@ oggplay_callback_theora (OGGZ * oggz, ogg_packet * op, long serialno, return OGGZ_CONTINUE; } - if ((granulepos > 0) && (common->last_granulepos > granulepos)) { + if ((granulepos > -1) && (common->last_granulepos > granulepos)) { /* * the granule position is not monotonically increasing, * something wrong with the page! @@ -544,7 +544,7 @@ oggplay_callback_audio (OGGZ * oggz, ogg_packet * op, long serialno, return OGGZ_CONTINUE; } - if ((granulepos > 0) && (common->last_granulepos > granulepos)) { + if ((granulepos > -1) && (common->last_granulepos > granulepos)) { return OGGZ_CONTINUE; } -- 2.11.4.GIT