[FFmpeg-devel] [PATCH v2] lavf/mp3enc: fix ID3v1 year metadata setting issue
mypopy at gmail.com
mypopy at gmail.com
Wed Apr 29 10:06:07 EEST 2020
On Sun, Apr 26, 2020 at 10:20 PM mypopy at gmail.com <mypopy at gmail.com> wrote:
>
> On Wed, Apr 22, 2020 at 3:57 PM Jun Zhao <mypopydev at gmail.com> wrote:
> >
> > From: Jun Zhao <barryjzhao at tencent.com>
> >
> > Follow the http://id3.org/ID3v1, setting the year metadata
> > for ID3v1.
> >
> > fix #8623
> >
> > Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
> > ---
> > libavformat/mp3enc.c | 13 ++++++++++++-
> > 1 file changed, 12 insertions(+), 1 deletion(-)
> >
> > diff --git a/libavformat/mp3enc.c b/libavformat/mp3enc.c
> > index 34b753f..14d4b6e 100644
> > --- a/libavformat/mp3enc.c
> > +++ b/libavformat/mp3enc.c
> > @@ -45,6 +45,7 @@ static int id3v1_set_string(AVFormatContext *s, const char *key,
> > return !!tag;
> > }
> >
> > +// refer to: http://id3.org/ID3v1
> > static int id3v1_create_tag(AVFormatContext *s, uint8_t *buf)
> > {
> > AVDictionaryEntry *tag;
> > @@ -58,7 +59,17 @@ static int id3v1_create_tag(AVFormatContext *s, uint8_t *buf)
> > count += id3v1_set_string(s, "TIT2", buf + 3, 30 + 1); //title
> > count += id3v1_set_string(s, "TPE1", buf + 33, 30 + 1); //author|artist
> > count += id3v1_set_string(s, "TALB", buf + 63, 30 + 1); //album
> > - count += id3v1_set_string(s, "TDRC", buf + 93, 4 + 1); //date
> > + if ((tag = av_dict_get(s->metadata, "TYER", NULL, 0))) { //year
> > + av_strlcpy(buf + 93, tag->value, 4 + 1);
> > + count++;
> > + } else if ((tag = av_dict_get(s->metadata, "TDRC", NULL, 0))) {
> > + av_strlcpy(buf + 93, tag->value, 4 + 1);
> > + count++;
> > + } else if ((tag = av_dict_get(s->metadata, "TDAT", NULL, 0))) {
> > + av_strlcpy(buf + 93, tag->value, 4 + 1);
> > + count++;
> > + }
> > +
> > count += id3v1_set_string(s, "comment", buf + 97, 30 + 1);
> > if ((tag = av_dict_get(s->metadata, "TRCK", NULL, 0))) { //track
> > buf[125] = 0;
> > --
> > 2.7.4
> >
> ping ?
Will apply, tks
More information about the ffmpeg-devel
mailing list