summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_ogg.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux/demux_ogg.c')
-rw-r--r--libmpdemux/demux_ogg.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c
index 902b2419a7..2728e3f018 100644
--- a/libmpdemux/demux_ogg.c
+++ b/libmpdemux/demux_ogg.c
@@ -340,7 +340,10 @@ static unsigned char* demux_ogg_read_packet(ogg_stream_t* os,ogg_packet* pack,vo
data = pack->packet;
os->lastsize = 1;
- if (context != NULL)
+ /* header packets beginn on 1-bit: thus check (*data&0x80). We don't
+ have theora_state st, until all header packets were passed to the
+ decoder. */
+ if (context != NULL && !(*data&0x80))
{
theora_state *st;
int64_t usable_granulepos;