From patchwork Mon Apr 15 01:58:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 12740 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 3A58F447CA4 for ; Mon, 15 Apr 2019 05:04:30 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1A46868A295; Mon, 15 Apr 2019 05:04:30 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f182.google.com (mail-pg1-f182.google.com [209.85.215.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CCD6268A23A for ; Mon, 15 Apr 2019 05:04:22 +0300 (EEST) Received: by mail-pg1-f182.google.com with SMTP id i2so7777987pgj.11 for ; Sun, 14 Apr 2019 19:04:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=tXDcL/2e9VCIWYWaOP0+9lmoptJgGVUGQ7FdneJlwxE=; b=QAznvaiUvAC4SZPewUU4RboLV7dy9ZP3dkWe1N18Sg7TMc8ph/vOzmMqUPmlltq2x7 YFevGEePeIOf+bJMEoWKuV544V/qOreZbV7pLfa1bNwMU5xed1o0pu3IoDWTFPXCY1cG gQnBdw0pSuXl9M03Ie3J047KNcs+GByk+/b1v50OabOj2zeVnBzGF3tX9jN5eP/S3Tjk 862MV0fBqbJ48TlRlvUBqi3qJgMMPptsJ10evPVa737UxKWrTboPCx11LxO2yet34Gcj 4t8FiFs9urn1T3CZ9bKtPPH7Y2xtCXR+r5ujVB0TzE0t+XH2Itau4TVTW+EIOZitWti8 5YoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=tXDcL/2e9VCIWYWaOP0+9lmoptJgGVUGQ7FdneJlwxE=; b=KW8XzQz7wMTt8ipUd3WWYzfqoc0bVo0O9PqzZhhXXeHnnQf/VrRfRx131W0nX3cofC BEt1sH+NgzGVvz2fsEP5p3wEPokK1Ec4XxPt9p+3z+GAMPzqlOyADzDwuYyCojmEkqnC SH4PfWQKFiMP3LZXXenWNIYGgKLFVtKagF/kycsJ61WpakTfuInL4Yj/ESH679FJxdE1 Myg/xHxnjQvmGUC0F18jyRvV3sFNiqJ/TNB2mDIblMvg3giDrnZkblpkDkOWoW4veFpd EQr+oaJ+Vi8G+8NU4dT3kEb7EIC3/6meOO0bo1O2TKJrLwF3cW+LgLm0At+I2Sdk5Hl5 QeuQ== X-Gm-Message-State: APjAAAUbA4mp6iglp2tPKS96R7cAGnS7xU4znmOthhjkjRYSxcdFEBIO WO7oTgWrwkUQX+FPPbaMOJibzCFT X-Google-Smtp-Source: APXvYqwBSGvoV0RXJHdKKl21LdKteSMfiRM2BrnZm3y8Z18eBKPdlVI5EBfJHld8UWfMZHikPS/upw== X-Received: by 2002:a63:720e:: with SMTP id n14mr66580349pgc.93.1555293515563; Sun, 14 Apr 2019 18:58:35 -0700 (PDT) Received: from localhost.localdomain ([47.90.47.25]) by smtp.gmail.com with ESMTPSA id p3sm66830888pfn.167.2019.04.14.18.58.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 14 Apr 2019 18:58:34 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Mon, 15 Apr 2019 09:58:30 +0800 Message-Id: <1555293510-7402-1-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 1.7.1 Subject: [FFmpeg-devel] [PATCH V1] lavf/oggparsevorbis: Fix change the case of metadata keys issue X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Jun Zhao 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 --- 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..c3c8d38 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_strcasecmp(key, "CHAPTER")!=0 && 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