[FFmpeg-devel] [PATCHv6 0/3] vorbis: update metadata mid-stream
Ben Boeckel
mathstuf at gmail.com
Wed Feb 5 18:10:53 CET 2014
Finally got time to poke this again and flush out some memory leaks in the
process.
Ogg/vorbis streams from MPD contain metadata updates mid-stream and need to be
plumbed from ffmpeg. The ogg decoder in avformat needs a way for codecs to
plumb up the metadata and then, finally, vorbis fills it in.
Patch 2 has ffmpeg combine multiple tags with the same name with semicolon
separators. This is to prevent tags such as performer from only showing up as
the last one in the file. When played using this branch, the following is
output as metadata:
RELEASETYPE : album;remix
PERFORMER : prophetik (saxophone);Usa (percussion)
without the patch, the following is shown instead:
RELEASETYPE : remix
PERFORMER : Usa (percussion)
Testing with flac, mp3 (via lame; twolame untested), and ogg/opus in MPD (and
one mp3 stream from somafm) shows no mid-stream tag updates (via dumpstream and
grepping for the expected tag data), only ICY Info, so I have not updated these
decoders. If other formats are found, the av_packet_pack_dictionary function
should make things easy.
Ben Boeckel (3):
ogg: allow streams to update metadata
vorbis: append data from tags together
vorbis: extract metadata from the middle of a stream
libavformat/oggdec.c | 14 +++++++++++
libavformat/oggdec.h | 2 ++
libavformat/oggparsevorbis.c | 60 +++++++++++++++++++++++++++++++++++++-------
3 files changed, 67 insertions(+), 9 deletions(-)
--
1.8.5.3
More information about the ffmpeg-devel
mailing list