mirror of
https://github.com/taglib/taglib.git
synced 2026-08-14 06:17:00 -04:00
Support Vorbis comments from a multiplexed Ogg stream (#1370)
Ogg::File::readPages() read pages from all logical bitstreams and indexed their packets into one global list. In a multiplexed file the Theora and Vorbis packets got interleaved, so packet 0 was a Theora header rather than the expected Vorbis type-3 comment header. Before reading packets, the Vorbis reader now selects the Vorbis logical bitstream (the one whose first packet is the Vorbis identification header), so it reads the correct stream regardless of position. Packet parsing is scoped to the selected bitstream, so packets from other codecs in the same file are ignored. tests/data/multiplex.ogg is generated using ffmpeg -hide_banner -y \ -f lavfi -i "color=c=navy:s=500x500:r=1:d=2" \ -f lavfi -i "sine=frequency=440:sample_rate=48000:duration=2" \ -map 0:v -map 1:a \ -c:v libtheora -q:v 3 \ -c:a libvorbis -ac 2 -q:a 2 \ -flags +bitexact -fflags +bitexact \ -metadata:s:a:0 TITLE="Paper Lights" \ -metadata:s:a:0 encoder= -metadata:s:v:0 encoder= \ -f ogg tests/data/multiplex.ogg
This commit is contained in:
Binary file not shown.
Reference in New Issue
Block a user