diff options
author | David Conrad <lessen42@gmail.com> | 2010-03-12 08:16:44 +0300 |
---|---|---|
committer | David Conrad <lessen42@gmail.com> | 2010-03-12 08:16:44 +0300 |
commit | b53cde48bdc807fe5126eee7dc116812c6607974 (patch) | |
tree | b336762104972379b9ac19793af70763c5f0bc47 /libavformat | |
parent | e4d2d8c5d720d84997a24178acd9553f23077c03 (diff) |
oggdec: Metadata is per-stream; don't merge multiple streams' together
Originally committed as revision 22473 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat')
-rw-r--r-- | libavformat/flacdec.c | 2 | ||||
-rw-r--r-- | libavformat/oggdec.h | 2 | ||||
-rw-r--r-- | libavformat/oggparseflac.c | 2 | ||||
-rw-r--r-- | libavformat/oggparsespeex.c | 2 | ||||
-rw-r--r-- | libavformat/oggparsetheora.c | 2 | ||||
-rw-r--r-- | libavformat/oggparsevorbis.c | 6 |
6 files changed, 8 insertions, 8 deletions
diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c index d7f1e715d8..495fa2b4a0 100644 --- a/libavformat/flacdec.c +++ b/libavformat/flacdec.c @@ -113,7 +113,7 @@ static int flac_read_header(AVFormatContext *s, } /* 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"); } } diff --git a/libavformat/oggdec.h b/libavformat/oggdec.h index 739e4ca346..2f3a6f3d07 100644 --- a/libavformat/oggdec.h +++ b/libavformat/oggdec.h @@ -115,7 +115,7 @@ extern const struct ogg_codec ff_vorbis_codec; 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) diff --git a/libavformat/oggparseflac.c b/libavformat/oggparseflac.c index 36b2345aa6..9a9ca7ead7 100644 --- a/libavformat/oggparseflac.c +++ b/libavformat/oggparseflac.c @@ -68,7 +68,7 @@ flac_header (AVFormatContext * s, int idx) 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; diff --git a/libavformat/oggparsespeex.c b/libavformat/oggparsespeex.c index 05a998b228..9ad5397af4 100644 --- a/libavformat/oggparsespeex.c +++ b/libavformat/oggparsespeex.c @@ -75,7 +75,7 @@ static int speex_header(AVFormatContext *s, int idx) { 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; diff --git a/libavformat/oggparsetheora.c b/libavformat/oggparsetheora.c index 4cbb62a169..ecd2bbe011 100644 --- a/libavformat/oggparsetheora.c +++ b/libavformat/oggparsetheora.c @@ -109,7 +109,7 @@ theora_header (AVFormatContext * s, int idx) 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, diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c index 6b69b655a7..a2e057edab 100644 --- a/libavformat/oggparsevorbis.c +++ b/libavformat/oggparsevorbis.c @@ -42,7 +42,7 @@ const AVMetadataConv ff_vorbiscomment_metadata_conv[] = { }; 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 @@ ff_vorbis_comment(AVFormatContext * as, uint8_t *buf, int size) 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 @@ vorbis_header (AVFormatContext * s, int idx) 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); |