diff options
author | Anton Khirnov <anton@khirnov.net> | 2012-02-27 22:08:50 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2012-02-29 14:26:14 +0100 |
commit | 411225aabce57411d1544a7bbc6f6bee6d8ef638 (patch) | |
tree | f3dcc31c02aaf9507f369239950c7c8349248b07 /libavformat/id3v2.h | |
parent | c19981774880919c7f9417014bdcb1fb63f69231 (diff) | |
download | ffmpeg-411225aabce57411d1544a7bbc6f6bee6d8ef638.tar.gz |
id3v2enc: split ff_id3v2_write().
This will allow writing the tag in several steps, needed for writing
attached pictures.
Diffstat (limited to 'libavformat/id3v2.h')
-rw-r--r-- | libavformat/id3v2.h | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/libavformat/id3v2.h b/libavformat/id3v2.h index 5f3ec1b3ca..f47abe9d25 100644 --- a/libavformat/id3v2.h +++ b/libavformat/id3v2.h @@ -46,6 +46,12 @@ enum ID3v2Encoding { ID3v2_ENCODING_UTF8 = 3, }; +typedef struct ID3v2EncContext { + int version; ///< ID3v2 minor version, either 3 or 4 + int64_t size_pos; ///< offset of the tag total size + int len; ///< size of the tag written so far +} ID3v2EncContext; + typedef struct ID3v2ExtraMeta { const char *tag; void *data; @@ -91,12 +97,28 @@ int ff_id3v2_tag_len(const uint8_t *buf); void ff_id3v2_read(AVFormatContext *s, const char *magic, ID3v2ExtraMeta **extra_meta); /** - * Write an ID3v2 tag. + * Initialize an ID3v2 tag. + */ +void ff_id3v2_start(ID3v2EncContext *id3, AVIOContext *pb, int id3v2_version, + const char *magic); + +/** + * Convert and write all global metadata from s into an ID3v2 tag. + */ +int ff_id3v2_write_metadata(AVFormatContext *s, ID3v2EncContext *id3); + +/** + * Finalize an opened ID3v2 tag. + */ +void ff_id3v2_finish(ID3v2EncContext *id3, AVIOContext *pb); + +/** + * Write an ID3v2 tag containing all global metadata from s. * @param id3v2_version Subversion of ID3v2; supported values are 3 and 4 * @param magic magic bytes to identify the header * If in doubt, use ID3v2_DEFAULT_MAGIC. */ -int ff_id3v2_write(struct AVFormatContext *s, int id3v2_version, const char *magic); +int ff_id3v2_write_simple(struct AVFormatContext *s, int id3v2_version, const char *magic); /** * Free memory allocated parsing special (non-text) metadata. |