mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-06 15:49:50 +08:00
Merge remote-tracking branch 'qatar/master'
* qatar/master: swfdec: Add support for sample_rate_code 0 (5512 Hz) dct-test: factor out some common code and do whas was likely intended doc: library versions need to be bumped in version.h Revert "ffmpeg: get rid of useless AVInputStream.nb_streams." Remove some forgotten AVCodecContext.palctrl usage. lavc/utils: move avcodec_init() higher in the file. lavc: replace some deprecated FF_*_TYPE with AV_PICTURE_TYPE_* ac3dec: actually use drc_scale private option lavc: undeprecate AVPALETTE_SIZE and AVPALETTE_COUNT macros alsa: add missing header msmpeg4: remove leftover unused debug variable declaration Fix assert() calls that need updates after FF_COMMON_FRAME macro elimination. Fix av_dlog invocations with wrong or missing logging context. vf_yadif: add support to yuva420p vf_yadif: correct documentation on the parity parameter vf_yadif: copy buffer properties like aspect for second frame as well oma: support for encrypted files id3v2: add support for non-text and GEOB type tag frames des: add possibility to calculate DES-CBC-MAC with small buffer Conflicts: ffmpeg.c libavcodec/dct-test.c libavformat/mpegts.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@ -45,6 +45,27 @@ enum ID3v2Encoding {
|
||||
ID3v2_ENCODING_UTF8 = 3,
|
||||
};
|
||||
|
||||
typedef struct ID3v2ExtraMeta {
|
||||
const char *tag;
|
||||
void *data;
|
||||
struct ID3v2ExtraMeta *next;
|
||||
} ID3v2ExtraMeta;
|
||||
|
||||
typedef struct ID3v2ExtraMetaGEOB {
|
||||
uint32_t datasize;
|
||||
uint8_t *mime_type;
|
||||
uint8_t *file_name;
|
||||
uint8_t *description;
|
||||
uint8_t *data;
|
||||
} ID3v2ExtraMetaGEOB;
|
||||
|
||||
typedef struct ID3v2EMFunc {
|
||||
const char *tag3;
|
||||
const char *tag4;
|
||||
void (*read)(AVFormatContext*, AVIOContext*, int, char*, ID3v2ExtraMeta **);
|
||||
void (*free)();
|
||||
} ID3v2EMFunc;
|
||||
|
||||
/**
|
||||
* Detect ID3v2 Header.
|
||||
* @param buf must be ID3v2_HEADER_SIZE byte long
|
||||
@ -61,10 +82,25 @@ int ff_id3v2_match(const uint8_t *buf, const char *magic);
|
||||
int ff_id3v2_tag_len(const uint8_t *buf);
|
||||
|
||||
/**
|
||||
* Read an ID3v2 tag
|
||||
* Read an ID3v2 tag (text tags only)
|
||||
*/
|
||||
void ff_id3v2_read(AVFormatContext *s, const char *magic);
|
||||
|
||||
/**
|
||||
* Read an ID3v2 tag, including supported extra metadata (currently only GEOB)
|
||||
* @param extra_meta If not NULL, extra metadata is parsed into a list of
|
||||
* ID3v2ExtraMeta structs and *extra_meta points to the head of the list
|
||||
*/
|
||||
void ff_id3v2_read_all(AVFormatContext *s, const char *magic, ID3v2ExtraMeta **extra_meta);
|
||||
|
||||
/**
|
||||
* Free memory allocated parsing special (non-text) metadata.
|
||||
* @param extra_meta Pointer to a pointer to the head of a ID3v2ExtraMeta list, *extra_meta is set to NULL.
|
||||
*/
|
||||
void ff_id3v2_free_extra_meta(ID3v2ExtraMeta **extra_meta);
|
||||
|
||||
extern const ID3v2EMFunc ff_id3v2_extra_meta_funcs[];
|
||||
|
||||
extern const AVMetadataConv ff_id3v2_34_metadata_conv[];
|
||||
extern const AVMetadataConv ff_id3v2_4_metadata_conv[];
|
||||
extern const AVMetadataConv ff_id3v2_2_metadata_conv[];
|
||||
|
Reference in New Issue
Block a user