# HG changeset patch # User mosu # Date 1068926431 0 # Node ID 1efd0f9a946d2db5da4f65d38ff2f4f5ace3df2a # Parent d379e392a13291711e256d38e01fb232236395d3 For FLAC-in-Ogg the packets are NEVER skipped, and there's no such thing as a "packet header byte" like in Ogm streams. Basically the handling for Vorbis != Theora != FLAC != Ogm. diff -r d379e392a132 -r 1efd0f9a946d libmpdemux/demux_ogg.c --- a/libmpdemux/demux_ogg.c Sat Nov 15 10:49:38 2003 +0000 +++ b/libmpdemux/demux_ogg.c Sat Nov 15 20:00:31 2003 +0000 @@ -408,9 +408,11 @@ } // If packet is an header we jump it except for vorbis and theora // (PACKET_TYPE_HEADER bit doesn't even exist for theora ?!) - if((*pack->packet & PACKET_TYPE_HEADER) && + // We jump nothing for FLAC. Ain't this great? Packet contents have to be + // handled differently for each and every stream type. The joy! The joy! + if(!os->flac && ((*pack->packet & PACKET_TYPE_HEADER) && (ds != d->audio || ( ((sh_audio_t*)ds->sh)->format != 0xFFFE || os->hdr_packets >= NUM_VORBIS_HDR_PACKETS ) ) && - (ds != d->video || (((sh_video_t*)ds->sh)->format != 0xFFFC))) + (ds != d->video || (((sh_video_t*)ds->sh)->format != 0xFFFC)))) return 0; // For vorbis packet the packet is the data, for other codec we must jump