xine-lib 1.2.13-20230125hg15249
|
Go to the source code of this file.
Data Structures | |
struct | id3v2_header_t |
struct | id3v22_frame_header_t |
struct | id3v23_frame_header_t |
struct | id3v23_frame_ext_header_t |
struct | id3v24_frame_header_t |
struct | id3v24_frame_ext_header_t |
struct | id3v1_tag_t |
Typedefs | |
typedef id3v2_header_t | id3v24_footer_t |
Functions | |
int | id3v1_parse_tag (input_plugin_t *input, xine_stream_t *stream) |
int | xine_parse_id3v2_tag (xine_stream_t *stream, input_plugin_t *input) |
Check/parse/skip a possible initial ID3 v2 tag from the (side) stream. | |
int | id3v2_parse_tag (input_plugin_t *input, xine_stream_t *stream, uint32_t id3_signature) |
Generic function for ID3v2 tags parsing. | |
static int | id3v2_istag (uint32_t id3_signature) |
Checks if the given buffer is an ID3 tag preamble. | |
static uint32_t | _X_BE_24_synchsafe (uint8_t buf[3]) |
static uint32_t | _X_BE_32_synchsafe (uint8_t buf[4]) |
static uint32_t | BE_35_synchsafe (uint8_t buf[5]) |
#define ID3V22_COMPRESS_FLAG 0x40 |
Referenced by id3v22_parse_tag().
#define ID3V22_FRAME_HEADER_SIZE 6 |
Referenced by id3v22_parse_frame_header(), and id3v22_parse_tag().
Referenced by id3v2_parse_tag().
#define ID3V22_UNSYNCH_FLAG 0x80 |
Referenced by id3v22_parse_tag().
#define ID3V22_ZERO_FLAG 0x3F |
Referenced by id3v22_parse_tag().
#define ID3V23_EXPERIMENTAL_FLAG 0x20 |
#define ID3V23_EXT_HEADER_FLAG 0x40 |
Referenced by id3v23_parse_tag().
#define ID3V23_FRAME_COMPRESS_FLAG 0x0080 |
#define ID3V23_FRAME_ENCRYPT_FLAG 0x0040 |
#define ID3V23_FRAME_FILE_PRESERV_FLAG 0x4000 |
#define ID3V23_FRAME_GROUP_ID_FLAG 0x0020 |
#define ID3V23_FRAME_HEADER_SIZE 10 |
Referenced by id3v23_parse_frame_header(), and id3v23_parse_tag().
#define ID3V23_FRAME_READ_ONLY_FLAG 0x2000 |
#define ID3V23_FRAME_TAG_PRESERV_FLAG 0x8000 |
#define ID3V23_FRAME_ZERO_FLAG 0x1F1F |
Referenced by id3v2_parse_tag().
#define ID3V23_UNSYNCH_FLAG 0x80 |
Referenced by id3v23_parse_tag().
#define ID3V23_ZERO_FLAG 0x1F |
Referenced by id3v23_parse_tag().
#define ID3V24_EXPERIMENTAL_FLAG 0x20 |
Referenced by id3v24_parse_tag().
#define ID3V24_EXT_CRC_FLAG 0x20 |
Referenced by id3v24_parse_ext_header().
#define ID3V24_EXT_HEADER_FLAG 0x40 |
Referenced by id3v24_parse_tag().
#define ID3V24_EXT_RESTRICTIONS_FLAG 0x10 |
Referenced by id3v24_parse_ext_header().
#define ID3V24_EXT_UPDATE_FLAG 0x40 |
Referenced by id3v24_parse_ext_header().
#define ID3V24_EXT_ZERO_FLAG 0x8F |
Referenced by id3v24_parse_ext_header().
#define ID3V24_FOOTER_FLAG 0x10 |
Referenced by id3v24_parse_tag().
#define ID3V24_FOOTER_SIZE 10 |
Referenced by id3v24_parse_tag().
#define ID3V24_FRAME_COMPRESS_FLAG 0x0008 |
#define ID3V24_FRAME_DATA_LEN_FLAG 0x0001 |
#define ID3V24_FRAME_ENCRYPT_FLAG 0x0004 |
#define ID3V24_FRAME_FILE_PRESERV_FLAG 0x2000 |
#define ID3V24_FRAME_GROUP_ID_FLAG 0x0040 |
#define ID3V24_FRAME_HEADER_SIZE 10 |
Referenced by id3v24_parse_frame_header(), and id3v24_parse_tag().
#define ID3V24_FRAME_READ_ONLY_FLAG 0x1000 |
#define ID3V24_FRAME_TAG_PRESERV_FLAG 0x4000 |
#define ID3V24_FRAME_UNSYNCH_FLAG 0x0002 |
#define ID3V24_FRAME_ZERO_FLAG 0x8FB0 |
Referenced by id3v2_parse_tag().
#define ID3V24_UNSYNCH_FLAG 0x80 |
Referenced by id3v24_parse_tag().
#define ID3V24_ZERO_FLAG 0x0F |
Referenced by id3v24_parse_tag().
#define ID3V2X_MASK ~ME_FOURCC( 0 , 0 , 0 , 0xFF) /* id3 v2.x header mask */ |
Referenced by id3v2_istag(), and id3v2_parse_tag().
Referenced by id3v2_istag(), and id3v2_parse_tag().
typedef id3v2_header_t id3v24_footer_t |
|
inlinestatic |
|
inlinestatic |
Referenced by id3v2_parse_header().
|
inlinestatic |
Referenced by id3v24_parse_ext_header().
int id3v1_parse_tag | ( | input_plugin_t * | input, |
xine_stream_t * | stream ) |
References _x_meta_info_n_set(), _x_meta_info_set(), id3v1_tag_t::album, id3v1_tag_t::artist, id3v1_tag_t::comment, id3v1_tag_t::genre, id3_genre, ID3_GENRE_COUNT, input(), lprintf, id3v1_tag_t::tag, id3v1_tag_t::title, XINE_META_INFO_ALBUM, XINE_META_INFO_ARTIST, XINE_META_INFO_COMMENT, XINE_META_INFO_GENRE, XINE_META_INFO_TITLE, XINE_META_INFO_TRACK_NUMBER, XINE_META_INFO_YEAR, and id3v1_tag_t::year.
Referenced by demux_mpgaudio_send_headers().
|
inlinestatic |
Checks if the given buffer is an ID3 tag preamble.
ptr | Pointer to the first 10 bytes of the ID3 tag |
References ID3V2X_MASK, and ID3V2X_TAG.
Referenced by demux_mpgaudio_next(), and xine_parse_id3v2_tag().
int id3v2_parse_tag | ( | input_plugin_t * | input, |
xine_stream_t * | stream, | ||
uint32_t | id3_signature ) |
Generic function for ID3v2 tags parsing.
input | Pointer to the input plugin used by the demuxer, used to access the tag's data. |
stream | Pointer to the xine stream currently being read. |
mp3_frame_header | Header of the MP3 frame carrying the tag. |
References _x_assert, be2me_32, id3v22_parse_tag(), ID3V22_TAG, id3v23_parse_tag(), ID3V23_TAG, id3v24_parse_tag(), ID3V24_TAG, ID3V2X_MASK, ID3V2X_TAG, input(), LOG_MODULE, xine_stream_s::xine, XINE_VERBOSITY_LOG, and xprintf.
Referenced by demux_mpgaudio_next(), and xine_parse_id3v2_tag().
int xine_parse_id3v2_tag | ( | xine_stream_t * | stream, |
input_plugin_t * | input ) |
Check/parse/skip a possible initial ID3 v2 tag from the (side) stream.
stream | The xine stream currently being read. |
input | The input plugin to use, or NULL for the stream default. |
References _x_demux_read_header(), id3v2_istag(), id3v2_parse_tag(), xine_stream_private_st::id3v2_tag_size, input(), INPUT_CAP_PREVIEW, INPUT_CAP_SIZED_PREVIEW, INPUT_OPTIONAL_DATA_NEW_PREVIEW, INPUT_OPTIONAL_SUCCESS, INPUT_OPTIONAL_UNSUPPORTED, xine_stream_s::input_plugin, LOG_MODULE, NULL, xine_stream_private_st::s, input_plugin_s::seek, xine_stream_s::xine, XINE_VERBOSITY_DEBUG, and xprintf.
Referenced by detect_mpgaudio_file(), open_flac_file(), open_mpc_file(), and probe_aac_file().