60 [33] =
"Instrumental",
73 [46] =
"Instrumental Pop",
74 [47] =
"Instrumental Rock",
78 [51] =
"Techno-Industrial",
83 [56] =
"Southern Rock",
88 [61] =
"Christian Rap",
91 [64] =
"Native American",
105 [78] =
"Rock & Roll",
109 [82] =
"National Folk",
111 [84] =
"Fast Fusion",
118 [91] =
"Gothic Rock",
119 [92] =
"Progressive Rock",
120 [93] =
"Psychedelic Rock",
121 [94] =
"Symphonic Rock",
125 [98] =
"Easy Listening",
131 [104] =
"Chamber Music",
134 [107] =
"Booty Bass",
136 [109] =
"Porn Groove",
144 [117] =
"Power Ballad",
145 [118] =
"Rhythmic Soul",
151 [124] =
"Euro-House",
152 [125] =
"Dance Hall",
154 [127] =
"Drum & Bass",
155 [128] =
"Club-House",
161 [134] =
"Polsk Punk",
163 [136] =
"Christian Gangsta",
164 [137] =
"Heavy Metal",
165 [138] =
"Black Metal",
167 [140] =
"Contemporary Christian",
168 [141] =
"Christian Rock",
171 [144] =
"Thrash Metal",
178 const uint8_t *buf,
int buf_size)
184 for(i = 0; i < buf_size; i++) {
188 if ((q - str) >=
sizeof(str) - 1)
208 if (!(buf[0] ==
'T' &&
217 if (buf[125] == 0 && buf[126] != 0) {
218 snprintf(str,
sizeof(str),
"%d", buf[126]);
236 if (filesize > 128) {
int64_t avio_size(AVIOContext *s)
Get the filesize.
void ff_id3v1_read(AVFormatContext *s)
Read an ID3v1 tag.
int64_t avio_seek(AVIOContext *s, int64_t offset, int whence)
fseek() equivalent for AVIOContext.
static av_always_inline int64_t avio_tell(AVIOContext *s)
ftell() equivalent for AVIOContext.
int avio_read(AVIOContext *s, unsigned char *buf, int size)
Read size bytes from AVIOContext into buf.
int seekable
A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable.
static void get_string(AVFormatContext *s, const char *key, const uint8_t *buf, int buf_size)
AVIOContext * pb
I/O context.
int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags)
Set the given entry in *pm, overwriting an existing entry.
static int parse_tag(AVFormatContext *s, const uint8_t *buf)
Parse an ID3v1 tag.
const char *const ff_id3v1_genre_str[ID3v1_GENRE_MAX+1]
ID3v1 genres.