oggdemux: fix abuse of ogg API, handle broken oggs
authorWim Taymans <wim.taymans@collabora.co.uk>
Tue, 28 Apr 2009 09:24:19 +0000 (11:24 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Tue, 12 May 2009 08:44:17 +0000 (10:44 +0200)
commit7e43c107546e29857f11773762e8891690c47e50
tree89a685f6f2831364c3471aba4702ea644ffb4759
parenta0525fadb499572f9d27caf086a3368f10ee3ad1
oggdemux: fix abuse of ogg API, handle broken oggs

When we feed the ogg sync layer, we need to feed it contiguous data even if the
sync layer did not consume all of it yet. This makes sure that it always finds
the next page even for more corrupted files. Use a different read_offset for
this purpose. since we now keep track of the sync layer, we don't have to reset
after finding a start of a page.

Add some more debug info for the error paths.

Only reset the sync layer when we perform a seek operation.

Avoid failure when the next chain has no bos pages but instead simply ignore it.

when we receive unknown page serial numbers mid stream, don't fail but post a
warning and hope that we get back on track later.

Fixes #579642
ext/ogg/gstoggdemux.c
ext/ogg/gstoggdemux.h