From patchwork Tue Sep 6 22:13:52 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodger Combs X-Patchwork-Id: 455 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.134 with SMTP id o128csp4853vsd; Tue, 6 Sep 2016 15:14:14 -0700 (PDT) X-Received: by 10.194.51.70 with SMTP id i6mr3762867wjo.124.1473200053393; Tue, 06 Sep 2016 15:14:13 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id v125si987988wmd.15.2016.09.06.15.14.11; Tue, 06 Sep 2016 15:14:13 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 87DF368A000; Wed, 7 Sep 2016 01:14:00 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi0-f65.google.com (mail-oi0-f65.google.com [209.85.218.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 355F6689D3A for ; Wed, 7 Sep 2016 01:13:54 +0300 (EEST) Received: by mail-oi0-f65.google.com with SMTP id u131so8362377oif.3 for ; Tue, 06 Sep 2016 15:14:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:in-reply-to:references; bh=r2YXw0ik5pv16H1kAV82jh5KO9DiLKYcnbHtVbzYot0=; b=JpKqwknepogUb7Xk+nF/7uiZoZQeghIYJgDYbIW2hY3A48Sbm/H5DtPYgeqiEXD6/C F9BAJrdQVj4ATisqFEfzTIfTvZEJDtefVbg3PUEdezxvpFlAXRtn/HC+JotLdtxCrQq3 vNV/vFTcw1eQqPWJ6WvdoKybBLKUplWtT6Ca9dK4/37k/I44xsroLXYFh8MqLqWBFNAt BnNlNJCWujEfgK4c2AoQHiKVBVcu2BwhabZ/T3AvgnFEqHUb5UGYSSNQHXpETRQb0qg8 Byb/BWQNzV68o7744un53zfR/gs0ajHGPkLmoD8tRKLHfnkHSmmim6VFo8HdUMcTxRp1 GcSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=r2YXw0ik5pv16H1kAV82jh5KO9DiLKYcnbHtVbzYot0=; b=iHD+iMMghHS22BoUp8xSPLAVEu7bUe1OKR3z7JuP+ThwtXnNmuH0xgdm4jaaTg1JyM qL00ZepPgsDSpbxS1Qs4fInn+ciJg2dQnq4z2dCQo9xmy93CDyx5oJOHeoC4DJUvvTMC 7Em3ECwhww+pVoLEyDxNb+Om6QUzojPnHN8VStndUPI+9j7wkRXeSaKmey3FN6QCK3OR co7AhZhtFgtAvR7QdEirXFXpAMVUMNWfh20owBTpIge7LRwxF9qUwYh/eWlL8Lxpai/x QA8FzQ1Fv3fNdGxBldJJZ98W9CJsCmiQFs3zbP3m/oYC6BxH3wnkUT08iNIL4MX8Km99 rUVg== X-Gm-Message-State: AE9vXwNF0uRQMuk6VlVm9Q1C/InBbvXn5Z9D3RD5w7d/29WG/i+2Mi+lzNMmlJNG8X1cFg== X-Received: by 10.36.150.70 with SMTP id z67mr1522154itd.80.1473200041995; Tue, 06 Sep 2016 15:14:01 -0700 (PDT) Received: from Rodgers-MacBook-Pro.local.net (c-73-209-137-129.hsd1.il.comcast.net. [73.209.137.129]) by smtp.gmail.com with ESMTPSA id u75sm657828ita.16.2016.09.06.15.14.00 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 06 Sep 2016 15:14:01 -0700 (PDT) From: Rodger Combs To: ffmpeg-devel@ffmpeg.org Date: Tue, 6 Sep 2016 17:13:52 -0500 Message-Id: <20160906221352.32102-1-rodger.combs@gmail.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20160906212514.GT4692@nb4> References: <20160906212514.GT4692@nb4> Subject: [FFmpeg-devel] [PATCH] lavf/matroskaenc: use mkv_check_tag_name consistently 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Previously, we used a different list of checks when deciding whether to write a set of tags at all than we did when deciding whether to write an individual tag in the set. This resulted in sometimes writing an empty tag master and seekhead. Now we use mkv_check_tag_name everywhere, so if a dictionary is entirely composed of tags we skip, we don't write a tag master at all. This affected the test file, since "language" was on one list but not the other, so we were writing an empty tag master there. The test hash is updated to reflect that change. --- libavformat/matroskaenc.c | 10 +++++----- tests/fate/matroska.mak | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 7deccaa..3eeb09b 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -1342,12 +1342,12 @@ static int mkv_write_tag(AVFormatContext *s, AVDictionary *m, unsigned int eleme return 0; } -static int mkv_check_tag(AVDictionary *m) +static int mkv_check_tag(AVDictionary *m, unsigned int elementid) { AVDictionaryEntry *t = NULL; while ((t = av_dict_get(m, "", t, AV_DICT_IGNORE_SUFFIX))) - if (av_strcasecmp(t->key, "title") && av_strcasecmp(t->key, "stereo_mode")) + if (mkv_check_tag_name(t->key, elementid)) return 1; return 0; @@ -1361,7 +1361,7 @@ static int mkv_write_tags(AVFormatContext *s) ff_metadata_conv_ctx(s, ff_mkv_metadata_conv, NULL); - if (mkv_check_tag(s->metadata)) { + if (mkv_check_tag(s->metadata, 0)) { ret = mkv_write_tag(s, s->metadata, 0, 0, &tags); if (ret < 0) return ret; } @@ -1369,7 +1369,7 @@ static int mkv_write_tags(AVFormatContext *s) for (i = 0; i < s->nb_streams; i++) { AVStream *st = s->streams[i]; - if (!mkv_check_tag(st->metadata)) + if (!mkv_check_tag(st->metadata, MATROSKA_ID_TAGTARGETS_TRACKUID)) continue; ret = mkv_write_tag(s, st->metadata, MATROSKA_ID_TAGTARGETS_TRACKUID, i + 1, &tags); @@ -1398,7 +1398,7 @@ static int mkv_write_tags(AVFormatContext *s) for (i = 0; i < s->nb_chapters; i++) { AVChapter *ch = s->chapters[i]; - if (!mkv_check_tag(ch->metadata)) + if (!mkv_check_tag(ch->metadata, MATROSKA_ID_TAGTARGETS_CHAPTERUID)) continue; ret = mkv_write_tag(s, ch->metadata, MATROSKA_ID_TAGTARGETS_CHAPTERUID, ch->id + mkv->chapter_id_offset, &tags); diff --git a/tests/fate/matroska.mak b/tests/fate/matroska.mak index 8cf1734..8e4a1e8 100644 --- a/tests/fate/matroska.mak +++ b/tests/fate/matroska.mak @@ -4,6 +4,6 @@ FATE_MATROSKA-$(call DEMMUX, MATROSKA, MATROSKA) += fate-matroska-remux fate-matroska-remux: CMD = md5 -i $(TARGET_SAMPLES)/vp9-test-vectors/vp90-2-2pass-akiyo.webm -color_trc 4 -c:v copy -fflags +bitexact -strict -2 -f matroska fate-matroska-remux: CMP = oneline -fate-matroska-remux: REF = 5ebcfaa8e3d534f8a800a58fd2b0aca6 +fate-matroska-remux: REF = f08b20b90f158a4de5a02a52c25596b9 FATE_SAMPLES_AVCONV += $(FATE_MATROSKA-yes)