From patchwork Fri Apr 19 23:41:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 12827 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 A7FFF4494CF for ; Sat, 20 Apr 2019 02:50:33 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 92B0D68AB2E; Sat, 20 Apr 2019 02:50:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id ED17268AA9B for ; Sat, 20 Apr 2019 02:50:23 +0300 (EEST) Received: by mail-wm1-f66.google.com with SMTP id o25so7615858wmf.5 for ; Fri, 19 Apr 2019 16:50:23 -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 :mime-version:content-transfer-encoding; bh=3wM3t/ncH5Xu/bzEwi0cRIxbBU/x2+4WwsQfeI2vjSw=; b=ifgSqCamGtsv9oLZPXrHpPRY8DbMsunEomGw8lug6+TomcAJGZCwSKELwNw1eN2Iak kZn7g1gLh/3UG31fp3A5gY39njMZoHWdVba99Lk2EmXMU0TguEtNxZMdsiX49FZPSdsS gxLRCE9xVkXHwWRXN7B88AmKW5C1RltmMT9HQgvJj9h7cqEHBiqe8N+BBNQ4Hl+n3Dwr aq8hqLhKkdCVxHoH5loBWC8/EkAJTQSTeXSBe5Aquit/vQN0pEyNX6AeSThXG0QpZ1t2 R0al9koTiWDUFYS6ZA3cYuIcNrP1aoKm9CNEB9xhWacz+doTsM9yAaxTOK0dhARc8o19 ZfFg== 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:mime-version:content-transfer-encoding; bh=3wM3t/ncH5Xu/bzEwi0cRIxbBU/x2+4WwsQfeI2vjSw=; b=qIO3DpXjoyZZBy78BrU1P0eyIw5NjaixEZVttaW2qI2+l3caG/5FL0QYrXTfnwnhOO vDKGi/Yg5ctKYmQueKpNeEuqUgGCXEQdpUx/u7PJUB2u42kZ78Ijg2aZs87rwQ6gMHvD c/y4FDMSo3nZDtABe7bijHw8kotvPdYhdQiHVVUyllXXV7Sl5eP+T4ymS8LC/whTkkWF 9q3ENwk/OfRGUUvh/2v0lyUtzqrMWjV90Smu4Pv/2lgBf7EVSVaC867HdgEQQg5sJ1a8 yw0/j4KnY6f2y61G4EICi4AK1g9wA0k0XP8SNpmm6la1DvnMVYpVsG/rKE3e0SeCoYQc yJXQ== X-Gm-Message-State: APjAAAUt9rWr0X62itmUyOeilwUyE88YyvLbOhaHdv3XCl4jnCqiS0CM ciC1EjhUD8bvm6IItnUpcSaQ4x7z X-Google-Smtp-Source: APXvYqy96tOLwV1n2edxelfJmaIvDYcyuklpp6O/RBnghu7syyIFrPCqg2WdNKntX9leRCf8GoZm7g== X-Received: by 2002:a7b:c848:: with SMTP id c8mr4161546wml.110.1555717823322; Fri, 19 Apr 2019 16:50:23 -0700 (PDT) Received: from localhost.localdomain (ipbcc08c44.dynamic.kabel-deutschland.de. [188.192.140.68]) by smtp.gmail.com with ESMTPSA id t14sm6002395wmi.16.2019.04.19.16.50.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Apr 2019 16:50:22 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 20 Apr 2019 01:41:01 +0200 Message-Id: <20190419234110.32980-6-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190419234110.32980-1-andreas.rheinhardt@gmail.com> References: <20190402133305.3328-1-andreas.rheinhardt@googlemail.com> <20190419234110.32980-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 06/15] avformat/matroskaenc: Simplify check for writing CRCs 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Up until now, the check for whether to write CRC32 elements was always mkv->write_crc && mkv->mode != MODE_WEBM. This is equivalent to simply set write_crc to zero in WebM-mode. And this is what this commit does. Signed-off-by: Andreas Rheinhardt --- libavformat/matroskaenc.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 75863659bc..e62346963e 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -341,7 +341,7 @@ static int start_ebml_master_crc32(AVIOContext *pb, AVIOContext **dyn_cp, Matros if (pb->seekable & AVIO_SEEKABLE_NORMAL) { *master = start_ebml_master(pb, elementid, expectedsize); - if (mkv->write_crc && mkv->mode != MODE_WEBM) + if (mkv->write_crc) put_ebml_void(*dyn_cp, 6); /* Reserve space for CRC32 so position/size calculations using avio_tell() take it into account */ } else *master = start_ebml_master(*dyn_cp, elementid, expectedsize); @@ -357,7 +357,7 @@ static void end_ebml_master_crc32(AVIOContext *pb, AVIOContext **dyn_cp, Matrosk if (pb->seekable & AVIO_SEEKABLE_NORMAL) { size = avio_close_dyn_buf(*dyn_cp, &buf); - if (mkv->write_crc && mkv->mode != MODE_WEBM) { + if (mkv->write_crc) { skip = 6; /* Skip reserved 6-byte long void element from the dynamic buffer. */ AV_WL32(crc, av_crc(av_crc_get_table(AV_CRC_32_IEEE_LE), UINT32_MAX, buf + skip, size - skip) ^ UINT32_MAX); put_ebml_binary(pb, EBML_ID_CRC32, crc, sizeof(crc)); @@ -1867,9 +1867,10 @@ static int mkv_write_header(AVFormatContext *s) int ret, i, version = 2; int64_t creation_time; - if (!strcmp(s->oformat->name, "webm")) - mkv->mode = MODE_WEBM; - else + if (!strcmp(s->oformat->name, "webm")) { + mkv->mode = MODE_WEBM; + mkv->write_crc = 0; + } else mkv->mode = MODE_MATROSKAv2; if (mkv->mode != MODE_WEBM ||