summaryrefslogtreecommitdiff
path: root/libavformat/vorbiscomment.h
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-04-28 04:54:05 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-05-03 13:43:54 +0200
commit6397b4d6a241692a1c7bb611a3fd42b0de2d32b5 (patch)
tree1a9f9efdbb428d1727d0b917e36ad9eb587d4d94 /libavformat/vorbiscomment.h
parent704d7c9f4616d71db1a1baa0a1726c77a9957521 (diff)
downloadffmpeg-6397b4d6a241692a1c7bb611a3fd42b0de2d32b5.tar.gz
avformat/vorbiscomment: Switch to AVIOContext from bytestream API
Up until now ff_vorbiscomment_write() used the bytestream API to write VorbisComments. Therefore the caller had to provide a sufficiently large buffer to write the output. Yet two of the three callers (namely the FLAC and the Matroska muxer) actually want the output to be written via an AVIOContext; therefore they allocated buffers of the right size just for this purpose (i.e. they get freed immediately afterwards). Only the Ogg muxer actually wants a buffer. But given that it is easy to wrap a buffer into an AVIOContext this commit changes ff_vorbiscomment_write() to use an AVIOContext for its output. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavformat/vorbiscomment.h')
-rw-r--r--libavformat/vorbiscomment.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/libavformat/vorbiscomment.h b/libavformat/vorbiscomment.h
index af9bd75cd7..7cacd0b2a0 100644
--- a/libavformat/vorbiscomment.h
+++ b/libavformat/vorbiscomment.h
@@ -38,18 +38,17 @@ int64_t ff_vorbiscomment_length(const AVDictionary *m, const char *vendor_string
AVChapter **chapters, unsigned int nb_chapters);
/**
- * Write a VorbisComment into a buffer. The buffer, p, must have enough
- * data to hold the whole VorbisComment. The minimum size required can be
- * obtained by passing the same AVDictionary and vendor_string to
+ * Write a VorbisComment into an AVIOContext. The output size can be obtained
+ * in advance by passing the same chapters, AVDictionary and vendor_string to
* ff_vorbiscomment_length()
*
- * @param p The buffer in which to write.
+ * @param pb The AVIOContext to write the output.
* @param m The metadata struct to write.
* @param vendor_string The vendor string to write.
* @param chapters The chapters to write.
* @param nb_chapters The number of chapters to write.
*/
-int ff_vorbiscomment_write(uint8_t **p, const AVDictionary *m,
+int ff_vorbiscomment_write(AVIOContext *pb, const AVDictionary *m,
const char *vendor_string,
AVChapter **chapters, unsigned int nb_chapters);