diff mbox series

[FFmpeg-devel,v2] lavf/mp3enc: fix ID3v1 year metadata setting issue

Message ID 1587542240-24847-1-git-send-email-mypopydev@gmail.com
State Accepted
Commit 280383a8975bf04f7d05caf55fae75bbff71b347
Headers show
Series [FFmpeg-devel,v2] lavf/mp3enc: fix ID3v1 year metadata setting issue | expand

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

Jun Zhao April 22, 2020, 7:57 a.m. UTC
From: Jun Zhao <barryjzhao@tencent.com>

Follow the http://id3.org/ID3v1, setting the year metadata
for ID3v1.

fix #8623

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
---
 libavformat/mp3enc.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Comments

mypopy@gmail.com April 26, 2020, 2:20 p.m. UTC | #1
On Wed, Apr 22, 2020 at 3:57 PM Jun Zhao <mypopydev@gmail.com> wrote:
>
> From: Jun Zhao <barryjzhao@tencent.com>
>
> Follow the http://id3.org/ID3v1, setting the year metadata
> for ID3v1.
>
> fix #8623
>
> Signed-off-by: Jun Zhao <barryjzhao@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 ?
mypopy@gmail.com April 29, 2020, 7:06 a.m. UTC | #2
On Sun, Apr 26, 2020 at 10:20 PM mypopy@gmail.com <mypopy@gmail.com> wrote:
>
> On Wed, Apr 22, 2020 at 3:57 PM Jun Zhao <mypopydev@gmail.com> wrote:
> >
> > From: Jun Zhao <barryjzhao@tencent.com>
> >
> > Follow the http://id3.org/ID3v1, setting the year metadata
> > for ID3v1.
> >
> > fix #8623
> >
> > Signed-off-by: Jun Zhao <barryjzhao@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
diff mbox series

Patch

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;