Simplify code by using av_metadata_set2().

somewhat based on ffmbc

Originally committed as revision 20840 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Michael Niedermayer 2009-12-13 21:07:47 +00:00
parent dfe9ee6b95
commit da457e7086

View File

@ -21,6 +21,7 @@
#include "id3v1.h"
#include "libavcodec/avcodec.h"
#include "libavutil/avstring.h"
const char * const ff_id3v1_genre_str[ID3v1_GENRE_MAX + 1] = {
[0] = "Blues",
@ -201,7 +202,6 @@ static void get_string(AVFormatContext *s, const char *key,
*/
static int parse_tag(AVFormatContext *s, const uint8_t *buf)
{
char str[5];
int genre;
if (!(buf[0] == 'T' &&
@ -213,10 +213,8 @@ static int parse_tag(AVFormatContext *s, const uint8_t *buf)
get_string(s, "album", buf + 63, 30);
get_string(s, "year", buf + 93, 4);
get_string(s, "comment", buf + 97, 30);
if (buf[125] == 0 && buf[126] != 0) {
snprintf(str, sizeof(str), "%d", buf[126]);
av_metadata_set(&s->metadata, "track", str);
}
if (buf[125] == 0 && buf[126] != 0)
av_metadata_set2(&s->metadata, "track", av_d2str(buf[126]), AV_METADATA_DONT_STRDUP_VAL);
genre = buf[127];
if (genre <= ID3v1_GENRE_MAX)
av_metadata_set(&s->metadata, "genre", ff_id3v1_genre_str[genre]);