Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2012-02-28 01:08:50 +0400
committerAnton Khirnov <anton@khirnov.net>2012-02-29 17:26:14 +0400
commit411225aabce57411d1544a7bbc6f6bee6d8ef638 (patch)
treef3dcc31c02aaf9507f369239950c7c8349248b07 /libavformat/id3v2.h
parentc19981774880919c7f9417014bdcb1fb63f69231 (diff)
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.h26
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.