Mercurial > libavformat.hg
changeset 5824:b9f21d75c81a libavformat
oggdec: Metadata is per-stream; don't merge multiple streams' together
author | conrad |
---|---|
date | Fri, 12 Mar 2010 05:16:44 +0000 |
parents | e3830094915a |
children | 4a67f1418e4c |
files | flacdec.c oggdec.h oggparseflac.c oggparsespeex.c oggparsetheora.c oggparsevorbis.c |
diffstat | 6 files changed, 8 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/flacdec.c Fri Mar 12 05:16:39 2010 +0000 +++ b/flacdec.c Fri Mar 12 05:16:44 2010 +0000 @@ -113,7 +113,7 @@ } /* process supported blocks other than STREAMINFO */ if (metadata_type == FLAC_METADATA_TYPE_VORBIS_COMMENT) { - if (ff_vorbis_comment(s, buffer, metadata_size)) { + if (ff_vorbis_comment(s, &s->metadata, buffer, metadata_size)) { av_log(s, AV_LOG_WARNING, "error parsing VorbisComment metadata\n"); } }
--- a/oggdec.h Fri Mar 12 05:16:39 2010 +0000 +++ b/oggdec.h Fri Mar 12 05:16:44 2010 +0000 @@ -115,7 +115,7 @@ extern const AVMetadataConv ff_vorbiscomment_metadata_conv[]; -int ff_vorbis_comment(AVFormatContext *ms, uint8_t *buf, int size); +int ff_vorbis_comment(AVFormatContext *ms, AVMetadata **m, uint8_t *buf, int size); static inline int ogg_find_stream (struct ogg * ogg, int serial)
--- a/oggparseflac.c Fri Mar 12 05:16:39 2010 +0000 +++ b/oggparseflac.c Fri Mar 12 05:16:44 2010 +0000 @@ -68,7 +68,7 @@ st->time_base.num = 1; st->time_base.den = st->codec->sample_rate; } else if (mdt == FLAC_METADATA_TYPE_VORBIS_COMMENT) { - ff_vorbis_comment (s, os->buf + os->pstart + 4, os->psize - 4); + ff_vorbis_comment (s, &st->metadata, os->buf + os->pstart + 4, os->psize - 4); } return 1;
--- a/oggparsespeex.c Fri Mar 12 05:16:39 2010 +0000 +++ b/oggparsespeex.c Fri Mar 12 05:16:44 2010 +0000 @@ -75,7 +75,7 @@ st->time_base.num = 1; st->time_base.den = st->codec->sample_rate; } else - ff_vorbis_comment(s, p, os->psize); + ff_vorbis_comment(s, &st->metadata, p, os->psize); spxp->seq++; return 1;
--- a/oggparsetheora.c Fri Mar 12 05:16:39 2010 +0000 +++ b/oggparsetheora.c Fri Mar 12 05:16:44 2010 +0000 @@ -109,7 +109,7 @@ st->need_parsing = AVSTREAM_PARSE_HEADERS; } else if (os->buf[os->pstart] == 0x83) { - ff_vorbis_comment (s, os->buf + os->pstart + 7, os->psize - 8); + ff_vorbis_comment (s, &st->metadata, os->buf + os->pstart + 7, os->psize - 8); } st->codec->extradata = av_realloc (st->codec->extradata,
--- a/oggparsevorbis.c Fri Mar 12 05:16:39 2010 +0000 +++ b/oggparsevorbis.c Fri Mar 12 05:16:44 2010 +0000 @@ -42,7 +42,7 @@ }; int -ff_vorbis_comment(AVFormatContext * as, uint8_t *buf, int size) +ff_vorbis_comment(AVFormatContext * as, AVMetadata **m, uint8_t *buf, int size) { const uint8_t *p = buf; const uint8_t *end = buf + size; @@ -101,7 +101,7 @@ memcpy(ct, v, vl); ct[vl] = 0; - av_metadata_set2(&as->metadata, tt, ct, + av_metadata_set2(m, tt, ct, AV_METADATA_DONT_STRDUP_KEY | AV_METADATA_DONT_STRDUP_VAL); } @@ -220,7 +220,7 @@ st->time_base.den = st->codec->sample_rate; } else if (os->buf[os->pstart] == 3) { if (os->psize > 8) - ff_vorbis_comment (s, os->buf + os->pstart + 7, os->psize - 8); + ff_vorbis_comment (s, &st->metadata, os->buf + os->pstart + 7, os->psize - 8); } else { st->codec->extradata_size = fixup_vorbis_headers(s, priv, &st->codec->extradata);