From patchwork Wed Apr 17 04:44:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 12778 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 13ED0448FD0 for ; Wed, 17 Apr 2019 07:44:21 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 023EA689BEA; Wed, 17 Apr 2019 07:44:21 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E599F6882FF for ; Wed, 17 Apr 2019 07:44:13 +0300 (EEST) Received: by mail-pf1-f179.google.com with SMTP id c207so11483386pfc.7 for ; Tue, 16 Apr 2019 21:44:13 -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:in-reply-to:references; bh=sq3hWyzbFGmmSvZUk9cWp6GtT6QYQPlfFJ2I/Ud6jkA=; b=nkF3uiBjVXaxKQQ6m6KNwrqczDDWjH/TOSFcOgU4QFzPk+PigOiz1XUC9cgXvV/4bs mpCFjncmZquywJsB2cPk5n12JOC4RZAvX0k6NBkv5jDsyDi8/qHTuG46sH46jqF8kfH7 m2tMaNkJKhhyaJ8+vT2wLZmo4YZUizrlJwSVCNKo2LS4IQp6ZlF1D9DclflIzKk/cj/z cQmktd0SGoEa99iJwuUb+WRMpjzL7uscfj/4t2f9BMQcBTsZ5HuGHxFPPIApFsR9bMss hsOA4thcxHQpsA7CdKGnBv2lBGjIt+ZIo5fZZaqBHGMnsL+/f/XVwK73HqlO0rz9SwAz kwCQ== 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:in-reply-to :references; bh=sq3hWyzbFGmmSvZUk9cWp6GtT6QYQPlfFJ2I/Ud6jkA=; b=GOzL3GoHmS7btF4Xs0TYo8qTtLyJ41Q9lQWem5xf32m+25bf7KC+kiBmH/SBSChTEF 9OjAT+WzYHDV0kZAAGuXg1OzQwX2dXTUY/QmghuMJ0y+k/rEq3ylnaZYwhPtxAwylhW+ A+f7AlDMCDOeVzpVMjwYkkxsLOrWJaBq5fKVO0p0Qw1eYwLQ2jLsdDSrqVjyJV0cmYmK B/TohUVf+G+/tlHt9msSxlIJ38GYoP2wjyhm7T64R0Fx9+f1xOvKuzIrefTo5nTOg0r2 sB2pIlw7AjFcGbTgrqIsOFe5dv1HIXmaaO6jlUI/Or6WsQbDRxXnAKt2iTIa6oStK147 wYlQ== X-Gm-Message-State: APjAAAUrzJtThQEQnm7dldq58yQJ5ii0StIJdc0yGIQZI8cxgX0ijDEL GKOa/e8Z+ILcnCuKE+klwsRBenSj X-Google-Smtp-Source: APXvYqxcHgIwRVGvO9cYehBM146BRbXwE+U3kXzD1+1lW9/rmeDQvc7bvSELTg2R2vcQEV5orAKU9w== X-Received: by 2002:a63:2045:: with SMTP id r5mr66040914pgm.394.1555476251902; Tue, 16 Apr 2019 21:44:11 -0700 (PDT) Received: from localhost.localdomain ([47.90.47.25]) by smtp.gmail.com with ESMTPSA id d69sm41541914pfg.24.2019.04.16.21.44.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 21:44:11 -0700 (PDT) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Wed, 17 Apr 2019 12:44:03 +0800 Message-Id: <1555476243-14424-2-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1555476243-14424-1-git-send-email-mypopydev@gmail.com> References: <1555476243-14424-1-git-send-email-mypopydev@gmail.com> Subject: [FFmpeg-devel] [PATCH V2] 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..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