From b48b9fdc198b30bdad2197b19a22e120a9beccdd Mon Sep 17 00:00:00 2001 From: Michael Smith Date: Mon, 21 May 2007 15:24:21 +0000 Subject: [PATCH] ext/theora/theoradec.c: Don't look inside 0-length packets (which indicate duplicated frames) Original commit message from CVS: * ext/theora/theoradec.c: (theora_handle_data_packet): Don't look inside 0-length packets (which indicate duplicated frames) --- ChangeLog | 6 ++++++ ext/theora/theoradec.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index a71d22bf22..6afc74ae35 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-05-21 Michael Smith + + * ext/theora/theoradec.c: (theora_handle_data_packet): + Don't look inside 0-length packets (which indicate duplicated + frames) + 2007-05-21 Wim Taymans * ext/cdparanoia/gstcdparanoiasrc.c: diff --git a/ext/theora/theoradec.c b/ext/theora/theoradec.c index 1e346a5f64..84b2f57668 100644 --- a/ext/theora/theoradec.c +++ b/ext/theora/theoradec.c @@ -1029,8 +1029,8 @@ theora_handle_data_packet (GstTheoraDec * dec, ogg_packet * packet, goto not_initialized; /* the second most significant bit of the first data byte is cleared - * for keyframes */ - keyframe = (packet->packet[0] & 0x40) == 0; + * for keyframes. We can only check it if it's not a zero-length packet. */ + keyframe = packet->bytes && ((packet->packet[0] & 0x40) == 0); if (G_UNLIKELY (keyframe)) { GST_DEBUG_OBJECT (dec, "we have a keyframe"); dec->need_keyframe = FALSE;