Message ID | 1555476243-14424-2-git-send-email-mypopydev@gmail.com |
---|---|
State | Accepted |
Commit | 8d3630c5402fdda2889fe4f74f7dcdd50ebca654 |
Headers | show |
On Wed, Apr 17, 2019 at 12:44 PM Jun Zhao <mypopydev@gmail.com> wrote: > > From: Jun Zhao <barryjzhao@tencent.com> > > The spec in https://xiph.org/vorbis/doc/v-comment.html states that > the metadata keys are case-insensitive, so don't change the case > and update the fate test case. > > Fix #7784 > > Signed-off-by: Jun Zhao <barryjzhao@tencent.com> > --- > libavformat/oggparsevorbis.c | 9 ++++----- > tests/ref/fate/limited_input_seek | 2 +- > tests/ref/fate/limited_input_seek-copyts | 2 +- > 3 files changed, 6 insertions(+), 7 deletions(-) > > diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c > index bcfd246..43f05f9 100644 > --- a/libavformat/oggparsevorbis.c > +++ b/libavformat/oggparsevorbis.c > @@ -44,7 +44,7 @@ static int ogm_chapter(AVFormatContext *as, uint8_t *key, uint8_t *val) > int i, cnum, h, m, s, ms, keylen = strlen(key); > AVChapter *chapter = NULL; > > - if (keylen < 9 || sscanf(key, "CHAPTER%03d", &cnum) != 1) > + if (keylen < 9 || av_strncasecmp(key, "CHAPTER", 7) || sscanf(key+7, "%03d", &cnum) != 1) > return 0; > > if (keylen <= 10) { > @@ -55,7 +55,7 @@ static int ogm_chapter(AVFormatContext *as, uint8_t *key, uint8_t *val) > ms + 1000 * (s + 60 * (m + 60 * h)), > AV_NOPTS_VALUE, NULL); > av_free(val); > - } else if (!strcmp(key + keylen - 4, "NAME")) { > + } else if (!av_strcasecmp(key + keylen - 4, "NAME")) { > for (i = 0; i < as->nb_chapters; i++) > if (as->chapters[i]->id == cnum) { > chapter = as->chapters[i]; > @@ -91,7 +91,7 @@ int ff_vorbis_comment(AVFormatContext *as, AVDictionary **m, > const uint8_t *p = buf; > const uint8_t *end = buf + size; > int updates = 0; > - unsigned n, j; > + unsigned n; > int s; > > /* must have vendor_length and user_comment_list_length */ > @@ -139,8 +139,7 @@ int ff_vorbis_comment(AVFormatContext *as, AVDictionary **m, > return AVERROR(ENOMEM); > } > > - for (j = 0; j < tl; j++) > - tt[j] = av_toupper(t[j]); > + memcpy(tt, t, tl); > tt[tl] = 0; > > memcpy(ct, v, vl); > diff --git a/tests/ref/fate/limited_input_seek b/tests/ref/fate/limited_input_seek > index e0c4bf1..3269dce 100644 > --- a/tests/ref/fate/limited_input_seek > +++ b/tests/ref/fate/limited_input_seek > @@ -1 +1 @@ > -20a1bb9a1cfb23c1fe86f14e6065cd95 > +ae878bdaec23f36a63d142165fe57f49 > diff --git a/tests/ref/fate/limited_input_seek-copyts b/tests/ref/fate/limited_input_seek-copyts > index 92790a8..6eeaef8 100644 > --- a/tests/ref/fate/limited_input_seek-copyts > +++ b/tests/ref/fate/limited_input_seek-copyts > @@ -1 +1 @@ > -ec3604b1954ed80de364b8ef491771ce > +ffe8a674bdf38e4f650f91963debc654 > -- > 1.7.1 > Ping?
On 22/04/2019 13:19, mypopy@gmail.com wrote: > Ping? > LGTM. - Derek
On Mon, Apr 22, 2019 at 10:43 PM Derek Buitenhuis <derek.buitenhuis@gmail.com> wrote: > > On 22/04/2019 13:19, mypopy@gmail.com wrote: > > Ping? > > > > LGTM. > > - Derek Pushed, Thanks
diff --git a/libavformat/oggparsevorbis.c b/libavformat/oggparsevorbis.c index bcfd246..43f05f9 100644 --- a/libavformat/oggparsevorbis.c +++ b/libavformat/oggparsevorbis.c @@ -44,7 +44,7 @@ static int ogm_chapter(AVFormatContext *as, uint8_t *key, uint8_t *val) int i, cnum, h, m, s, ms, keylen = strlen(key); AVChapter *chapter = NULL; - if (keylen < 9 || sscanf(key, "CHAPTER%03d", &cnum) != 1) + if (keylen < 9 || av_strncasecmp(key, "CHAPTER", 7) || sscanf(key+7, "%03d", &cnum) != 1) return 0; if (keylen <= 10) { @@ -55,7 +55,7 @@ static int ogm_chapter(AVFormatContext *as, uint8_t *key, uint8_t *val) ms + 1000 * (s + 60 * (m + 60 * h)), AV_NOPTS_VALUE, NULL); av_free(val); - } else if (!strcmp(key + keylen - 4, "NAME")) { + } else if (!av_strcasecmp(key + keylen - 4, "NAME")) { for (i = 0; i < as->nb_chapters; i++) if (as->chapters[i]->id == cnum) { chapter = as->chapters[i]; @@ -91,7 +91,7 @@ int ff_vorbis_comment(AVFormatContext *as, AVDictionary **m, const uint8_t *p = buf; const uint8_t *end = buf + size; int updates = 0; - unsigned n, j; + unsigned n; int s; /* must have vendor_length and user_comment_list_length */ @@ -139,8 +139,7 @@ int ff_vorbis_comment(AVFormatContext *as, AVDictionary **m, return AVERROR(ENOMEM); } - for (j = 0; j < tl; j++) - tt[j] = av_toupper(t[j]); + memcpy(tt, t, tl); tt[tl] = 0; memcpy(ct, v, vl); diff --git a/tests/ref/fate/limited_input_seek b/tests/ref/fate/limited_input_seek index e0c4bf1..3269dce 100644 --- a/tests/ref/fate/limited_input_seek +++ b/tests/ref/fate/limited_input_seek @@ -1 +1 @@ -20a1bb9a1cfb23c1fe86f14e6065cd95 +ae878bdaec23f36a63d142165fe57f49 diff --git a/tests/ref/fate/limited_input_seek-copyts b/tests/ref/fate/limited_input_seek-copyts index 92790a8..6eeaef8 100644 --- a/tests/ref/fate/limited_input_seek-copyts +++ b/tests/ref/fate/limited_input_seek-copyts @@ -1 +1 @@ -ec3604b1954ed80de364b8ef491771ce +ffe8a674bdf38e4f650f91963debc654