summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_ogg.c
diff options
context:
space:
mode:
authormosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-11-15 20:00:31 +0000
committermosu <mosu@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-11-15 20:00:31 +0000
commit8856a7594cfc83d4ae0b8ba9a5ed741e285aaccf (patch)
tree511d5aba8dbceb2e9563ed4aad90ddbb4d1c4740 /libmpdemux/demux_ogg.c
parent234c095a98a6fb49e5389e93e37cd3401eda37da (diff)
downloadmpv-8856a7594cfc83d4ae0b8ba9a5ed741e285aaccf.tar.bz2
mpv-8856a7594cfc83d4ae0b8ba9a5ed741e285aaccf.tar.xz
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.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@11465 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_ogg.c')
-rw-r--r--libmpdemux/demux_ogg.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c
index 29d417b307..e10d1a024e 100644
--- a/libmpdemux/demux_ogg.c
+++ b/libmpdemux/demux_ogg.c
@@ -408,9 +408,11 @@ static int demux_ogg_add_packet(demux_stream_t* ds,ogg_stream_t* os,ogg_packet*
}
// 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