On Thu Feb 05 2015 at 7:57:21 PM Ben Boeckel <maths...@gmail.com> wrote:
> FLAC doesn't really support ID3 tags, so warn if they are found at all. > If vorbis tags are found, toss out duplicate ID3 tags. > > Fixes #3799. > > Signed-off-by: Ben Boeckel <maths...@gmail.com> > --- > libavformat/flacdec.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c > index 1a8dc19..fdb8e46 100644 > --- a/libavformat/flacdec.c > +++ b/libavformat/flacdec.c > @@ -33,6 +33,7 @@ static int flac_read_header(AVFormatContext *s) > int ret, metadata_last=0, metadata_type, metadata_size, > found_streaminfo=0; > uint8_t header[4]; > uint8_t *buffer=NULL; > + int has_idv3 = 0; > AVStream *st = avformat_new_stream(s, NULL); > if (!st) > return AVERROR(ENOMEM); > @@ -47,6 +48,19 @@ static int flac_read_header(AVFormatContext *s) > return 0; > } > > + if (av_dict_count(s->metadata)) { > + /* XXX: Is there a better way to parse this out? ID3 parsing is > done > + * all the way out in avformat_open_input. */ > + has_idv3 = 1; > + } > + > + if (has_idv3) { > + int level = AV_LOG_WARNING; > + if (s->error_recognition & AV_EF_COMPLIANT) > + level = AV_LOG_ERROR; > + av_log(s, level, "Spec-compliant FLAC do not support ID3 > tags.\n"); Not sure if this is a good idea but AV_EF_COMPLIANT doxygen says: consider all spec non compliances as errors (bad grammar BTW) So you should probably return an error too for that case. Timothy _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel