[FFmpeg-devel] [PATCH V2] lavf/oggparsevorbis: Fix change the case of metadata keys issue
mypopy at gmail.com
mypopy at gmail.com
Mon Apr 22 15:19:23 EEST 2019
On Wed, Apr 17, 2019 at 12:44 PM Jun Zhao <mypopydev at gmail.com> wrote:
>
> From: Jun Zhao <barryjzhao at 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 at 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?
More information about the ffmpeg-devel
mailing list