39 while (*str && *str < 128) str++;
91 if (t->
key[0] !=
'T' || strlen(t->
key) != 4)
94 for (i = 0; *table[i]; i++)
103 int64_t size_pos, cur_pos;
119 if (id3v2_version == 4)
void avio_wl16(AVIOContext *s, unsigned int val)
AV_WL32 AV_WL24 AV_WL16 AV_RB32
int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer)
Return the written size and a pointer to the buffer.
int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
fseek() equivalent for AVIOContext.
const char ff_id3v2_4_tags[][4]
ID3v2.4-only text information frames.
AVDictionaryEntry * av_dict_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags)
Get a dictionary entry with matching key.
int avio_open_dyn_buf(AVIOContext **s)
Open a write only memory stream.
void av_freep(void *arg)
Free a memory block which has been allocated with av_malloc(z)() or av_realloc() and set the pointer ...
#define ID3v2_HEADER_SIZE
const AVMetadataConv ff_id3v2_34_metadata_conv[]
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext.
void avio_write(AVIOContext *s, const unsigned char *buf, int size)
static int id3v2_check_write_tag(AVFormatContext *s, AVDictionaryEntry *t, const char table[][4], enum ID3v2Encoding enc)
const AVMetadataConv ff_id3v2_4_metadata_conv[]
static int id3v2_put_ttag(AVFormatContext *s, const char *str1, const char *str2, uint32_t tag, enum ID3v2Encoding enc)
Write a text frame with one (normal frames) or two (TXXX frames) strings according to encoding (only ...
static int string_is_ascii(const uint8_t *str)
int avio_put_str(AVIOContext *s, const char *str)
Write a NULL-terminated string.
const char ff_id3v2_tags[][4]
A list of text information frames allowed in both ID3 v2.3 and v2.4 http://www.id3.org/id3v2.4.0-frames http://www.id3.org/id3v2.4.0-changes.
void avio_w8(AVIOContext *s, int b)
int avio_put_str16le(AVIOContext *s, const char *str)
Convert an UTF-8 string to UTF-16LE and write it.
int ff_id3v2_write(struct AVFormatContext *s, int id3v2_version, const char *magic)
Write an ID3v2 tag.
void avio_wb16(AVIOContext *s, unsigned int val)
static void id3v2_put_size(AVFormatContext *s, int size)
#define MKBETAG(a, b, c, d)
const char ff_id3v2_3_tags[][4]
ID3v2.3-only text information frames.
void avio_wb32(AVIOContext *s, unsigned int val)
#define AV_DICT_IGNORE_SUFFIX