diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-05-28 13:08:50 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-05-28 13:08:50 +0200 |
commit | dff4aa6afd40bcc6c71b5a21d229fb941f9fc1eb (patch) | |
tree | e50cc5c08974c011ff14516a14d602605eee065a | |
parent | 579e2b2874aeaa9cfdeed1fd1408767e33a63029 (diff) | |
parent | efcde917af407a6031ecff68edd51fce7b83d104 (diff) | |
download | ffmpeg-dff4aa6afd40bcc6c71b5a21d229fb941f9fc1eb.tar.gz |
Merge commit 'efcde917af407a6031ecff68edd51fce7b83d104'
* commit 'efcde917af407a6031ecff68edd51fce7b83d104':
vorbiscomment: simplify API by using av_dict_count()
Conflicts:
libavformat/flacenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavformat/flacenc.c | 6 | ||||
-rw-r--r-- | libavformat/oggenc.c | 5 | ||||
-rw-r--r-- | libavformat/vorbiscomment.c | 8 | ||||
-rw-r--r-- | libavformat/vorbiscomment.h | 7 |
4 files changed, 10 insertions, 16 deletions
diff --git a/libavformat/flacenc.c b/libavformat/flacenc.c index f0b7d2956e..ae8e171fb1 100644 --- a/libavformat/flacenc.c +++ b/libavformat/flacenc.c @@ -47,12 +47,12 @@ static int flac_write_block_comment(AVIOContext *pb, AVDictionary **m, int last_block, int bitexact) { const char *vendor = bitexact ? "ffmpeg" : LIBAVFORMAT_IDENT; - unsigned int len, count; + unsigned int len; uint8_t *p, *p0; ff_metadata_conv(m, ff_vorbiscomment_metadata_conv, NULL); - len = ff_vorbiscomment_length(*m, vendor, &count); + len = ff_vorbiscomment_length(*m, vendor); p0 = av_malloc(len+4); if (!p0) return AVERROR(ENOMEM); @@ -60,7 +60,7 @@ static int flac_write_block_comment(AVIOContext *pb, AVDictionary **m, bytestream_put_byte(&p, last_block ? 0x84 : 0x04); bytestream_put_be24(&p, len); - ff_vorbiscomment_write(&p, m, vendor, count); + ff_vorbiscomment_write(&p, m, vendor); avio_write(pb, p0, len+4); av_freep(&p0); diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c index 9f75538daa..bec3917a21 100644 --- a/libavformat/oggenc.c +++ b/libavformat/oggenc.c @@ -277,18 +277,17 @@ static uint8_t *ogg_write_vorbiscomment(int offset, int bitexact, const char *vendor = bitexact ? "ffmpeg" : LIBAVFORMAT_IDENT; int size; uint8_t *p, *p0; - unsigned int count; ff_metadata_conv(m, ff_vorbiscomment_metadata_conv, NULL); - size = offset + ff_vorbiscomment_length(*m, vendor, &count) + framing_bit; + size = offset + ff_vorbiscomment_length(*m, vendor) + framing_bit; p = av_mallocz(size); if (!p) return NULL; p0 = p; p += offset; - ff_vorbiscomment_write(&p, m, vendor, count); + ff_vorbiscomment_write(&p, m, vendor); if (framing_bit) bytestream_put_byte(&p, 1); diff --git a/libavformat/vorbiscomment.c b/libavformat/vorbiscomment.c index f17a0c1d13..cc9b6620ef 100644 --- a/libavformat/vorbiscomment.c +++ b/libavformat/vorbiscomment.c @@ -38,28 +38,26 @@ const AVMetadataConv ff_vorbiscomment_metadata_conv[] = { { 0 } }; -int ff_vorbiscomment_length(AVDictionary *m, const char *vendor_string, - unsigned *count) +int ff_vorbiscomment_length(AVDictionary *m, const char *vendor_string) { int len = 8; len += strlen(vendor_string); - *count = 0; if (m) { AVDictionaryEntry *tag = NULL; while ((tag = av_dict_get(m, "", tag, AV_DICT_IGNORE_SUFFIX))) { len += 4 +strlen(tag->key) + 1 + strlen(tag->value); - (*count)++; } } return len; } int ff_vorbiscomment_write(uint8_t **p, AVDictionary **m, - const char *vendor_string, const unsigned count) + const char *vendor_string) { bytestream_put_le32(p, strlen(vendor_string)); bytestream_put_buffer(p, vendor_string, strlen(vendor_string)); if (*m) { + int count = av_dict_count(*m); AVDictionaryEntry *tag = NULL; bytestream_put_le32(p, count); while ((tag = av_dict_get(*m, "", tag, AV_DICT_IGNORE_SUFFIX))) { diff --git a/libavformat/vorbiscomment.h b/libavformat/vorbiscomment.h index 4e631e3553..f4212d2632 100644 --- a/libavformat/vorbiscomment.h +++ b/libavformat/vorbiscomment.h @@ -32,11 +32,9 @@ * @param m The metadata structure to be parsed. For no metadata, set to NULL. * @param vendor_string The vendor string to be added into the VorbisComment. * For no string, set to an empty string. - * @param count Pointer to store the number of tags in m because m->count is "not allowed" * @return The length in bytes. */ -int ff_vorbiscomment_length(AVDictionary *m, const char *vendor_string, - unsigned *count); +int ff_vorbiscomment_length(AVDictionary *m, const char *vendor_string); /** * Write a VorbisComment into a buffer. The buffer, p, must have enough @@ -47,10 +45,9 @@ int ff_vorbiscomment_length(AVDictionary *m, const char *vendor_string, * @param p The buffer in which to write. * @param m The metadata struct to write. * @param vendor_string The vendor string to write. - * @param count The number of tags in m because m->count is "not allowed" */ int ff_vorbiscomment_write(uint8_t **p, AVDictionary **m, - const char *vendor_string, const unsigned count); + const char *vendor_string); extern const AVMetadataConv ff_vorbiscomment_metadata_conv[]; |