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;