From patchwork Fri Mar 24 15:52:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 40801 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp721607pzb; Fri, 24 Mar 2023 08:52:47 -0700 (PDT) X-Google-Smtp-Source: AKy350b/86piQ6FhYpRM1uQYQIv/W/hKkEfqYt8/CFlOfPDiZ4+aqQqLlPKmPNapirGI4K2qM4jt X-Received: by 2002:a05:6402:524e:b0:502:465:28e0 with SMTP id t14-20020a056402524e00b00502046528e0mr3685319edd.0.1679673167040; Fri, 24 Mar 2023 08:52:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679673167; cv=none; d=google.com; s=arc-20160816; b=oQ+8KzlKjyggAHuIglW14Jla0yzb7K/0ijuUo5OapjvCACRRE1bHIf2xOVgMwB9/m1 CkRTKp/IUWbbbzgGsYsb08rckc/PlZVy+0w25B7JP2fZznoDfbzuPHOaz8Wwqzl+WClA l+1vZzyjB1ZKOgc9Yy7r6kpIuCg9JGmL+2SKn8iUEtB4xIwEyqTmD3GREUX+VPphPKVT 2h8LCDhbeCs8bZWYXoXpOpLrQ/UJjFQfoe8x4ELBLviT4esWpboMPXeU22jlBMpYgLxZ xHGawSjmmS3iMgenII7Xof8wkxXSP/vGolfYtghlloHA5OytZI+hWst8B1Q1yAH92Zy3 OseQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=8qgtNWJHe+Mp22k9RrhCzKROHKpjmKfo8qS5BrNRx+o=; b=kq5Pw/itpQo8g+YQWfI2XHo0ef+BEtCTgjToqbjgl94oraLv6iwWp8q0EsM+WeAxof W9YyPJsxwITqcPm0ADxWVRR1a3boKOm8wn5omRfsSVpAefRx1p4zag8uJl+o7jqbsOCG qVTZ1ImK3r2s6LNfYfCsrrNKueVf+FGjieLS9zM0Ld7dUVpcM8RxO+S562dY6mBI8/VJ fTqUV6BbfuvaX6qATUaSw2ohj9QiKk0nz2g6pFA2Klq20WpDjjmefq2T5yBSGlEugZWP ZKGW1F0Fy2h44sOwZEEYDGzqKx/T5aPYCXo67IDDDqKegXG/1fc+NUEvR7idh2iQlym0 3POQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=j3byTVes; 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 sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id q1-20020aa7cc01000000b0050212939157si3786023edt.654.2023.03.24.08.52.46; Fri, 24 Mar 2023 08:52:47 -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 header.s=20210112 header.b=j3byTVes; 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 sp=QUARANTINE 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 D9E3268C836; Fri, 24 Mar 2023 17:52:43 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oa1-f48.google.com (mail-oa1-f48.google.com [209.85.160.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 05C2168A1BA for ; Fri, 24 Mar 2023 17:52:38 +0200 (EET) Received: by mail-oa1-f48.google.com with SMTP id 586e51a60fabf-17ebba88c60so2159791fac.3 for ; Fri, 24 Mar 2023 08:52:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679673156; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=AAW0PwIUl8A4jNGEgJCE5xhV0y9xLkuG4hIBVqW/bw0=; b=j3byTVes+gXV+nrQkibRn6mKNjJ4ZMhH9Cuy6r1OiuXK4p5sSK8O7hXD8fcNrBzuPr NdsaxRUZtfGa5eRQoBhcj6AiY61mwVdqud3cxa/i28hH2wp0sphBY88l8chgiXk4/26e m6GVyeLkpheNyZ4GQHgdkZoHPBSneeLEuC+Juzdl7F/gBzwtGk29XYlvmO2xdUHrgqV3 HI0PLKEXWgDUSjSeFjMQhwCy/eWzeJMQYjrXRvqBnjOCaLxfwLC3Qq7BOTYn15Mo3USj OoBeN3k9P0ZGHTKP5UFDZ93qNzkUBywbfEA/vp1G1YRdsNZ/JSceuDcjlrd5BRYULijK Z8SQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679673156; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=AAW0PwIUl8A4jNGEgJCE5xhV0y9xLkuG4hIBVqW/bw0=; b=FpoN3lnP/pKtkVnXwFJwVk641oFvGH55eLJKtCQhrFnlCFF315H6uvw0iqu/0HMRmg srDWYf5lAOw7PozqyD9Dcfoet8z7Si4dbSh6w+RmDjwDDSaXJAvQ8lu2plPyxDTgpsaS tFQfrJeu4T2hrizpBnvuj8uGqGWRNUO3uldN/RKnrMAw2IVRANRXv+hTOprTFZ1zbhpq pCf7trStkUEKznzGDmTsE6lae+e9zEFQwoALTwEMjEvNWSVEwiHX/gIt7CaaJeeNnUfq zf+QPH0xCN6Ixpu/iQ06pJZj1GHwc4nysEdPgSWR4EffLdw7Alxnl8EgFCjNPdTk9qwf jxdw== X-Gm-Message-State: AAQBX9cUKdLKPZsSEhxkiRig1Mr0+BtnJZqfXFKXKLJX42JsGLYiSTId 32Q7UqLRwSVpRxz09NlFbY2Dc7IU1c0= X-Received: by 2002:a05:6870:89a3:b0:17e:da36:665a with SMTP id f35-20020a05687089a300b0017eda36665amr1356182oaq.8.1679673155965; Fri, 24 Mar 2023 08:52:35 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id yx24-20020a056871251800b0017eb6cc4609sm1475940oab.39.2023.03.24.08.52.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Mar 2023 08:52:35 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 24 Mar 2023 12:52:07 -0300 Message-Id: <20230324155213.3493-1-jamrial@gmail.com> X-Mailer: git-send-email 2.40.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 1/7] avformat/matroskadec: support parsing more than one BlockMore element X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: RSvUI+kcmXUO Signed-off-by: James Almer --- No changes since v1. libavformat/matroskadec.c | 60 ++++++++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 3a888e3ada..60f9a78fe8 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -349,13 +349,17 @@ typedef struct MatroskaLevel { uint64_t length; } MatroskaLevel; +typedef struct MatroskaBlockMore { + uint64_t additional_id; + EbmlBin additional; +} MatroskaBlockMore; + typedef struct MatroskaBlock { uint64_t duration; CountedElement reference; uint64_t non_simple; EbmlBin bin; - uint64_t additional_id; - EbmlBin additional; + EbmlList blockmore; int64_t discard_padding; } MatroskaBlock; @@ -759,13 +763,13 @@ static EbmlSyntax matroska_segments[] = { }; static EbmlSyntax matroska_blockmore[] = { - { MATROSKA_ID_BLOCKADDID, EBML_UINT, 0, 0, offsetof(MatroskaBlock,additional_id), { .u = 1 } }, - { MATROSKA_ID_BLOCKADDITIONAL, EBML_BIN, 0, 0, offsetof(MatroskaBlock,additional) }, + { MATROSKA_ID_BLOCKADDID, EBML_UINT, 0, 0, offsetof(MatroskaBlockMore,additional_id), { .u = 1 } }, + { MATROSKA_ID_BLOCKADDITIONAL, EBML_BIN, 0, 0, offsetof(MatroskaBlockMore,additional) }, CHILD_OF(matroska_blockadditions) }; static EbmlSyntax matroska_blockadditions[] = { - { MATROSKA_ID_BLOCKMORE, EBML_NEST, 0, 0, 0, {.n = matroska_blockmore} }, + { MATROSKA_ID_BLOCKMORE, EBML_NEST, 0, sizeof(MatroskaBlockMore), offsetof(MatroskaBlock, blockmore), { .n = matroska_blockmore } }, CHILD_OF(matroska_blockgroup) }; @@ -3610,12 +3614,28 @@ static int matroska_parse_webvtt(MatroskaDemuxContext *matroska, return 0; } +static int matroska_parse_block_additional(MatroskaDemuxContext *matroska, + AVPacket *pkt, + const uint8_t *data, int size, uint64_t id) +{ + uint8_t *side_data = av_packet_new_side_data(pkt, + AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, + size + 8); + if (!side_data) + return AVERROR(ENOMEM); + + AV_WB64(side_data, id); + memcpy(side_data + 8, data, size); + + return 0; +} + static int matroska_parse_frame(MatroskaDemuxContext *matroska, MatroskaTrack *track, AVStream *st, AVBufferRef *buf, uint8_t *data, int pkt_size, uint64_t timecode, uint64_t lace_duration, int64_t pos, int is_keyframe, - uint8_t *additional, uint64_t additional_id, int additional_size, + MatroskaBlockMore *blockmore, int nb_blockmore, int64_t discard_padding) { uint8_t *pkt_data = data; @@ -3647,7 +3667,7 @@ static int matroska_parse_frame(MatroskaDemuxContext *matroska, buf = NULL; } - if (!pkt_size && !additional_size) + if (!pkt_size && !nb_blockmore) goto no_output; if (!buf) @@ -3666,16 +3686,18 @@ static int matroska_parse_frame(MatroskaDemuxContext *matroska, pkt->flags = is_keyframe; pkt->stream_index = st->index; - if (additional_size > 0) { - uint8_t *side_data = av_packet_new_side_data(pkt, - AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, - additional_size + 8); - if (!side_data) { + for (int i = 0; i < nb_blockmore; i++) { + MatroskaBlockMore *more = &blockmore[i]; + + if (!more->additional.size) + continue; + + res = matroska_parse_block_additional(matroska, pkt, more->additional.data, + more->additional.size, more->additional_id); + if (res < 0) { av_packet_unref(pkt); return AVERROR(ENOMEM); } - AV_WB64(side_data, additional_id); - memcpy(side_data + 8, additional, additional_size); } if (discard_padding) { @@ -3721,7 +3743,7 @@ fail: static int matroska_parse_block(MatroskaDemuxContext *matroska, AVBufferRef *buf, uint8_t *data, int size, int64_t pos, uint64_t cluster_time, uint64_t block_duration, int is_keyframe, - uint8_t *additional, uint64_t additional_id, int additional_size, + MatroskaBlockMore *blockmore, int nb_blockmore, int64_t cluster_pos, int64_t discard_padding) { uint64_t timecode = AV_NOPTS_VALUE; @@ -3856,7 +3878,7 @@ static int matroska_parse_block(MatroskaDemuxContext *matroska, AVBufferRef *buf res = matroska_parse_frame(matroska, track, st, buf, out_data, out_size, timecode, lace_duration, pos, !n ? is_keyframe : 0, - additional, additional_id, additional_size, + blockmore, nb_blockmore, discard_padding); if (res) return res; @@ -3897,14 +3919,12 @@ static int matroska_parse_cluster(MatroskaDemuxContext *matroska) if (res >= 0 && block->bin.size > 0) { int is_keyframe = block->non_simple ? block->reference.count == 0 : -1; - uint8_t* additional = block->additional.size > 0 ? - block->additional.data : NULL; res = matroska_parse_block(matroska, block->bin.buf, block->bin.data, block->bin.size, block->bin.pos, cluster->timecode, block->duration, - is_keyframe, additional, block->additional_id, - block->additional.size, cluster->pos, + is_keyframe, block->blockmore.elem, + block->blockmore.nb_elem, cluster->pos, block->discard_padding); } From patchwork Fri Mar 24 15:52:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 40802 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp721693pzb; Fri, 24 Mar 2023 08:52:55 -0700 (PDT) X-Google-Smtp-Source: AKy350byWgA1rKjRIEqjkMPogmArb37FLYgx6bdKRsa+88yJFkOtK7X+OtXvVUrDSzg9uH/NM9QH X-Received: by 2002:a17:906:d966:b0:8b0:f58d:2da9 with SMTP id rp6-20020a170906d96600b008b0f58d2da9mr3162956ejb.64.1679673175730; Fri, 24 Mar 2023 08:52:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679673175; cv=none; d=google.com; s=arc-20160816; b=JElirha2I5eiqP3baAkdiK2bS2mXnPwiEdS7UObnUPDJRP3X+N+g0DYkRq7hnguoBa 0a0qJGBN2+fxZ0MUw4nnF/EYtlsVGv781HZM3i+xfhBzDN717Z/0XX+9zVUI/dJjPvNn MYeGwsTDkKZ9TEvzj6NFlr4/0Q5Z5T65ox7P8U/nw54ky7GhB6DCUvICFHJEK9vhC3Ai v2HIfSHFPvTZeh7okBY4yYMUwiDUnmo52hmFaaMuVGSwDPjlxUOGfL2Vplm9yQqrSV0S +QR5dU4FCFRxniVUPjebjzHEredwHoH+MAey6ookPIHLCDM6QnKjTIJwgo7Ab5oqDme9 yWdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=0PfMIYbbVLYnT1UaNz6FQ7Nq0Lr1W5m0tyJ1QE0l0RE=; b=Htcj80XZ66P97KYTUzqTj0mTSBMBvBSUm2Vj9UHmN6nB2aCnJwL8PV/x6EnbOgY19M 8780vGILzzZTCqJVFYmjsFyvVXYRiH9B9BTJ+vDTPyOOX5Gq0dfIIvIDFE/rXkUPz8p9 Sa6aNWZh/O/7Al+E1rJ5cZ0uy2BZPSCCFaSFsskAtaQ14DRsL1rFsbGrYvXUL3zdwKUZ AKqWUlmX6B4Nb7Y8h86YIFERUX9fuDaW1bf1A4FgVXibbHDnXSNPDo5iuENk9jV6/fiQ +pYTmEjg9WgvqOd5JsuOZRHwiLDGIhEvkQZEdW52YVeSNTX2DCMrcz8rcy72X5yKyG48 Z87w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=pPWiSqWG; 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 sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o6-20020a17090611c600b008c7986cbd76si19178617eja.745.2023.03.24.08.52.54; Fri, 24 Mar 2023 08:52:55 -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 header.s=20210112 header.b=pPWiSqWG; 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 sp=QUARANTINE 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 1CF3968C849; Fri, 24 Mar 2023 17:52:45 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oa1-f47.google.com (mail-oa1-f47.google.com [209.85.160.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DF24C68C841 for ; Fri, 24 Mar 2023 17:52:38 +0200 (EET) Received: by mail-oa1-f47.google.com with SMTP id 586e51a60fabf-17ab3a48158so2175066fac.1 for ; Fri, 24 Mar 2023 08:52:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679673157; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=T4/BES9eIUTJLP3oS/xMDY0p6DW+d6iJub22aeaKB28=; b=pPWiSqWGC1GLWbnuCjj6821lQbIb5Q1Lj3eARtAePbkGiHrt7RrSUP4a+2OSzrXXoz bYGM4+8Ijesa8ezyVZo4a6zLomVCqGCqfPi6BKe7gVm0Pu/ItgZl9pzlhveE4IQpPamH U8kYYJ6XPGFa+yjboMpBEV5OrJGLAowiU96LizEuAeoy1dF80QoRwKZOwl22fScO17m6 ux4esYmoGZDh1Z8vEhxKF+E5kEPYjPe1L1pJuRQmQhi1SRpsaWKujOG4/1dcdDKdoebi irWlNzNQS/QbSV5lXeTH7p5W7kq1aSU61OdIYK767shzDDK9T8YwGc7qTdRvu0p5IJiC nk+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679673157; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=T4/BES9eIUTJLP3oS/xMDY0p6DW+d6iJub22aeaKB28=; b=PTB5N5X/74wFpV6cBV0m9hDIqf0x3BaMUFXS4ZsFnJx9AT7EYg7XQKULxJxpSUaWYK nuQ9i0T8Gapea2QtXhiGmCQphMuzrq186I+FJFfZc/wOu9j3OC5x+fu1C/S9v2RMdh9W t28Hf+BWYnSQ4E8hxVyZFaiV8ozTcVtmhhANENgMyTAf23rTkClBEu/AK5r3DQNuGotD rnDrHf8uI9IEJV9fHVDo09KybE9Pz2NT12qvX2jGlmhnnRc7WsVALDYEiDfIqaDoNScx 8/RkxQLd/Ai+HQBQevrWEOErH61TcEmMdD+WX5CcMsgdEYeTkxB+W1txM93tu9kCxIAN +gJQ== X-Gm-Message-State: AAQBX9ew/8Totr39G4x/eKQusfdYL/Pz+ikprF7K/f3GMe5wCq/HLm0D Arv/BdNrJ/aBhXXc7P4zAifSMpKNwe0= X-Received: by 2002:a05:6871:9e:b0:17e:7512:5c89 with SMTP id u30-20020a056871009e00b0017e75125c89mr2746911oaa.1.1679673157341; Fri, 24 Mar 2023 08:52:37 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id yx24-20020a056871251800b0017eb6cc4609sm1475940oab.39.2023.03.24.08.52.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Mar 2023 08:52:37 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 24 Mar 2023 12:52:08 -0300 Message-Id: <20230324155213.3493-2-jamrial@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230324155213.3493-1-jamrial@gmail.com> References: <20230324155213.3493-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 2/7] avformat/matroskadec: set the default value for BlockAddIDType X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 6xSgbbjGJZdp Signed-off-by: James Almer --- libavformat/matroska.h | 4 ++++ libavformat/matroskadec.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libavformat/matroska.h b/libavformat/matroska.h index 45077ed33f..de63cdc7ae 100644 --- a/libavformat/matroska.h +++ b/libavformat/matroska.h @@ -358,6 +358,10 @@ typedef enum { MATROSKA_VIDEO_PROJECTION_TYPE_MESH = 3, } MatroskaVideoProjectionType; +typedef enum { + MATROSKA_BLOCK_ADD_ID_TYPE_DEFAULT = 0, +} MatroskaBlockAddIDType; + /* * Matroska Codec IDs, strings */ diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 60f9a78fe8..9581b19204 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -591,7 +591,7 @@ static EbmlSyntax matroska_track_operation[] = { static EbmlSyntax matroska_block_addition_mapping[] = { { MATROSKA_ID_BLKADDIDVALUE, EBML_UINT, 0, 0, offsetof(MatroskaBlockAdditionMapping, value) }, { MATROSKA_ID_BLKADDIDNAME, EBML_STR, 0, 0, offsetof(MatroskaBlockAdditionMapping, name) }, - { MATROSKA_ID_BLKADDIDTYPE, EBML_UINT, 0, 0, offsetof(MatroskaBlockAdditionMapping, type) }, + { MATROSKA_ID_BLKADDIDTYPE, EBML_UINT, 0, 0, offsetof(MatroskaBlockAdditionMapping, type), { .u = MATROSKA_BLOCK_ADD_ID_TYPE_DEFAULT } }, { MATROSKA_ID_BLKADDIDEXTRADATA, EBML_BIN, 0, 0, offsetof(MatroskaBlockAdditionMapping, extradata) }, CHILD_OF(matroska_track) }; From patchwork Fri Mar 24 15:52:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 40803 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp721779pzb; Fri, 24 Mar 2023 08:53:03 -0700 (PDT) X-Google-Smtp-Source: AKy350asLJRgDEBoMadtXoycmY9vQXQ6nPOO0TEGeT/Xt5UiONXj1niYGsiXQjyiL0XuNugOdeWI X-Received: by 2002:a17:906:b159:b0:93d:b767:9fea with SMTP id bt25-20020a170906b15900b0093db7679feamr2716639ejb.31.1679673183427; Fri, 24 Mar 2023 08:53:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679673183; cv=none; d=google.com; s=arc-20160816; b=kUE9cuj8yOHCtnXFLLUWELSCufhOhFcaManQUV74F+mzcMi+yq5dsfOphnc5i/4T6e GJnwx03E5e7fgaTAbtAGz5w8ay5ahj8ylR6kXkEz1Zy2S0fKgMCTXupCnNHnBEesJ9PE 9ckbxeVLzLa15SYrEqA6rrT6Pc84O7/R2S61Zuy5xn3yGw+7IS0Vc6bcrwl8Z9YkZpq9 MzPMA1q8IT75KvmJY+ZNNM9kVCBnrekzOQF58tqyEtxChKjSuvOycTyec0WwSC5IM1tq byUSVluAn78ggYD75RjQ+pDt2WjX3DL9+AIY+fio6TVBg/si8kKXDVj6MqjLr3q7fNkh boxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=fU8AS5CQf2kSApt3Mu6E80xmOz33Zfl7eS+J9aK2CS8=; b=AGzgULXFpoEyunKLiSRPZnXgi6mrGCTtuueHS35tHW/+ts7kRjWfGpMW15wlCOxiOx LgN1oHQW5SuFrLME/mm3RfBH5pP0YjmkhIFFs1+59Hvjx7E3iQcZH+4ieejlN/l6Mokv OtB7sq0yOBD/5KqHlnuDR1dPIXqaQDeyj5I3Yw3Fq7oSPtwIpbJGWrKOlFH3tyl5beW2 MvG6yUYzXc+vaV9a7qIx8Mylm9/S9+gyUJWtfxL/IFupWdMPv36asWqj8KKc+n46Rm7b rzyx2g4FNhc1noXSAe+d9tDZGK1k/rYE5tJ4H9LRfAdRsEOUrCfnFzlsZh3sLmdrxXah DFwg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="A87j/e0c"; 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 sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id v23-20020aa7d817000000b0049f1fc7bdbcsi19064774edq.624.2023.03.24.08.53.02; Fri, 24 Mar 2023 08:53:03 -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 header.s=20210112 header.b="A87j/e0c"; 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 sp=QUARANTINE 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 4533B68C841; Fri, 24 Mar 2023 17:52:47 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oa1-f51.google.com (mail-oa1-f51.google.com [209.85.160.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2C02A68C84B for ; Fri, 24 Mar 2023 17:52:40 +0200 (EET) Received: by mail-oa1-f51.google.com with SMTP id 586e51a60fabf-17ab3a48158so2175126fac.1 for ; Fri, 24 Mar 2023 08:52:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679673158; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=bZnKQRFhI25gfJPGSs01aETjUX3azDnSK+ukZCEqzPc=; b=A87j/e0cWe6IkYtfL7at3RD/pTZf5VfJKJGMShO1DluGtDDwzpTwZco8abqmpP4z9G fQ0ZdiuWmkMts5MLt4iQbmoOBIAkWe6rdEmYfcODdylyAcx4T4x3W1X2DLc6AWR1Nol8 11yafCfF1L4rZ1RrdzIl4/onXGoKaEVsjWZ9p9+RLFPSkUQ6zK8+TeX3JA6xjldaIjK2 MF1ZU33SjGE9s1TkxF/8DLR32RCZznMN+LUNeTqFzL5cj7OgsIjH/1l/GIhLHqrbuaXv szj7rfnKrSdtBX7yfa9dvM9MKvTZLeeP7Cy0Gb3PsmUWgq1/kT3vVgTcosf7SSVjm8cO K65Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679673158; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bZnKQRFhI25gfJPGSs01aETjUX3azDnSK+ukZCEqzPc=; b=qu9OWqaqwA4acPRPpcFb8bgJzj5p2tngZWAYhzofXME7CTBWMhEI+06mCNcuHtLIVd h+alUS7kx9lX7ghKpfaLl3ncHg96GwNx/jVoxJb6KUXCYKHK0qEwskp1T37nQd42fqY3 cOhNjX6ck03z6BRBbQCK/c23+Vrjn1dqupOAznc1Cq3RYV+R97DybGAZWHZn2pGMl3/0 agoGxhnwq7KCHe1iGAzlV1v3Spqpb2+ZteNTVsqVqtCryB16QENg4hH8GkJzLutvYzhS oqarGf2XoW5IjcTYQwFvtJYyHtih1vKbZHUvfFfPTMijICWBy6PnWzGR2bU9yLSZ835i mydg== X-Gm-Message-State: AAQBX9cKo2+ochZhf/OmB/sPWJQzwpeyAp8Ixz5LMoi+eWhHtLdnFFvC HnLr/y+vt8iMtYOCntxVOAk9/FqggIo= X-Received: by 2002:a05:6870:818e:b0:17e:be6c:d338 with SMTP id k14-20020a056870818e00b0017ebe6cd338mr2308965oae.5.1679673158375; Fri, 24 Mar 2023 08:52:38 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id yx24-20020a056871251800b0017eb6cc4609sm1475940oab.39.2023.03.24.08.52.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Mar 2023 08:52:38 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 24 Mar 2023 12:52:09 -0300 Message-Id: <20230324155213.3493-3-jamrial@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230324155213.3493-1-jamrial@gmail.com> References: <20230324155213.3493-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 3/7] avformat/matroskadec: export Dynamic HDR10+ packet side data X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: hEziDNV9TplR Signed-off-by: James Almer --- libavformat/matroska.h | 3 ++ libavformat/matroskadec.c | 80 +++++++++++++++++++++++++++++++++++---- 2 files changed, 76 insertions(+), 7 deletions(-) diff --git a/libavformat/matroska.h b/libavformat/matroska.h index de63cdc7ae..b39517709c 100644 --- a/libavformat/matroska.h +++ b/libavformat/matroska.h @@ -360,8 +360,11 @@ typedef enum { typedef enum { MATROSKA_BLOCK_ADD_ID_TYPE_DEFAULT = 0, + MATROSKA_BLOCK_ADD_ID_TYPE_ITU_T_T35 = 4, } MatroskaBlockAddIDType; +#define MATROSKA_BLOCK_ADD_ID_ITU_T_T35 4 + /* * Matroska Codec IDs, strings */ diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 9581b19204..ad8b352f31 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -40,6 +40,7 @@ #include "libavutil/dict.h" #include "libavutil/dict_internal.h" #include "libavutil/display.h" +#include "libavutil/hdr_dynamic_metadata.h" #include "libavutil/intfloat.h" #include "libavutil/intreadwrite.h" #include "libavutil/lzo.h" @@ -284,6 +285,7 @@ typedef struct MatroskaTrack { int needs_decoding; uint64_t max_block_additional_id; EbmlList block_addition_mappings; + int blockaddid_itu_t_t35; uint32_t palette[AVPALETTE_COUNT]; int has_palette; @@ -423,6 +425,8 @@ typedef struct MatroskaDemuxContext { MatroskaCluster current_cluster; + int is_webm; + /* WebM DASH Manifest live flag */ int is_live; @@ -2378,7 +2382,7 @@ static int mkv_parse_dvcc_dvvc(AVFormatContext *s, AVStream *st, const MatroskaT return ff_isom_parse_dvcc_dvvc(s, st, bin->data, bin->size); } -static int mkv_parse_block_addition_mappings(AVFormatContext *s, AVStream *st, const MatroskaTrack *track) +static int mkv_parse_block_addition_mappings(AVFormatContext *s, AVStream *st, MatroskaTrack *track) { const EbmlList *mappings_list = &track->block_addition_mappings; MatroskaBlockAdditionMapping *mappings = mappings_list->elem; @@ -2388,6 +2392,18 @@ static int mkv_parse_block_addition_mappings(AVFormatContext *s, AVStream *st, c MatroskaBlockAdditionMapping *mapping = &mappings[i]; switch (mapping->type) { + case MATROSKA_BLOCK_ADD_ID_TYPE_ITU_T_T35: + if (mapping->value != MATROSKA_BLOCK_ADD_ID_ITU_T_T35) { + int strict = s->strict_std_compliance >= FF_COMPLIANCE_STRICT; + av_log(s, strict ? AV_LOG_ERROR : AV_LOG_WARNING, + "Invalid Block Addition Value 0x%"PRIx64" for Block Addition Mapping Type " + "\"ITU T.35 metadata\"\n", mapping->value); + if (!strict) + break; + return AVERROR_INVALIDDATA; + } + track->blockaddid_itu_t_t35 = 1; + break; case MKBETAG('d','v','c','C'): case MKBETAG('d','v','v','C'): if ((ret = mkv_parse_dvcc_dvvc(s, st, track, &mapping->extradata)) < 0) @@ -2814,10 +2830,12 @@ static int matroska_parse_tracks(AVFormatContext *s) AV_WL16(extradata, 0x410); } else if (codec_id == AV_CODEC_ID_PRORES && track->codec_priv.size == 4) { fourcc = AV_RL32(track->codec_priv.data); - } else if (codec_id == AV_CODEC_ID_VP9 && track->codec_priv.size) { + } else if (codec_id == AV_CODEC_ID_VP9) { /* we don't need any value stored in CodecPrivate. make sure that it's not exported as extradata. */ track->codec_priv.size = 0; + /* Assume BlockAddID 4 is ITU-T T.35 metadata if WebM */ + track->blockaddid_itu_t_t35 = matroska->is_webm; } else if (codec_id == AV_CODEC_ID_ARIB_CAPTION && track->codec_priv.size == 3) { int component_tag = track->codec_priv.data[0]; int data_component_id = AV_RB16(track->codec_priv.data + 1); @@ -3081,6 +3099,8 @@ static int matroska_read_header(AVFormatContext *s) return AVERROR_INVALIDDATA; } } + matroska->is_webm = !strcmp(ebml.doctype, "webm"); + ebml_free(ebml_syntax, &ebml); matroska->pkt = si->parse_pkt; @@ -3615,12 +3635,58 @@ static int matroska_parse_webvtt(MatroskaDemuxContext *matroska, } static int matroska_parse_block_additional(MatroskaDemuxContext *matroska, - AVPacket *pkt, + MatroskaTrack *track, AVPacket *pkt, const uint8_t *data, int size, uint64_t id) { - uint8_t *side_data = av_packet_new_side_data(pkt, - AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, - size + 8); + uint8_t *side_data; + int res; + + switch (id) { + case 4: { + GetByteContext bc; + int country_code, provider_code; + int provider_oriented_code, application_identifier; + size_t hdrplus_size; + AVDynamicHDRPlus *hdrplus; + + if (!track->blockaddid_itu_t_t35) + break; //ignore + + bytestream2_init(&bc, data, size); + + /* ITU-T T.35 metadata */ + country_code = bytestream2_get_byte(&bc); + provider_code = bytestream2_get_be16(&bc); + + if (country_code != 0xB5 || provider_code != 0x3C) + break; // ignore + + provider_oriented_code = bytestream2_get_be16(&bc); + application_identifier = bytestream2_get_byte(&bc); + + if (provider_oriented_code != 1 || application_identifier != 4) + break; // ignore + + hdrplus = av_dynamic_hdr_plus_alloc(&hdrplus_size); + if (!hdrplus) + return AVERROR(ENOMEM); + + if ((res = av_dynamic_hdr_plus_from_t35(hdrplus, bc.buffer, + bytestream2_get_bytes_left(&bc))) < 0 || + (res = av_packet_add_side_data(pkt, AV_PKT_DATA_DYNAMIC_HDR10_PLUS, + (uint8_t *)hdrplus, hdrplus_size)) < 0) { + av_free(hdrplus); + return res; + } + + return 0; + } + default: + break; + } + + side_data = av_packet_new_side_data(pkt, AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, + size + 8); if (!side_data) return AVERROR(ENOMEM); @@ -3692,7 +3758,7 @@ static int matroska_parse_frame(MatroskaDemuxContext *matroska, if (!more->additional.size) continue; - res = matroska_parse_block_additional(matroska, pkt, more->additional.data, + res = matroska_parse_block_additional(matroska, track, pkt, more->additional.data, more->additional.size, more->additional_id); if (res < 0) { av_packet_unref(pkt); From patchwork Fri Mar 24 15:52:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 40804 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp721842pzb; Fri, 24 Mar 2023 08:53:11 -0700 (PDT) X-Google-Smtp-Source: AKy350Zz7vPfE7yPoCk1u0mEqRJtBR9yaSb0FWXQg5boqnGOoJqrk+3BXvD7MjzPdxtnuNMhmaQI X-Received: by 2002:a17:906:1dca:b0:931:96c5:7646 with SMTP id v10-20020a1709061dca00b0093196c57646mr3055432ejh.57.1679673191507; Fri, 24 Mar 2023 08:53:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679673191; cv=none; d=google.com; s=arc-20160816; b=EKxs6QxuADkfLuoF4seRHT4KqIUOf2dGmfRqRX9qeI2y3QCtAp5EIxDdSYtDTGlgNs 5aBhEE3wQguVTDJgB1A2IC9UFoLPZunPcPniG6U4mihqcD16ePX5pOaITIICh1noIqvD 7uKz3OAAzIrsAanyjV0G/A5GnIooaRZNRo/WgRUUaP5zbgdjKx4FNTToUSnE8AWbxEol s8gArMJSxlaVge1mTLK+z+8s+zJ8Wa2lT94ryhdzmd9poanote+4RbfsyUjeLKYAfYFp OzS5WXh5DtIFrVeIl7EPJSSyqo61kwU82wWq0iXVtaUFIoqVGaixno+ID88dFDBDiBpC SPoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=F8czy6ffSQ7RHa5TC82I85YlOl2LCCT+zQXBU2dwz/4=; b=xz+DEgeP+gVzaveJWOlP9BMu3JV9H0Ig7lW76pvgEYYowxwnO7ZBqLljmSDj7nc6e0 bqseuvPS+Nd7ipN5AGle6ScNQVqxPB2GA3+WIbb1KMtsXmQSkV71HQYnRNnKAKt7P909 EhGSubMDu9ewVySw5E9RbwBtfY9tl0LalAPktmN5HNBkXqZ/HZMay8KOGyJxMp/qk0FW gYytN2JUleHzlSgcYuq4DZoMmEIsR6V/h1JwJDlmoOkZlZvct55TNOTiWbaURKKy82wu 1VtYv5Q8oXoqFrpHMEvEu63Wr5s49EJzx8pN5jwsYnbnblbBwAe8SuIhLa9CRCDuGQWY wwQw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=LQAfoYrn; 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 sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y8-20020a056402134800b005002c6f2f0asi21855947edw.124.2023.03.24.08.53.11; Fri, 24 Mar 2023 08:53:11 -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 header.s=20210112 header.b=LQAfoYrn; 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 sp=QUARANTINE 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 4A9DE68C85C; Fri, 24 Mar 2023 17:52:48 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oa1-f51.google.com (mail-oa1-f51.google.com [209.85.160.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5815B68C841 for ; Fri, 24 Mar 2023 17:52:41 +0200 (EET) Received: by mail-oa1-f51.google.com with SMTP id 586e51a60fabf-17aa62d0a4aso2153669fac.4 for ; Fri, 24 Mar 2023 08:52:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679673160; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=S+Wg2P0mqv1tI/cULEb3FZdvUlnuke1Ns3ZAPA+HQVY=; b=LQAfoYrnfN0IzR0oyqWLWgDp6qJKCPYJaBBjzLQArsUCejRhSrK4uCjmnnc1Hlbn4m TwIiCsHZgl5Kl3hcE9Dz9OkExDaAGCuIr6P3c/G+QEpUcf+kmq3qL86EJX5Rdk2L4Ntf o1EOkJGNBXdt3vh8HEOtOZrDjFc1Hx0tLTV7f9CX+tcUS4zLtpvwEvOALYarL9duKtmg xpKWWhlRuu4RmD1UvpU2nO5yF7dA8fTa5KJ42ScicSag+bzbTCrkxkz2Z/9+Ugpwrylw fJBgv6TeDCs9PsH1i8FkoFLI46cQQIyLiuBHCCMVvXm0bvRN/FxkLUTk74wpLexovZqh r3kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679673160; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=S+Wg2P0mqv1tI/cULEb3FZdvUlnuke1Ns3ZAPA+HQVY=; b=FZ/lRdyQHRgt+feLg8ZIv4gX3KdJILvc4d/sLZIOXVXj8NGGqyikh1Xr50IYG/WuuU LcjAhLyT16KO9s1+BDCyqTOWPZkw5GcEwQ0KtN8I2ha3y3/9gVs57wogEn9yJ16yl2bW L65hkzfeiUr0GHEgglnMBPfXIdBGgis6XNzg4GnaIsAyo9suFTQ/Dvmu4DC3RWNArhWD JPFeRwJ10gUTRuD5eOsGaUrLfqoSD/uTgTdUo+S+qKo6jRoY12APgR4eCGbNaCedPOQQ dD5l+bDSYCl5ukNiSkV/kW/V43eshARP8SXpKswCTpnCpzP105aZzPza58eRCyBcqBS/ oZKA== X-Gm-Message-State: AAQBX9dJoJ4KQCtN/ZUagV4ILSng9cziXF9GLtJecE/NPXoEADiz+fKk 5AOCpgwCwTq4yJ+QV7Rl8fpjIh8Y0ss= X-Received: by 2002:a05:6870:598:b0:177:9c93:efa4 with SMTP id m24-20020a056870059800b001779c93efa4mr2449106oap.0.1679673159708; Fri, 24 Mar 2023 08:52:39 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id yx24-20020a056871251800b0017eb6cc4609sm1475940oab.39.2023.03.24.08.52.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Mar 2023 08:52:39 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 24 Mar 2023 12:52:10 -0300 Message-Id: <20230324155213.3493-4-jamrial@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230324155213.3493-1-jamrial@gmail.com> References: <20230324155213.3493-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 4/7] avformat/matroska: add a few more Block Addition ID Type enum values X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: tvJh1tDdO3Wu Signed-off-by: James Almer --- libavformat/matroska.h | 4 ++++ libavformat/matroskadec.c | 6 +++--- libavformat/matroskaenc.c | 6 +++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/libavformat/matroska.h b/libavformat/matroska.h index b39517709c..3827675777 100644 --- a/libavformat/matroska.h +++ b/libavformat/matroska.h @@ -360,9 +360,13 @@ typedef enum { typedef enum { MATROSKA_BLOCK_ADD_ID_TYPE_DEFAULT = 0, + MATROSKA_BLOCK_ADD_ID_TYPE_OPAQUE_DATA = 1, MATROSKA_BLOCK_ADD_ID_TYPE_ITU_T_T35 = 4, + MATROSKA_BLOCK_ADD_ID_TYPE_DVCC = 0x64766343, + MATROSKA_BLOCK_ADD_ID_TYPE_DVVC = 0x64767643, } MatroskaBlockAddIDType; +#define MATROSKA_BLOCK_ADD_ID_OPAQUE_DATA 1 #define MATROSKA_BLOCK_ADD_ID_ITU_T_T35 4 /* diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index ad8b352f31..b18c9e31dc 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -767,7 +767,7 @@ static EbmlSyntax matroska_segments[] = { }; static EbmlSyntax matroska_blockmore[] = { - { MATROSKA_ID_BLOCKADDID, EBML_UINT, 0, 0, offsetof(MatroskaBlockMore,additional_id), { .u = 1 } }, + { MATROSKA_ID_BLOCKADDID, EBML_UINT, 0, 0, offsetof(MatroskaBlockMore,additional_id), { .u = MATROSKA_BLOCK_ADD_ID_OPAQUE_DATA } }, { MATROSKA_ID_BLOCKADDITIONAL, EBML_BIN, 0, 0, offsetof(MatroskaBlockMore,additional) }, CHILD_OF(matroska_blockadditions) }; @@ -2404,8 +2404,8 @@ static int mkv_parse_block_addition_mappings(AVFormatContext *s, AVStream *st, M } track->blockaddid_itu_t_t35 = 1; break; - case MKBETAG('d','v','c','C'): - case MKBETAG('d','v','v','C'): + case MATROSKA_BLOCK_ADD_ID_TYPE_DVCC: + case MATROSKA_BLOCK_ADD_ID_TYPE_DVVC: if ((ret = mkv_parse_dvcc_dvvc(s, st, track, &mapping->extradata)) < 0) return ret; diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 954b7d828f..c083f55319 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -1612,9 +1612,9 @@ static void mkv_write_dovi(AVFormatContext *s, AVIOContext *pb, AVStream *st) + (2 + 1 + 4) + (2 + 1 + ISOM_DVCC_DVVC_SIZE); if (dovi->dv_profile > 7) { - type = MKBETAG('d', 'v', 'v', 'C'); + type = MATROSKA_BLOCK_ADD_ID_TYPE_DVVC; } else { - type = MKBETAG('d', 'v', 'c', 'C'); + type = MATROSKA_BLOCK_ADD_ID_TYPE_DVCC; } ff_isom_put_dvcc_dvvc(s, buf, dovi); @@ -2657,7 +2657,7 @@ static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv, &side_data_size); if (side_data && side_data_size >= 8 && // Only the Codec-specific BlockMore (id == 1) is currently supported. - (additional_id = AV_RB64(side_data)) == 1) { + (additional_id = AV_RB64(side_data)) == MATROSKA_BLOCK_ADD_ID_TYPE_OPAQUE_DATA) { ebml_writer_open_master(&writer, MATROSKA_ID_BLOCKADDITIONS); ebml_writer_open_master(&writer, MATROSKA_ID_BLOCKMORE); /* Until dbc50f8a our demuxer used a wrong default value From patchwork Fri Mar 24 15:52:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 40805 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp721918pzb; Fri, 24 Mar 2023 08:53:20 -0700 (PDT) X-Google-Smtp-Source: AKy350b93swJefdztPyIfIQT0pQhr/SOeZCvYWiobjv2ZAvhFDr3aaXIueeizQeVFIaImPXAIS5C X-Received: by 2002:a17:906:10d2:b0:93e:22e6:e7d3 with SMTP id v18-20020a17090610d200b0093e22e6e7d3mr2252847ejv.0.1679673199901; Fri, 24 Mar 2023 08:53:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679673199; cv=none; d=google.com; s=arc-20160816; b=odooJqSzeKvUZTta0BNiJwKNOxkObkdRuv7ammVTRyfJrNemDkob/p7cKaDTZbQ5lz IAA42dKOk2Ob6CQmKmYUwcV9STnscmvYsTgkmOVu9RTDFSOYCAp0cqw4jxLG4MzGKbn2 +FcipZKjDlRB2UMiUydQpJnFLOKrxRH8cfggrV3DGLDk4kK3NbXVeMmkPBzraitmup00 IXDORzFlJU19pKHdKdCrTMLwFm2NEhyBI6LCfNnbb8BPcGJNNc4hKhClwTDKzFunzAVu ap4jzFobCN71tUujht3QlhcWH7uu9XDidv47u/jJv4ZN+plGBv325NK04Dk7IlK3PUzb QkFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=ttx4c6Xet8dpkIHufFulsxyEiRbT5ITQPRrqLWSQsAo=; b=RfUSu7r8b/VH48shoFFKYTUWkRmochZEJOuEWhZSLgvOcL0K8xs5EoJXB8JvcptoO8 xnfZ1MLFSRS9k4nNJMF8HoZIiVZ3hobwOdwVqWvE/pC0CJFxHgEJojanqJnf7TcEds1N JObf1ZM9gOlejQxbSY1078wdYTUQFhedqch1Vrdx8CAVPDmZVesOV/BmbnVLCmcIYWgk GA9LttCukOP39/1KhJLyTJGcrTZRpfCrpP5iBGambRAia4qOuoxzY6/eZd8dzl7ci1im kpXc05Ixcr1/LOQ7b7B7KXK7Pogcs/wZMrOHuDbE3eAhNAb/U63hvyxRZUdiHZyLAEMb dTmA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=fo2IjS77; 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 sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id d20-20020a17090694d400b009263490cbeasi18666391ejy.92.2023.03.24.08.53.19; Fri, 24 Mar 2023 08:53:19 -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 header.s=20210112 header.b=fo2IjS77; 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 sp=QUARANTINE 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 598AA68C864; Fri, 24 Mar 2023 17:52:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oa1-f44.google.com (mail-oa1-f44.google.com [209.85.160.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2795968C85C for ; Fri, 24 Mar 2023 17:52:43 +0200 (EET) Received: by mail-oa1-f44.google.com with SMTP id 586e51a60fabf-17997ccf711so2194390fac.0 for ; Fri, 24 Mar 2023 08:52:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679673161; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=fI3EM5ZEp7IstS3XHlPPiXdaHxpwDcQjnzKnE4l8KK8=; b=fo2IjS77yAUJi5ppwC+3MbFwKun4KUZUH3aP5moH/5caauUFko8vOrZUzMfz9E4++w YNLkFh/4JA6oeAJv9GlUBSt9SX8gY6bojcpUsapBztWZX+yPQHueRf2OaAh2QzSDEmBH K7uKPshBoM8x7dCPrZ1/g+ND3xg/vXd3OxFio5VC9vnq9SohvtCgqTnWMWlwXrT79KIW g9J/WOD3MHu3uCJVHWY/lSsxgfBgh4GjS+DIH7lTHMjnxukVWfVJz5MbZNkUQmPvVJIc M9T/Y8lhbbXniluU7JLFP+VdIBYcgCTQUVvytTtd/8zfrtfvNrnJhGkIpSnBBpGhwW22 5yyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679673161; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fI3EM5ZEp7IstS3XHlPPiXdaHxpwDcQjnzKnE4l8KK8=; b=ieI536Pr6/N1br3bvkAdIFqt9bOGlZGxh2H4zKxuuoN29zuvMX7E+qDpLuTc0s+SnX k2m5e9VocQ2EoE7rnWFWDxh0u7i4R2ssKRz/McrxSP9sCslhityr2MJJJrbO4tmpY+CX IfRgzq8e+EM5Bgvie20KIHn1CkJYYalQ2ZJX4MWWh+JvX+WC2qUiIm2dchOB0NashP4R BHdJ8bz/txLsfauxsrLkBcgAQ/wCHcPkdB34ZcVE2Uf8VNMIwEPa+dfC5O+9z4gbn7pC aD/1DSQi7agqMnWlOzh4fkW4e9GQ3jsm0LdNhIQGulXzS3cVviv6DulxB6qp9s4UBxEO Pu4w== X-Gm-Message-State: AAQBX9e/8dVLwUKBW6UXS88D3O7wrpCu3psDaJ4hEtw5oYMTYnwuVcBh DyewllPuRrdlEVGcvrN5O9PNQi7CVJY= X-Received: by 2002:a05:6871:551:b0:177:8692:dcaf with SMTP id t17-20020a056871055100b001778692dcafmr1882871oal.15.1679673161050; Fri, 24 Mar 2023 08:52:41 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id yx24-20020a056871251800b0017eb6cc4609sm1475940oab.39.2023.03.24.08.52.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Mar 2023 08:52:40 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 24 Mar 2023 12:52:11 -0300 Message-Id: <20230324155213.3493-5-jamrial@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230324155213.3493-1-jamrial@gmail.com> References: <20230324155213.3493-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 5/7] avformat/matroskaenc: write a MaxBlockAdditionID element X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 28gwQknNhxyc A non zero value is mandatory for Matroska if the track has blocks with BlockAdditions. Signed-off-by: James Almer --- libavformat/matroskaenc.c | 39 +++++++++++++++++-- tests/ref/fate/aac-autobsf-adtstoasc | 4 +- tests/ref/fate/matroska-avoid-negative-ts | 4 +- tests/ref/fate/matroska-dovi-write-config7 | 4 +- tests/ref/fate/matroska-dovi-write-config8 | 4 +- tests/ref/fate/matroska-dvbsub-remux | 4 +- tests/ref/fate/matroska-encoding-delay | 14 +++---- tests/ref/fate/matroska-flac-extradata-update | 4 +- tests/ref/fate/matroska-h264-remux | 4 +- .../fate/matroska-mastering-display-metadata | 4 +- tests/ref/fate/matroska-move-cues-to-front | 4 +- tests/ref/fate/matroska-mpegts-remux | 4 +- tests/ref/fate/matroska-ms-mode | 4 +- tests/ref/fate/matroska-ogg-opus-remux | 10 ++--- tests/ref/fate/matroska-opus-remux | 10 ++--- tests/ref/fate/matroska-pgs-remux | 4 +- tests/ref/fate/matroska-pgs-remux-durations | 4 +- tests/ref/fate/matroska-qt-mode | 4 +- tests/ref/fate/matroska-spherical-mono-remux | 4 +- tests/ref/fate/matroska-vp8-alpha-remux | 4 +- tests/ref/fate/matroska-zero-length-block | 4 +- tests/ref/fate/rgb24-mkv | 4 +- tests/ref/fate/shortest-sub | 4 +- tests/ref/lavf-fate/av1.mkv | 4 +- tests/ref/lavf/mka | 4 +- tests/ref/lavf/mkv | 4 +- tests/ref/lavf/mkv_attachment | 4 +- 27 files changed, 98 insertions(+), 67 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index c083f55319..dfc3fbbe95 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -188,6 +188,8 @@ typedef struct mkv_track { int64_t last_timestamp; int64_t duration; int64_t duration_offset; + uint64_t max_blockaddid; + int64_t blockadditionmapping_offset; int codecpriv_offset; unsigned codecpriv_size; ///< size reserved for CodecPrivate excluding header+length field int64_t ts_offset; @@ -1597,12 +1599,21 @@ static int mkv_write_stereo_mode(AVFormatContext *s, EbmlWriter *writer, return 0; } -static void mkv_write_dovi(AVFormatContext *s, AVIOContext *pb, AVStream *st) +static void mkv_write_blockadditionmapping(AVFormatContext *s, MatroskaMuxContext *mkv, + AVIOContext *pb, mkv_track *track, AVStream *st) { #if CONFIG_MATROSKA_MUXER AVDOVIDecoderConfigurationRecord *dovi = (AVDOVIDecoderConfigurationRecord *) av_stream_get_side_data(st, AV_PKT_DATA_DOVI_CONF, NULL); + if (IS_SEEKABLE(s->pb, mkv)) { + track->blockadditionmapping_offset = avio_tell(pb); + // We can't know at this point if there will be a block with BlockAdditions, so + // we either write the default value here, or a void element. Either of them will + // be overwritten when finishing the track. + put_ebml_uint(mkv->track.bc, MATROSKA_ID_TRACKMAXBLKADDID, 0); + } + if (dovi && dovi->dv_profile <= 10) { ebml_master mapping; uint8_t buf[ISOM_DVCC_DVVC_SIZE]; @@ -1846,9 +1857,6 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv, if (ret < 0) return ret; - if (!IS_WEBM(mkv)) - mkv_write_dovi(s, pb, st); - break; case AVMEDIA_TYPE_AUDIO: @@ -1924,6 +1932,9 @@ static int mkv_write_track(AVFormatContext *s, MatroskaMuxContext *mkv, return AVERROR(EINVAL); } + if (!IS_WEBM(mkv)) + mkv_write_blockadditionmapping(s, mkv, pb, track, st); + if (!IS_WEBM(mkv) || par->codec_id != AV_CODEC_ID_WEBVTT) { uint8_t *codecpriv; int codecpriv_size, max_payload_size; @@ -2667,6 +2678,7 @@ static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv, side_data + 8, side_data_size - 8); ebml_writer_close_master(&writer); ebml_writer_close_master(&writer); + track->max_blockaddid = additional_id; } if (!force_blockgroup && writer.nb_elements == 2) { @@ -3070,6 +3082,25 @@ after_cues: if (mkv->track.bc) { // write Tracks master + int64_t end = avio_tell(mkv->track.bc); + + for (int i = 0; i < s->nb_streams; i++) { + const mkv_track *track = &mkv->tracks[i]; + + if (IS_WEBM(mkv)) + break; + if (!track->max_blockaddid) + continue; + + // We reserved a single byte to write this value. + av_assert0(track->max_blockaddid <= 0xFF); + + avio_seek(mkv->track.bc, track->blockadditionmapping_offset, SEEK_SET); + + put_ebml_uint(mkv->track.bc, MATROSKA_ID_TRACKMAXBLKADDID, track->max_blockaddid); + } + + avio_seek(mkv->track.bc, end, SEEK_SET); avio_seek(pb, mkv->track.pos, SEEK_SET); ret = end_ebml_master_crc32(pb, &mkv->track.bc, mkv, MATROSKA_ID_TRACKS, 0, 0, 0); diff --git a/tests/ref/fate/aac-autobsf-adtstoasc b/tests/ref/fate/aac-autobsf-adtstoasc index 57bfcae18b..76125083b6 100644 --- a/tests/ref/fate/aac-autobsf-adtstoasc +++ b/tests/ref/fate/aac-autobsf-adtstoasc @@ -1,5 +1,5 @@ -4342e4f3f93b16514bda511b3b7fd93a *tests/data/fate/aac-autobsf-adtstoasc.matroska -6642 tests/data/fate/aac-autobsf-adtstoasc.matroska +3d4465a7ea2cfba31af737e288c892fe *tests/data/fate/aac-autobsf-adtstoasc.matroska +6646 tests/data/fate/aac-autobsf-adtstoasc.matroska #extradata 0: 2, 0x0030001c #tb 0: 1/1000 #media_type 0: audio diff --git a/tests/ref/fate/matroska-avoid-negative-ts b/tests/ref/fate/matroska-avoid-negative-ts index 129ea1be66..73616cbc5a 100644 --- a/tests/ref/fate/matroska-avoid-negative-ts +++ b/tests/ref/fate/matroska-avoid-negative-ts @@ -1,5 +1,5 @@ -fbe66be73d379073e0705891f290a6b2 *tests/data/fate/matroska-avoid-negative-ts.matroska -973055 tests/data/fate/matroska-avoid-negative-ts.matroska +ff83530bf89f9ab1df0d181bb848c475 *tests/data/fate/matroska-avoid-negative-ts.matroska +973063 tests/data/fate/matroska-avoid-negative-ts.matroska #extradata 0: 22, 0x2885037c #tb 0: 1/1000 #media_type 0: video diff --git a/tests/ref/fate/matroska-dovi-write-config7 b/tests/ref/fate/matroska-dovi-write-config7 index 9207b14b5c..8b40848f4a 100644 --- a/tests/ref/fate/matroska-dovi-write-config7 +++ b/tests/ref/fate/matroska-dovi-write-config7 @@ -1,5 +1,5 @@ -d23b8b0d0613a82ba36fdc27acf3ef5d *tests/data/fate/matroska-dovi-write-config7.matroska -72672 tests/data/fate/matroska-dovi-write-config7.matroska +b4db571fe6304f159a0383a38c9c0cee *tests/data/fate/matroska-dovi-write-config7.matroska +72680 tests/data/fate/matroska-dovi-write-config7.matroska #extradata 0: 116, 0x2b8d1669 #extradata 1: 116, 0x2b8d1669 #tb 0: 1/1000 diff --git a/tests/ref/fate/matroska-dovi-write-config8 b/tests/ref/fate/matroska-dovi-write-config8 index 5feb7b8065..c36d3a8a07 100644 --- a/tests/ref/fate/matroska-dovi-write-config8 +++ b/tests/ref/fate/matroska-dovi-write-config8 @@ -1,5 +1,5 @@ -0047ca43aa8ab2948752e367f184dc1f *tests/data/fate/matroska-dovi-write-config8.matroska -3600576 tests/data/fate/matroska-dovi-write-config8.matroska +8c77c1d18ee58a8923c411d3ba006a46 *tests/data/fate/matroska-dovi-write-config8.matroska +3600584 tests/data/fate/matroska-dovi-write-config8.matroska #extradata 0: 551, 0xa18acf66 #extradata 1: 2, 0x00340022 #tb 0: 1/1000 diff --git a/tests/ref/fate/matroska-dvbsub-remux b/tests/ref/fate/matroska-dvbsub-remux index b7346b8f55..03341d9668 100644 --- a/tests/ref/fate/matroska-dvbsub-remux +++ b/tests/ref/fate/matroska-dvbsub-remux @@ -1,5 +1,5 @@ -77d210dc36d7a01988d159b3c902524c *tests/data/fate/matroska-dvbsub-remux.matroska -39010 tests/data/fate/matroska-dvbsub-remux.matroska +5d1591e9abd7e1373d43bc776572aaf7 *tests/data/fate/matroska-dvbsub-remux.matroska +39018 tests/data/fate/matroska-dvbsub-remux.matroska #extradata 0: 5, 0x00bb0064 #extradata 1: 5, 0x00bb0064 #tb 0: 1/1000 diff --git a/tests/ref/fate/matroska-encoding-delay b/tests/ref/fate/matroska-encoding-delay index e6cf4790f5..401de4facf 100644 --- a/tests/ref/fate/matroska-encoding-delay +++ b/tests/ref/fate/matroska-encoding-delay @@ -1,5 +1,5 @@ -b933b7b94de55ae029369312d48d8649 *tests/data/fate/matroska-encoding-delay.matroska -961221 tests/data/fate/matroska-encoding-delay.matroska +1f6f9c0fbaba0f128acbea296cec1887 *tests/data/fate/matroska-encoding-delay.matroska +961229 tests/data/fate/matroska-encoding-delay.matroska #extradata 0: 22, 0x32ea0490 #tb 0: 1/1000 #media_type 0: video @@ -32,7 +32,7 @@ dts_time=-0.010000 duration=24 duration_time=0.024000 size=1152 -pos=1238 +pos=1246 flags=K__ [/PACKET] [PACKET] @@ -45,7 +45,7 @@ dts_time=0.000000 duration=40 duration_time=0.040000 size=237628 -pos=2398 +pos=2406 flags=K__ [/PACKET] [PACKET] @@ -58,7 +58,7 @@ dts_time=0.014000 duration=24 duration_time=0.024000 size=1152 -pos=240033 +pos=240041 flags=K__ [/PACKET] [PACKET] @@ -71,7 +71,7 @@ dts_time=0.038000 duration=24 duration_time=0.024000 size=1152 -pos=241208 +pos=241216 flags=K__ [/PACKET] [PACKET] @@ -84,7 +84,7 @@ dts_time=0.040000 duration=40 duration_time=0.040000 size=238066 -pos=242368 +pos=242376 flags=K__ [/PACKET] [STREAM] diff --git a/tests/ref/fate/matroska-flac-extradata-update b/tests/ref/fate/matroska-flac-extradata-update index d5814925f5..d6713aaafa 100644 --- a/tests/ref/fate/matroska-flac-extradata-update +++ b/tests/ref/fate/matroska-flac-extradata-update @@ -1,5 +1,5 @@ -28bc0ded5dc520d955caf29db80d35da *tests/data/fate/matroska-flac-extradata-update.matroska -1795 tests/data/fate/matroska-flac-extradata-update.matroska +fdbfdc51b519fd5e8f425aca1e7b8704 *tests/data/fate/matroska-flac-extradata-update.matroska +1807 tests/data/fate/matroska-flac-extradata-update.matroska #extradata 0: 34, 0x93650c81 #extradata 1: 34, 0x93650c81 #extradata 2: 34, 0x93650c81 diff --git a/tests/ref/fate/matroska-h264-remux b/tests/ref/fate/matroska-h264-remux index 6edd88fba8..9a9a98217c 100644 --- a/tests/ref/fate/matroska-h264-remux +++ b/tests/ref/fate/matroska-h264-remux @@ -1,5 +1,5 @@ -3c00191234d5c4d77151d38a86403101 *tests/data/fate/matroska-h264-remux.matroska -2036033 tests/data/fate/matroska-h264-remux.matroska +fa3352ef6d3abd7d93f8627981a53f6f *tests/data/fate/matroska-h264-remux.matroska +2036049 tests/data/fate/matroska-h264-remux.matroska #tb 0: 1/25 #media_type 0: video #codec_id 0: rawvideo diff --git a/tests/ref/fate/matroska-mastering-display-metadata b/tests/ref/fate/matroska-mastering-display-metadata index 5b23e9506c..95df3594c7 100644 --- a/tests/ref/fate/matroska-mastering-display-metadata +++ b/tests/ref/fate/matroska-mastering-display-metadata @@ -1,5 +1,5 @@ -69a904789151abaee46033391a4fce46 *tests/data/fate/matroska-mastering-display-metadata.matroska -1669555 tests/data/fate/matroska-mastering-display-metadata.matroska +e9a5f7314d6ae2ef16713335df2b5903 *tests/data/fate/matroska-mastering-display-metadata.matroska +1669571 tests/data/fate/matroska-mastering-display-metadata.matroska #extradata 0: 4, 0x040901a3 #extradata 3: 200, 0x506463a8 #tb 0: 1/1000 diff --git a/tests/ref/fate/matroska-move-cues-to-front b/tests/ref/fate/matroska-move-cues-to-front index 78697b2eae..79ccc2fd93 100644 --- a/tests/ref/fate/matroska-move-cues-to-front +++ b/tests/ref/fate/matroska-move-cues-to-front @@ -1,5 +1,5 @@ -8ebfcf15768bbe66611e349383fbf26a *tests/data/fate/matroska-move-cues-to-front.matroska -23210287 tests/data/fate/matroska-move-cues-to-front.matroska +74a5ed3f0b14112322c8bf3e94d6e98b *tests/data/fate/matroska-move-cues-to-front.matroska +23210297 tests/data/fate/matroska-move-cues-to-front.matroska #tb 0: 1/1000 #media_type 0: audio #codec_id 0: pcm_s24be diff --git a/tests/ref/fate/matroska-mpegts-remux b/tests/ref/fate/matroska-mpegts-remux index 2faab0892f..af41b57af1 100644 --- a/tests/ref/fate/matroska-mpegts-remux +++ b/tests/ref/fate/matroska-mpegts-remux @@ -1,5 +1,5 @@ -acaf3ebe07afe9815e0a984921d3ab87 *tests/data/fate/matroska-mpegts-remux.matroska -6494 tests/data/fate/matroska-mpegts-remux.matroska +ca1b91e49b6e238b641007c186d8f424 *tests/data/fate/matroska-mpegts-remux.matroska +6502 tests/data/fate/matroska-mpegts-remux.matroska #tb 0: 1/1000 #media_type 0: audio #codec_id 0: ac3 diff --git a/tests/ref/fate/matroska-ms-mode b/tests/ref/fate/matroska-ms-mode index f90a7e431f..0a42ab0748 100644 --- a/tests/ref/fate/matroska-ms-mode +++ b/tests/ref/fate/matroska-ms-mode @@ -1,5 +1,5 @@ -afb4fc9b2ca6cafc03d8029fdf4da876 *tests/data/fate/matroska-ms-mode.matroska -413086 tests/data/fate/matroska-ms-mode.matroska +7f0b825626a028765098222816ba56b8 *tests/data/fate/matroska-ms-mode.matroska +413094 tests/data/fate/matroska-ms-mode.matroska #extradata 0: 40, 0x54290c93 #extradata 1: 114, 0xb6c80771 #tb 0: 1/1000 diff --git a/tests/ref/fate/matroska-ogg-opus-remux b/tests/ref/fate/matroska-ogg-opus-remux index 473b9ff00c..cd3eade361 100644 --- a/tests/ref/fate/matroska-ogg-opus-remux +++ b/tests/ref/fate/matroska-ogg-opus-remux @@ -1,5 +1,5 @@ -a3f98769fe55bc5234cf75fb1949749a *tests/data/fate/matroska-ogg-opus-remux.matroska -10200 tests/data/fate/matroska-ogg-opus-remux.matroska +b602a1a4aaa4fbca4b8aaf39b66d7235 *tests/data/fate/matroska-ogg-opus-remux.matroska +10204 tests/data/fate/matroska-ogg-opus-remux.matroska #extradata 0: 19, 0x399c0471 #tb 0: 1/1000 #media_type 0: audio @@ -57,7 +57,7 @@ dts_time=-0.007000 duration=20 duration_time=0.020000 size=402 -pos=540 +pos=544 flags=K__ [/PACKET] [PACKET] @@ -70,7 +70,7 @@ dts_time=0.013000 duration=20 duration_time=0.020000 size=216 -pos=949 +pos=953 flags=K__ [/PACKET] [PACKET] @@ -83,7 +83,7 @@ dts_time=0.033000 duration=20 duration_time=0.020000 size=215 -pos=1172 +pos=1176 flags=K__ [/PACKET] [STREAM] diff --git a/tests/ref/fate/matroska-opus-remux b/tests/ref/fate/matroska-opus-remux index 8ebc80ee36..975510e167 100644 --- a/tests/ref/fate/matroska-opus-remux +++ b/tests/ref/fate/matroska-opus-remux @@ -1,5 +1,5 @@ -551e45142f0989b281e837a3a86f0218 *tests/data/fate/matroska-opus-remux.matroska -9355 tests/data/fate/matroska-opus-remux.matroska +fe0258eb0d4b525203ea240c87a154d3 *tests/data/fate/matroska-opus-remux.matroska +9359 tests/data/fate/matroska-opus-remux.matroska #extradata 0: 19, 0x3a04048f #tb 0: 1/1000 #media_type 0: audio @@ -68,7 +68,7 @@ dts_time=-0.007000 duration=20 duration_time=0.020000 size=320 -pos=496 +pos=500 flags=K__ [/PACKET] [PACKET] @@ -81,7 +81,7 @@ dts_time=0.014000 duration=20 duration_time=0.020000 size=159 -pos=823 +pos=827 flags=K__ [/PACKET] [PACKET] @@ -94,7 +94,7 @@ dts_time=0.034000 duration=20 duration_time=0.020000 size=148 -pos=989 +pos=993 flags=K__ [/PACKET] [STREAM] diff --git a/tests/ref/fate/matroska-pgs-remux b/tests/ref/fate/matroska-pgs-remux index ed5beb7463..a086111495 100644 --- a/tests/ref/fate/matroska-pgs-remux +++ b/tests/ref/fate/matroska-pgs-remux @@ -1,5 +1,5 @@ -6703d4e9a905bc5a1fc529776e8ffb51 *tests/data/fate/matroska-pgs-remux.matroska -49744 tests/data/fate/matroska-pgs-remux.matroska +d39daa393d66ae0b0c153be045897585 *tests/data/fate/matroska-pgs-remux.matroska +49748 tests/data/fate/matroska-pgs-remux.matroska #tb 0: 1/1000 #media_type 0: subtitle #codec_id 0: hdmv_pgs_subtitle diff --git a/tests/ref/fate/matroska-pgs-remux-durations b/tests/ref/fate/matroska-pgs-remux-durations index a255640fa6..37494cd98f 100644 --- a/tests/ref/fate/matroska-pgs-remux-durations +++ b/tests/ref/fate/matroska-pgs-remux-durations @@ -1,5 +1,5 @@ -a547f8b6463a60e5ef2e9a2b117c4dfa *tests/data/fate/matroska-pgs-remux-durations.matroska -49756 tests/data/fate/matroska-pgs-remux-durations.matroska +27af80eecea4f15f415f22841bc699d5 *tests/data/fate/matroska-pgs-remux-durations.matroska +49760 tests/data/fate/matroska-pgs-remux-durations.matroska #tb 0: 1/1000 #media_type 0: subtitle #codec_id 0: hdmv_pgs_subtitle diff --git a/tests/ref/fate/matroska-qt-mode b/tests/ref/fate/matroska-qt-mode index 17a8e6619e..d54f5d167c 100644 --- a/tests/ref/fate/matroska-qt-mode +++ b/tests/ref/fate/matroska-qt-mode @@ -1,5 +1,5 @@ -39a3d6faff69892c8a20301560b80b14 *tests/data/fate/matroska-qt-mode.matroska -1884224 tests/data/fate/matroska-qt-mode.matroska +c3483a76cd0bfbaf80a32dad041b6f52 *tests/data/fate/matroska-qt-mode.matroska +1884232 tests/data/fate/matroska-qt-mode.matroska #extradata 0: 90, 0x817d0185 #tb 0: 1/1000 #media_type 0: video diff --git a/tests/ref/fate/matroska-spherical-mono-remux b/tests/ref/fate/matroska-spherical-mono-remux index 6b975c1586..c65d206e91 100644 --- a/tests/ref/fate/matroska-spherical-mono-remux +++ b/tests/ref/fate/matroska-spherical-mono-remux @@ -1,5 +1,5 @@ -31cdace875cb696973d5a493ce776eea *tests/data/fate/matroska-spherical-mono-remux.matroska -161554 tests/data/fate/matroska-spherical-mono-remux.matroska +dfc2e196ca14cce155b1a081a0628fd3 *tests/data/fate/matroska-spherical-mono-remux.matroska +161562 tests/data/fate/matroska-spherical-mono-remux.matroska #extradata 0: 43, 0x2b0e0d7b #extradata 1: 43, 0x2b0e0d7b #tb 0: 1/1000 diff --git a/tests/ref/fate/matroska-vp8-alpha-remux b/tests/ref/fate/matroska-vp8-alpha-remux index 17c15ec9df..1fad574edd 100644 --- a/tests/ref/fate/matroska-vp8-alpha-remux +++ b/tests/ref/fate/matroska-vp8-alpha-remux @@ -1,5 +1,5 @@ -fd4f24bf776a2f84e01b0aa7fdfece38 *tests/data/fate/matroska-vp8-alpha-remux.matroska -235011 tests/data/fate/matroska-vp8-alpha-remux.matroska +3339f3fa157bdd63f22f5a579f308c89 *tests/data/fate/matroska-vp8-alpha-remux.matroska +235015 tests/data/fate/matroska-vp8-alpha-remux.matroska #tb 0: 1/1000 #media_type 0: video #codec_id 0: vp8 diff --git a/tests/ref/fate/matroska-zero-length-block b/tests/ref/fate/matroska-zero-length-block index bef887d58b..3987cc14c4 100644 --- a/tests/ref/fate/matroska-zero-length-block +++ b/tests/ref/fate/matroska-zero-length-block @@ -1,5 +1,5 @@ -d9c8efb9d64addce3cac97e6c417d985 *tests/data/fate/matroska-zero-length-block.matroska -630 tests/data/fate/matroska-zero-length-block.matroska +f577fad2fff41d6e055f605281582b8d *tests/data/fate/matroska-zero-length-block.matroska +634 tests/data/fate/matroska-zero-length-block.matroska #tb 0: 1/1000 #media_type 0: subtitle #codec_id 0: subrip diff --git a/tests/ref/fate/rgb24-mkv b/tests/ref/fate/rgb24-mkv index f2cff5ff96..d037c01b32 100644 --- a/tests/ref/fate/rgb24-mkv +++ b/tests/ref/fate/rgb24-mkv @@ -1,5 +1,5 @@ -a46cb669137f18ac0a42012485e5e863 *tests/data/fate/rgb24-mkv.matroska -58211 tests/data/fate/rgb24-mkv.matroska +69dc9d35fdfadccb28c7baf401776ec3 *tests/data/fate/rgb24-mkv.matroska +58215 tests/data/fate/rgb24-mkv.matroska #tb 0: 1/10 #media_type 0: video #codec_id 0: rawvideo diff --git a/tests/ref/fate/shortest-sub b/tests/ref/fate/shortest-sub index 53f89925b9..b6571b4f32 100644 --- a/tests/ref/fate/shortest-sub +++ b/tests/ref/fate/shortest-sub @@ -1,5 +1,5 @@ -145b9b48d56f9c966bf41657f7569954 *tests/data/fate/shortest-sub.matroska -139232 tests/data/fate/shortest-sub.matroska +d334a0eee71351ddad0a63011107909f *tests/data/fate/shortest-sub.matroska +139240 tests/data/fate/shortest-sub.matroska #extradata 1: 167, 0xf7272d5f #tb 0: 1/1000 #media_type 0: video diff --git a/tests/ref/lavf-fate/av1.mkv b/tests/ref/lavf-fate/av1.mkv index 2008e1a932..382e3aeee3 100644 --- a/tests/ref/lavf-fate/av1.mkv +++ b/tests/ref/lavf-fate/av1.mkv @@ -1,3 +1,3 @@ -72a4713f9165c73574d40e8b81c5d70f *tests/data/lavf-fate/lavf.av1.mkv -55642 tests/data/lavf-fate/lavf.av1.mkv +7d2c39dd98d5776425a4015e1eead6c6 *tests/data/lavf-fate/lavf.av1.mkv +55646 tests/data/lavf-fate/lavf.av1.mkv tests/data/lavf-fate/lavf.av1.mkv CRC=0x7c27cc15 diff --git a/tests/ref/lavf/mka b/tests/ref/lavf/mka index 7af63e0779..93a0b8f71a 100644 --- a/tests/ref/lavf/mka +++ b/tests/ref/lavf/mka @@ -1,3 +1,3 @@ -e2d55cd3844fd7237a92181dbbcb08d9 *tests/data/lavf/lavf.mka -43569 tests/data/lavf/lavf.mka +77db16a9fe1c42a230c85124bfb40cad *tests/data/lavf/lavf.mka +43573 tests/data/lavf/lavf.mka tests/data/lavf/lavf.mka CRC=0x3a1da17e diff --git a/tests/ref/lavf/mkv b/tests/ref/lavf/mkv index d54c44a647..fbd40fc1cb 100644 --- a/tests/ref/lavf/mkv +++ b/tests/ref/lavf/mkv @@ -1,3 +1,3 @@ -0934e35639b6735c1e26595e8f47ba70 *tests/data/lavf/lavf.mkv -320409 tests/data/lavf/lavf.mkv +32b87b6adbe76df1008bc074f82fabb0 *tests/data/lavf/lavf.mkv +320417 tests/data/lavf/lavf.mkv tests/data/lavf/lavf.mkv CRC=0xec6c3c68 diff --git a/tests/ref/lavf/mkv_attachment b/tests/ref/lavf/mkv_attachment index ad96424098..2966a827cc 100644 --- a/tests/ref/lavf/mkv_attachment +++ b/tests/ref/lavf/mkv_attachment @@ -1,3 +1,3 @@ -d2708709bdd6817d9cb2b475fdfa903f *tests/data/lavf/lavf.mkv_attachment -472559 tests/data/lavf/lavf.mkv_attachment +41739c51209d94b4763f9dbe4d1e1dc9 *tests/data/lavf/lavf.mkv_attachment +472567 tests/data/lavf/lavf.mkv_attachment tests/data/lavf/lavf.mkv_attachment CRC=0xec6c3c68 From patchwork Fri Mar 24 15:52:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 40806 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp722027pzb; Fri, 24 Mar 2023 08:53:29 -0700 (PDT) X-Google-Smtp-Source: AKy350aCyJjCTMG7ELJgjw7YNni/Gszw9pXLbyjcaoZdQ2AUyAfa3cczqAeIRKZ06Q2s2T9XgOB3 X-Received: by 2002:a17:906:3616:b0:931:19f8:d89c with SMTP id q22-20020a170906361600b0093119f8d89cmr3083825ejb.73.1679673208788; Fri, 24 Mar 2023 08:53:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679673208; cv=none; d=google.com; s=arc-20160816; b=yLDBbMOqAADFKsvjiwYNL8J2ZMJ9ZH2UVJS6i1ByeRO5LYbKp4JgCToboQxa80PjIA AVVHSS0gh+5m1gBycb1lsbAAr6q4J+ZkenZoJNyF2gPEq06zH6VoOTHYFHswPz7U+Q1D f9scLDWvaRK9rkrTg83nLElsBsqzikhcJ53jqTMoKKSLa51tdqxGtAIzjz2YZVMSNhOv h+/IlPV1QiNLx1r1zw5+LTNhTD2lUf5ifq4P4fku/m4ZLDs9PPU1RWYadjWM9IbsCGZd 1nsxNOqa7Laud3PhvHPwgnwCM2OiWwSXS1l5Szlle7E9uSQ0zyfosJDz5C5LafgnySrp 7vAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=Mo04aAd2em9MoFArwJivpV633AyPeOsCNT1ARrlbU6s=; b=lcLMaPFyFFQKTxNjMm8cQzLesSdXEJk2ELd8Nl0umbR1iIvdJ2qDoTTMl0fNIERED5 Rt8lUPKpz9YbATrsY41K1+x+e5ObzSoKE1WmwJyPkLNuZJolQ+Vag8ul5fxhG3Q1gBNW GksgxixuaIigQhxzcagayVCpE/IBBR7NftnfsihdYycbX6FnAiZtq1FwJsDRg+y/8ODZ gEa+z+L84SHfLHlxTH5D5S9bWz1ZeGz3EgYZB1Y5ZVH5u0Q7YRF5tPOc1mOJ24jJATkP gIdoxjgr1xY6HW0vmGWXlw6h90v8JEzWWrQi7ly8zkUaki6M9z+7smcKI/t8mG9oQ5iS uERA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b="i2J/Qxea"; 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 sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hr19-20020a1709073f9300b0093549a153f9si16811410ejc.912.2023.03.24.08.53.28; Fri, 24 Mar 2023 08:53:28 -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 header.s=20210112 header.b="i2J/Qxea"; 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 sp=QUARANTINE 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 795D468C85F; Fri, 24 Mar 2023 17:52:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oa1-f54.google.com (mail-oa1-f54.google.com [209.85.160.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 18D0968C864 for ; Fri, 24 Mar 2023 17:52:44 +0200 (EET) Received: by mail-oa1-f54.google.com with SMTP id 586e51a60fabf-17aeb49429eso2153170fac.6 for ; Fri, 24 Mar 2023 08:52:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679673162; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=cjoPOcfMiZLpxV6+Xk0kINxB/wzxAz0TGaiYhVUuIYs=; b=i2J/QxeaCeCczeoXUZ6NOVDbMEbipOogBg8kFwJMeTXbzJO5RgdEpO/8f/ThaBWL8Q 7uQXnUoZxlLodT8ejogVaaHcLSqPSr/WXHNePYu/jadEQx0FPZkQE3zFZGtvIYs16Ttc l6w5jZleYkjAf05ZDqlZ8trhn/bjd2Q9ac+Jxg3Ck19duMWRkW1+WM4H+Xz0mpfbujdU y5i2Y2T5F8sd8oIPDw1Y6jrrt6godpfGIBacaC91227RAulzdq5nqeBMJE1o1eu+cwCF tad610RsclnpWa7qfEUDDPtS1P1Vtz5j4Yw15rT8ahPaLenWZZHwQEkKoNbVBUD5h9/K m5mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679673162; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cjoPOcfMiZLpxV6+Xk0kINxB/wzxAz0TGaiYhVUuIYs=; b=cHvFRPwuwCv8vTA0H4H8GZsiopZ38H2o7A6jlMyOfWBWrwIZiO+giNCnrV/1ZjV2kg nWHle939XEC1I+o6RAGwnSD59NXJk5Mk/7n7bm+tSEXOZOZmgJ26W5VE23w8eBIbQB5O wkOloxYP9B/cfnfL5zFcKmCI6Ob1MvryPSTmnn7kUPoCSeavOSREsDkSkBwekCSZVvXS ygWIGHAKybbmQ04NQqDDYQLi1nDyiJ+r/xGzykn7EMxwPnTqX8BWNPY9IoqaekWnbKyp Ue0GENACGxpFumIV1G5K2fLnxLU/HAr4LgQX+90pnB/lf/D4Q9Oo/Vvz064nSk44r9pn Of+Q== X-Gm-Message-State: AO0yUKXDStOdLMwaMKTsAYORneKVGdekP9tdQBifnv1nlZB4K6zLUtDh FW5BCf1Hun1AUJqRxdNS+IVCZ0LpwYI= X-Received: by 2002:a05:6870:e88a:b0:17e:a4d6:5e1b with SMTP id q10-20020a056870e88a00b0017ea4d65e1bmr2190585oan.19.1679673162123; Fri, 24 Mar 2023 08:52:42 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id yx24-20020a056871251800b0017eb6cc4609sm1475940oab.39.2023.03.24.08.52.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Mar 2023 08:52:41 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 24 Mar 2023 12:52:12 -0300 Message-Id: <20230324155213.3493-6-jamrial@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230324155213.3493-1-jamrial@gmail.com> References: <20230324155213.3493-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 6/7] avformat/matroskaenc: support writing Dynamic HDR10+ packet side data X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: pJugf8Nk2a0A Signed-off-by: James Almer --- libavformat/matroskaenc.c | 91 ++++++++++++++++--- tests/ref/fate/aac-autobsf-adtstoasc | 4 +- tests/ref/fate/matroska-avoid-negative-ts | 4 +- tests/ref/fate/matroska-dovi-write-config7 | 4 +- tests/ref/fate/matroska-dovi-write-config8 | 4 +- tests/ref/fate/matroska-dvbsub-remux | 4 +- tests/ref/fate/matroska-encoding-delay | 14 +-- tests/ref/fate/matroska-flac-extradata-update | 4 +- tests/ref/fate/matroska-h264-remux | 4 +- .../fate/matroska-mastering-display-metadata | 4 +- tests/ref/fate/matroska-move-cues-to-front | 4 +- tests/ref/fate/matroska-mpegts-remux | 4 +- tests/ref/fate/matroska-ms-mode | 4 +- tests/ref/fate/matroska-ogg-opus-remux | 10 +- tests/ref/fate/matroska-opus-remux | 10 +- tests/ref/fate/matroska-pgs-remux | 4 +- tests/ref/fate/matroska-pgs-remux-durations | 4 +- tests/ref/fate/matroska-qt-mode | 4 +- tests/ref/fate/matroska-spherical-mono-remux | 4 +- tests/ref/fate/matroska-vp8-alpha-remux | 4 +- tests/ref/fate/matroska-zero-length-block | 4 +- tests/ref/fate/rgb24-mkv | 4 +- tests/ref/fate/shortest-sub | 4 +- tests/ref/lavf-fate/av1.mkv | 4 +- tests/ref/lavf/mka | 4 +- tests/ref/lavf/mkv | 4 +- tests/ref/lavf/mkv_attachment | 4 +- 27 files changed, 141 insertions(+), 76 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index dfc3fbbe95..3427e93619 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -44,6 +44,7 @@ #include "libavutil/channel_layout.h" #include "libavutil/crc.h" #include "libavutil/dict.h" +#include "libavutil/hdr_dynamic_metadata.h" #include "libavutil/intfloat.h" #include "libavutil/intreadwrite.h" #include "libavutil/lfg.h" @@ -1612,6 +1613,10 @@ static void mkv_write_blockadditionmapping(AVFormatContext *s, MatroskaMuxContex // we either write the default value here, or a void element. Either of them will // be overwritten when finishing the track. put_ebml_uint(mkv->track.bc, MATROSKA_ID_TRACKMAXBLKADDID, 0); + // Similarly, reserve space for an eventual HDR10+ ITU T.35 metadata BlockAdditionMapping. + put_ebml_void(pb, 3 /* BlockAdditionMapping */ + + 4 /* BlockAddIDValue */ + + 4 /* BlockAddIDType */); } if (dovi && dovi->dv_profile <= 10) { @@ -2618,17 +2623,34 @@ static int webm_reformat_vtt(MatroskaMuxContext *mkv, AVIOContext *pb, return 0; } +static void mkv_write_blockadditional(EbmlWriter *writer, const uint8_t *buf, + size_t size, enum AVPacketSideDataType type, + uint64_t additional_id) +{ + size_t offset = 0; + + if (type == AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL) + offset = 8; + + ebml_writer_open_master(writer, MATROSKA_ID_BLOCKMORE); + ebml_writer_add_uint(writer, MATROSKA_ID_BLOCKADDID, additional_id); + ebml_writer_add_bin (writer, MATROSKA_ID_BLOCKADDITIONAL, + buf + offset, size - offset); + ebml_writer_close_master(writer); +} + static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv, AVIOContext *pb, const AVCodecParameters *par, mkv_track *track, const AVPacket *pkt, int keyframe, int64_t ts, uint64_t duration, int force_blockgroup, int64_t relative_packet_pos) { - uint8_t *side_data; + uint8_t *side_data, *buf = NULL; size_t side_data_size; - uint64_t additional_id; + uint64_t additional_id, max_blockaddid = 0; unsigned track_number = track->track_num; - EBML_WRITER(9); + int ret; + EBML_WRITER(13); mkv->cur_block.track = track; mkv->cur_block.pkt = pkt; @@ -2670,17 +2692,51 @@ static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv, // Only the Codec-specific BlockMore (id == 1) is currently supported. (additional_id = AV_RB64(side_data)) == MATROSKA_BLOCK_ADD_ID_TYPE_OPAQUE_DATA) { ebml_writer_open_master(&writer, MATROSKA_ID_BLOCKADDITIONS); - ebml_writer_open_master(&writer, MATROSKA_ID_BLOCKMORE); - /* Until dbc50f8a our demuxer used a wrong default value - * of BlockAddID, so we write it unconditionally. */ - ebml_writer_add_uint(&writer, MATROSKA_ID_BLOCKADDID, additional_id); - ebml_writer_add_bin (&writer, MATROSKA_ID_BLOCKADDITIONAL, - side_data + 8, side_data_size - 8); - ebml_writer_close_master(&writer); - ebml_writer_close_master(&writer); - track->max_blockaddid = additional_id; + mkv_write_blockadditional(&writer, side_data, side_data_size, + AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, + additional_id); + max_blockaddid = track->max_blockaddid = FFMAX(track->max_blockaddid, + additional_id); + } + + side_data = av_packet_get_side_data(pkt, + AV_PKT_DATA_DYNAMIC_HDR10_PLUS, + &side_data_size); + if (side_data_size) { + uint8_t *payload; + size_t payload_size, buf_size; + int ret = av_dynamic_hdr_plus_to_t35((AVDynamicHDRPlus *)side_data, &payload, + &payload_size); + if (ret < 0) + return ret; + + buf_size = payload_size + 6; + buf = av_malloc(buf_size); + if (!buf) { + av_free(payload); + return AVERROR(ENOMEM); + } + + AV_WB8 (buf + 0, 0xB5); // country_code + AV_WB16(buf + 1, 0x3C); // provider_code + AV_WB16(buf + 3, 0x01); // provider_oriented_code + AV_WB8 (buf + 5, 0x04); // application_identifier + memcpy(buf + 6, payload, payload_size); + + if (!max_blockaddid) + ebml_writer_open_master(&writer, MATROSKA_ID_BLOCKADDITIONS); + mkv_write_blockadditional(&writer, buf, buf_size, + AV_PKT_DATA_DYNAMIC_HDR10_PLUS, + MATROSKA_BLOCK_ADD_ID_ITU_T_T35); + track->max_blockaddid = FFMAX(track->max_blockaddid, + MATROSKA_BLOCK_ADD_ID_ITU_T_T35); + + av_free(payload); } + if (max_blockaddid) + ebml_writer_close_master(&writer); + if (!force_blockgroup && writer.nb_elements == 2) { /* Nothing except the BlockGroup + Block. Can use a SimpleBlock. */ writer.elements++; // Skip the BlockGroup. @@ -2693,7 +2749,10 @@ static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv, ebml_writer_add_sint(&writer, MATROSKA_ID_BLOCKREFERENCE, track->last_timestamp - ts); - return ebml_writer_write(&writer, pb); + ret = ebml_writer_write(&writer, pb); + av_free(buf); + + return ret; } static int mkv_end_cluster(AVFormatContext *s) @@ -3098,6 +3157,12 @@ after_cues: avio_seek(mkv->track.bc, track->blockadditionmapping_offset, SEEK_SET); put_ebml_uint(mkv->track.bc, MATROSKA_ID_TRACKMAXBLKADDID, track->max_blockaddid); + if (track->max_blockaddid == MATROSKA_BLOCK_ADD_ID_ITU_T_T35) { + ebml_master mapping_master = start_ebml_master(mkv->track.bc, MATROSKA_ID_TRACKBLKADDMAPPING, 8); + put_ebml_uint(mkv->track.bc, MATROSKA_ID_BLKADDIDTYPE, MATROSKA_BLOCK_ADD_ID_TYPE_ITU_T_T35); + put_ebml_uint(mkv->track.bc, MATROSKA_ID_BLKADDIDVALUE, MATROSKA_BLOCK_ADD_ID_ITU_T_T35); + end_ebml_master(mkv->track.bc, mapping_master); + } } avio_seek(mkv->track.bc, end, SEEK_SET); diff --git a/tests/ref/fate/aac-autobsf-adtstoasc b/tests/ref/fate/aac-autobsf-adtstoasc index 76125083b6..12b80ef6bd 100644 --- a/tests/ref/fate/aac-autobsf-adtstoasc +++ b/tests/ref/fate/aac-autobsf-adtstoasc @@ -1,5 +1,5 @@ -3d4465a7ea2cfba31af737e288c892fe *tests/data/fate/aac-autobsf-adtstoasc.matroska -6646 tests/data/fate/aac-autobsf-adtstoasc.matroska +68cb46874ca6029d3ae3a184b4a71b04 *tests/data/fate/aac-autobsf-adtstoasc.matroska +6657 tests/data/fate/aac-autobsf-adtstoasc.matroska #extradata 0: 2, 0x0030001c #tb 0: 1/1000 #media_type 0: audio diff --git a/tests/ref/fate/matroska-avoid-negative-ts b/tests/ref/fate/matroska-avoid-negative-ts index 73616cbc5a..dcde937d52 100644 --- a/tests/ref/fate/matroska-avoid-negative-ts +++ b/tests/ref/fate/matroska-avoid-negative-ts @@ -1,5 +1,5 @@ -ff83530bf89f9ab1df0d181bb848c475 *tests/data/fate/matroska-avoid-negative-ts.matroska -973063 tests/data/fate/matroska-avoid-negative-ts.matroska +6a1a524a5700de7b94bce5a283bbe8b9 *tests/data/fate/matroska-avoid-negative-ts.matroska +973085 tests/data/fate/matroska-avoid-negative-ts.matroska #extradata 0: 22, 0x2885037c #tb 0: 1/1000 #media_type 0: video diff --git a/tests/ref/fate/matroska-dovi-write-config7 b/tests/ref/fate/matroska-dovi-write-config7 index 8b40848f4a..ef4c87d885 100644 --- a/tests/ref/fate/matroska-dovi-write-config7 +++ b/tests/ref/fate/matroska-dovi-write-config7 @@ -1,5 +1,5 @@ -b4db571fe6304f159a0383a38c9c0cee *tests/data/fate/matroska-dovi-write-config7.matroska -72680 tests/data/fate/matroska-dovi-write-config7.matroska +82581e39700ff479516c33402e8b1d5d *tests/data/fate/matroska-dovi-write-config7.matroska +72702 tests/data/fate/matroska-dovi-write-config7.matroska #extradata 0: 116, 0x2b8d1669 #extradata 1: 116, 0x2b8d1669 #tb 0: 1/1000 diff --git a/tests/ref/fate/matroska-dovi-write-config8 b/tests/ref/fate/matroska-dovi-write-config8 index c36d3a8a07..bb22563eee 100644 --- a/tests/ref/fate/matroska-dovi-write-config8 +++ b/tests/ref/fate/matroska-dovi-write-config8 @@ -1,5 +1,5 @@ -8c77c1d18ee58a8923c411d3ba006a46 *tests/data/fate/matroska-dovi-write-config8.matroska -3600584 tests/data/fate/matroska-dovi-write-config8.matroska +09ff3c0a038eec0cdf4773929b24f41a *tests/data/fate/matroska-dovi-write-config8.matroska +3600606 tests/data/fate/matroska-dovi-write-config8.matroska #extradata 0: 551, 0xa18acf66 #extradata 1: 2, 0x00340022 #tb 0: 1/1000 diff --git a/tests/ref/fate/matroska-dvbsub-remux b/tests/ref/fate/matroska-dvbsub-remux index 03341d9668..b5bb028343 100644 --- a/tests/ref/fate/matroska-dvbsub-remux +++ b/tests/ref/fate/matroska-dvbsub-remux @@ -1,5 +1,5 @@ -5d1591e9abd7e1373d43bc776572aaf7 *tests/data/fate/matroska-dvbsub-remux.matroska -39018 tests/data/fate/matroska-dvbsub-remux.matroska +7154511243fd7edb695c159bb12a0948 *tests/data/fate/matroska-dvbsub-remux.matroska +39041 tests/data/fate/matroska-dvbsub-remux.matroska #extradata 0: 5, 0x00bb0064 #extradata 1: 5, 0x00bb0064 #tb 0: 1/1000 diff --git a/tests/ref/fate/matroska-encoding-delay b/tests/ref/fate/matroska-encoding-delay index 401de4facf..086fe94e93 100644 --- a/tests/ref/fate/matroska-encoding-delay +++ b/tests/ref/fate/matroska-encoding-delay @@ -1,5 +1,5 @@ -1f6f9c0fbaba0f128acbea296cec1887 *tests/data/fate/matroska-encoding-delay.matroska -961229 tests/data/fate/matroska-encoding-delay.matroska +ce2ab14d45217a043f9f50fe6adfe5ce *tests/data/fate/matroska-encoding-delay.matroska +961251 tests/data/fate/matroska-encoding-delay.matroska #extradata 0: 22, 0x32ea0490 #tb 0: 1/1000 #media_type 0: video @@ -32,7 +32,7 @@ dts_time=-0.010000 duration=24 duration_time=0.024000 size=1152 -pos=1246 +pos=1268 flags=K__ [/PACKET] [PACKET] @@ -45,7 +45,7 @@ dts_time=0.000000 duration=40 duration_time=0.040000 size=237628 -pos=2406 +pos=2428 flags=K__ [/PACKET] [PACKET] @@ -58,7 +58,7 @@ dts_time=0.014000 duration=24 duration_time=0.024000 size=1152 -pos=240041 +pos=240063 flags=K__ [/PACKET] [PACKET] @@ -71,7 +71,7 @@ dts_time=0.038000 duration=24 duration_time=0.024000 size=1152 -pos=241216 +pos=241238 flags=K__ [/PACKET] [PACKET] @@ -84,7 +84,7 @@ dts_time=0.040000 duration=40 duration_time=0.040000 size=238066 -pos=242376 +pos=242398 flags=K__ [/PACKET] [STREAM] diff --git a/tests/ref/fate/matroska-flac-extradata-update b/tests/ref/fate/matroska-flac-extradata-update index d6713aaafa..37e0367297 100644 --- a/tests/ref/fate/matroska-flac-extradata-update +++ b/tests/ref/fate/matroska-flac-extradata-update @@ -1,5 +1,5 @@ -fdbfdc51b519fd5e8f425aca1e7b8704 *tests/data/fate/matroska-flac-extradata-update.matroska -1807 tests/data/fate/matroska-flac-extradata-update.matroska +8a75767c14e63e7d15291c5c4918a661 *tests/data/fate/matroska-flac-extradata-update.matroska +1840 tests/data/fate/matroska-flac-extradata-update.matroska #extradata 0: 34, 0x93650c81 #extradata 1: 34, 0x93650c81 #extradata 2: 34, 0x93650c81 diff --git a/tests/ref/fate/matroska-h264-remux b/tests/ref/fate/matroska-h264-remux index 9a9a98217c..bfc80a273f 100644 --- a/tests/ref/fate/matroska-h264-remux +++ b/tests/ref/fate/matroska-h264-remux @@ -1,5 +1,5 @@ -fa3352ef6d3abd7d93f8627981a53f6f *tests/data/fate/matroska-h264-remux.matroska -2036049 tests/data/fate/matroska-h264-remux.matroska +38ede644af311f443d7446600f25a8e3 *tests/data/fate/matroska-h264-remux.matroska +2036093 tests/data/fate/matroska-h264-remux.matroska #tb 0: 1/25 #media_type 0: video #codec_id 0: rawvideo diff --git a/tests/ref/fate/matroska-mastering-display-metadata b/tests/ref/fate/matroska-mastering-display-metadata index 95df3594c7..c63365c181 100644 --- a/tests/ref/fate/matroska-mastering-display-metadata +++ b/tests/ref/fate/matroska-mastering-display-metadata @@ -1,5 +1,5 @@ -e9a5f7314d6ae2ef16713335df2b5903 *tests/data/fate/matroska-mastering-display-metadata.matroska -1669571 tests/data/fate/matroska-mastering-display-metadata.matroska +a4924bfe22ed0c72b0eddc353bbee10c *tests/data/fate/matroska-mastering-display-metadata.matroska +1669615 tests/data/fate/matroska-mastering-display-metadata.matroska #extradata 0: 4, 0x040901a3 #extradata 3: 200, 0x506463a8 #tb 0: 1/1000 diff --git a/tests/ref/fate/matroska-move-cues-to-front b/tests/ref/fate/matroska-move-cues-to-front index 79ccc2fd93..ce3b9fce92 100644 --- a/tests/ref/fate/matroska-move-cues-to-front +++ b/tests/ref/fate/matroska-move-cues-to-front @@ -1,5 +1,5 @@ -74a5ed3f0b14112322c8bf3e94d6e98b *tests/data/fate/matroska-move-cues-to-front.matroska -23210297 tests/data/fate/matroska-move-cues-to-front.matroska +03ed7fcf99dd993ebb9bc9c6c93ba73e *tests/data/fate/matroska-move-cues-to-front.matroska +23210319 tests/data/fate/matroska-move-cues-to-front.matroska #tb 0: 1/1000 #media_type 0: audio #codec_id 0: pcm_s24be diff --git a/tests/ref/fate/matroska-mpegts-remux b/tests/ref/fate/matroska-mpegts-remux index af41b57af1..1f211dfc29 100644 --- a/tests/ref/fate/matroska-mpegts-remux +++ b/tests/ref/fate/matroska-mpegts-remux @@ -1,5 +1,5 @@ -ca1b91e49b6e238b641007c186d8f424 *tests/data/fate/matroska-mpegts-remux.matroska -6502 tests/data/fate/matroska-mpegts-remux.matroska +53424355db1d78441b62ad114d6ea502 *tests/data/fate/matroska-mpegts-remux.matroska +6524 tests/data/fate/matroska-mpegts-remux.matroska #tb 0: 1/1000 #media_type 0: audio #codec_id 0: ac3 diff --git a/tests/ref/fate/matroska-ms-mode b/tests/ref/fate/matroska-ms-mode index 0a42ab0748..b12e9ac9f2 100644 --- a/tests/ref/fate/matroska-ms-mode +++ b/tests/ref/fate/matroska-ms-mode @@ -1,5 +1,5 @@ -7f0b825626a028765098222816ba56b8 *tests/data/fate/matroska-ms-mode.matroska -413094 tests/data/fate/matroska-ms-mode.matroska +f3b1b804d40d70d012e85ba6d03ea8f1 *tests/data/fate/matroska-ms-mode.matroska +413116 tests/data/fate/matroska-ms-mode.matroska #extradata 0: 40, 0x54290c93 #extradata 1: 114, 0xb6c80771 #tb 0: 1/1000 diff --git a/tests/ref/fate/matroska-ogg-opus-remux b/tests/ref/fate/matroska-ogg-opus-remux index cd3eade361..c70c58a697 100644 --- a/tests/ref/fate/matroska-ogg-opus-remux +++ b/tests/ref/fate/matroska-ogg-opus-remux @@ -1,5 +1,5 @@ -b602a1a4aaa4fbca4b8aaf39b66d7235 *tests/data/fate/matroska-ogg-opus-remux.matroska -10204 tests/data/fate/matroska-ogg-opus-remux.matroska +d891990279e6ba202448f9fffde52d3f *tests/data/fate/matroska-ogg-opus-remux.matroska +10215 tests/data/fate/matroska-ogg-opus-remux.matroska #extradata 0: 19, 0x399c0471 #tb 0: 1/1000 #media_type 0: audio @@ -57,7 +57,7 @@ dts_time=-0.007000 duration=20 duration_time=0.020000 size=402 -pos=544 +pos=555 flags=K__ [/PACKET] [PACKET] @@ -70,7 +70,7 @@ dts_time=0.013000 duration=20 duration_time=0.020000 size=216 -pos=953 +pos=964 flags=K__ [/PACKET] [PACKET] @@ -83,7 +83,7 @@ dts_time=0.033000 duration=20 duration_time=0.020000 size=215 -pos=1176 +pos=1187 flags=K__ [/PACKET] [STREAM] diff --git a/tests/ref/fate/matroska-opus-remux b/tests/ref/fate/matroska-opus-remux index 975510e167..f5dcbe164e 100644 --- a/tests/ref/fate/matroska-opus-remux +++ b/tests/ref/fate/matroska-opus-remux @@ -1,5 +1,5 @@ -fe0258eb0d4b525203ea240c87a154d3 *tests/data/fate/matroska-opus-remux.matroska -9359 tests/data/fate/matroska-opus-remux.matroska +dc14cd32921d86e03c155bb745edf44b *tests/data/fate/matroska-opus-remux.matroska +9370 tests/data/fate/matroska-opus-remux.matroska #extradata 0: 19, 0x3a04048f #tb 0: 1/1000 #media_type 0: audio @@ -68,7 +68,7 @@ dts_time=-0.007000 duration=20 duration_time=0.020000 size=320 -pos=500 +pos=511 flags=K__ [/PACKET] [PACKET] @@ -81,7 +81,7 @@ dts_time=0.014000 duration=20 duration_time=0.020000 size=159 -pos=827 +pos=838 flags=K__ [/PACKET] [PACKET] @@ -94,7 +94,7 @@ dts_time=0.034000 duration=20 duration_time=0.020000 size=148 -pos=993 +pos=1004 flags=K__ [/PACKET] [STREAM] diff --git a/tests/ref/fate/matroska-pgs-remux b/tests/ref/fate/matroska-pgs-remux index a086111495..482357b899 100644 --- a/tests/ref/fate/matroska-pgs-remux +++ b/tests/ref/fate/matroska-pgs-remux @@ -1,5 +1,5 @@ -d39daa393d66ae0b0c153be045897585 *tests/data/fate/matroska-pgs-remux.matroska -49748 tests/data/fate/matroska-pgs-remux.matroska +60161b7f8af39a8d280cc8b1f8693129 *tests/data/fate/matroska-pgs-remux.matroska +49759 tests/data/fate/matroska-pgs-remux.matroska #tb 0: 1/1000 #media_type 0: subtitle #codec_id 0: hdmv_pgs_subtitle diff --git a/tests/ref/fate/matroska-pgs-remux-durations b/tests/ref/fate/matroska-pgs-remux-durations index 37494cd98f..6280110948 100644 --- a/tests/ref/fate/matroska-pgs-remux-durations +++ b/tests/ref/fate/matroska-pgs-remux-durations @@ -1,5 +1,5 @@ -27af80eecea4f15f415f22841bc699d5 *tests/data/fate/matroska-pgs-remux-durations.matroska -49760 tests/data/fate/matroska-pgs-remux-durations.matroska +2c78a4337f61f24175a8ffe06087e581 *tests/data/fate/matroska-pgs-remux-durations.matroska +49771 tests/data/fate/matroska-pgs-remux-durations.matroska #tb 0: 1/1000 #media_type 0: subtitle #codec_id 0: hdmv_pgs_subtitle diff --git a/tests/ref/fate/matroska-qt-mode b/tests/ref/fate/matroska-qt-mode index d54f5d167c..e14584893b 100644 --- a/tests/ref/fate/matroska-qt-mode +++ b/tests/ref/fate/matroska-qt-mode @@ -1,5 +1,5 @@ -c3483a76cd0bfbaf80a32dad041b6f52 *tests/data/fate/matroska-qt-mode.matroska -1884232 tests/data/fate/matroska-qt-mode.matroska +a976ac0fd5c1ca916280f64525d12c10 *tests/data/fate/matroska-qt-mode.matroska +1884254 tests/data/fate/matroska-qt-mode.matroska #extradata 0: 90, 0x817d0185 #tb 0: 1/1000 #media_type 0: video diff --git a/tests/ref/fate/matroska-spherical-mono-remux b/tests/ref/fate/matroska-spherical-mono-remux index c65d206e91..0940e3ea86 100644 --- a/tests/ref/fate/matroska-spherical-mono-remux +++ b/tests/ref/fate/matroska-spherical-mono-remux @@ -1,5 +1,5 @@ -dfc2e196ca14cce155b1a081a0628fd3 *tests/data/fate/matroska-spherical-mono-remux.matroska -161562 tests/data/fate/matroska-spherical-mono-remux.matroska +281555d95fca08f3ba103eefa1c22b54 *tests/data/fate/matroska-spherical-mono-remux.matroska +161584 tests/data/fate/matroska-spherical-mono-remux.matroska #extradata 0: 43, 0x2b0e0d7b #extradata 1: 43, 0x2b0e0d7b #tb 0: 1/1000 diff --git a/tests/ref/fate/matroska-vp8-alpha-remux b/tests/ref/fate/matroska-vp8-alpha-remux index 1fad574edd..86024b3477 100644 --- a/tests/ref/fate/matroska-vp8-alpha-remux +++ b/tests/ref/fate/matroska-vp8-alpha-remux @@ -1,5 +1,5 @@ -3339f3fa157bdd63f22f5a579f308c89 *tests/data/fate/matroska-vp8-alpha-remux.matroska -235015 tests/data/fate/matroska-vp8-alpha-remux.matroska +635702724143e90d2a3ec457f65676cf *tests/data/fate/matroska-vp8-alpha-remux.matroska +235026 tests/data/fate/matroska-vp8-alpha-remux.matroska #tb 0: 1/1000 #media_type 0: video #codec_id 0: vp8 diff --git a/tests/ref/fate/matroska-zero-length-block b/tests/ref/fate/matroska-zero-length-block index 3987cc14c4..0f90ccbdd7 100644 --- a/tests/ref/fate/matroska-zero-length-block +++ b/tests/ref/fate/matroska-zero-length-block @@ -1,5 +1,5 @@ -f577fad2fff41d6e055f605281582b8d *tests/data/fate/matroska-zero-length-block.matroska -634 tests/data/fate/matroska-zero-length-block.matroska +b9a8a67ffdba18eec1c04827d3d404ca *tests/data/fate/matroska-zero-length-block.matroska +645 tests/data/fate/matroska-zero-length-block.matroska #tb 0: 1/1000 #media_type 0: subtitle #codec_id 0: subrip diff --git a/tests/ref/fate/rgb24-mkv b/tests/ref/fate/rgb24-mkv index d037c01b32..484198aaa4 100644 --- a/tests/ref/fate/rgb24-mkv +++ b/tests/ref/fate/rgb24-mkv @@ -1,5 +1,5 @@ -69dc9d35fdfadccb28c7baf401776ec3 *tests/data/fate/rgb24-mkv.matroska -58215 tests/data/fate/rgb24-mkv.matroska +4801308890e7a9db51fc13b05f817165 *tests/data/fate/rgb24-mkv.matroska +58226 tests/data/fate/rgb24-mkv.matroska #tb 0: 1/10 #media_type 0: video #codec_id 0: rawvideo diff --git a/tests/ref/fate/shortest-sub b/tests/ref/fate/shortest-sub index b6571b4f32..4db0e13328 100644 --- a/tests/ref/fate/shortest-sub +++ b/tests/ref/fate/shortest-sub @@ -1,5 +1,5 @@ -d334a0eee71351ddad0a63011107909f *tests/data/fate/shortest-sub.matroska -139240 tests/data/fate/shortest-sub.matroska +791a2ce136bef538491bbe31ac0134b1 *tests/data/fate/shortest-sub.matroska +139262 tests/data/fate/shortest-sub.matroska #extradata 1: 167, 0xf7272d5f #tb 0: 1/1000 #media_type 0: video diff --git a/tests/ref/lavf-fate/av1.mkv b/tests/ref/lavf-fate/av1.mkv index 382e3aeee3..685fd70811 100644 --- a/tests/ref/lavf-fate/av1.mkv +++ b/tests/ref/lavf-fate/av1.mkv @@ -1,3 +1,3 @@ -7d2c39dd98d5776425a4015e1eead6c6 *tests/data/lavf-fate/lavf.av1.mkv -55646 tests/data/lavf-fate/lavf.av1.mkv +279268e8d6ffcc2299e725a756bbb1a0 *tests/data/lavf-fate/lavf.av1.mkv +55657 tests/data/lavf-fate/lavf.av1.mkv tests/data/lavf-fate/lavf.av1.mkv CRC=0x7c27cc15 diff --git a/tests/ref/lavf/mka b/tests/ref/lavf/mka index 93a0b8f71a..40b1f07f9b 100644 --- a/tests/ref/lavf/mka +++ b/tests/ref/lavf/mka @@ -1,3 +1,3 @@ -77db16a9fe1c42a230c85124bfb40cad *tests/data/lavf/lavf.mka -43573 tests/data/lavf/lavf.mka +dffd74918d13be7dd07e83832de3a15c *tests/data/lavf/lavf.mka +43584 tests/data/lavf/lavf.mka tests/data/lavf/lavf.mka CRC=0x3a1da17e diff --git a/tests/ref/lavf/mkv b/tests/ref/lavf/mkv index fbd40fc1cb..0aeb7cfae6 100644 --- a/tests/ref/lavf/mkv +++ b/tests/ref/lavf/mkv @@ -1,3 +1,3 @@ -32b87b6adbe76df1008bc074f82fabb0 *tests/data/lavf/lavf.mkv -320417 tests/data/lavf/lavf.mkv +fde4f0580865684b878f0e13997213af *tests/data/lavf/lavf.mkv +320439 tests/data/lavf/lavf.mkv tests/data/lavf/lavf.mkv CRC=0xec6c3c68 diff --git a/tests/ref/lavf/mkv_attachment b/tests/ref/lavf/mkv_attachment index 2966a827cc..6ab72b9a45 100644 --- a/tests/ref/lavf/mkv_attachment +++ b/tests/ref/lavf/mkv_attachment @@ -1,3 +1,3 @@ -41739c51209d94b4763f9dbe4d1e1dc9 *tests/data/lavf/lavf.mkv_attachment -472567 tests/data/lavf/lavf.mkv_attachment +c75c844f592d44c2a79ff5fc1e8179e0 *tests/data/lavf/lavf.mkv_attachment +472589 tests/data/lavf/lavf.mkv_attachment tests/data/lavf/lavf.mkv_attachment CRC=0xec6c3c68 From patchwork Fri Mar 24 15:52:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 40807 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:d046:b0:cd:afd7:272c with SMTP id hv6csp722125pzb; Fri, 24 Mar 2023 08:53:40 -0700 (PDT) X-Google-Smtp-Source: AKy350ZpfpIeV/pBweRVPjo/GrXACD3yWKQG5cfXcTLoJdrJyq41tHBwFkPm/8jbR9vWYG6iMmYy X-Received: by 2002:a17:906:8296:b0:933:868:413a with SMTP id h22-20020a170906829600b009330868413amr3073338ejx.15.1679673220047; Fri, 24 Mar 2023 08:53:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679673220; cv=none; d=google.com; s=arc-20160816; b=FhUZ04/DjK20QCE9ziCr32IB0xa46A8Jmix6fGIrWCOFyU77phMjHvjYyC314VroN9 cmbPcF9a2zAT6tcY3CKOh3u3Ge7NollQwGS3MRsCyEMoXQl8YGBu84dM0oyLEdMKVXlX RznyxZuoP0VWb02++5iN/HLemGGQj5KJJEUYWsytT/TCGE6LBdXFUHiuKDKK/FdObWo1 WrnAQait5oCb8hIurTKFZLy/vXZzQKlTEUmGwiC2c8Ib+nq/xqeIJ+sSyOH5GXKxmgQ5 kXvartk39e9tOy5D8e6RoLbOVxKLtMx39ja42AlSvax0J9PCq19vCLjeWFaB6iBeVri/ Nr7A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=6r+b/1zAck6ZtzrV1QaaXAq7brxbw/kgmIZ/zyED63Y=; b=aq6CLYo9/US17bToQ3uhKIcfK+Us96hYYWx7C7ZA8tFyDY2K8KIRh4pUySNRZvuKaQ Mu603Vpw1t9LiB11DX6k7IwciwggGHAng3AXV0+3Q13EkX+P4KkDm3ufD9lkijHCQtt2 ReknwqJsXXanzZDxZXfSLu9W4rXHPdxnZIDdKAGs95053lhrhCsdD0sMOrk2C6mKLvfG qUbH/By1Wo7HMMZvsr8Dkm43yxqlaNv938FTjqd83fewy+OVvJ51LTaEryeS68pftZiX 6wRSIC3dsa9a+hrGw1k5Tv6KkY9c53aUX2jJOZEqrsDkcP+lFiqJff1rrs7FjSN6rX0I 1KBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=COeoXpRK; 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 sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id rs1-20020a170907036100b0093b46e853fdsi7118003ejb.771.2023.03.24.08.53.37; Fri, 24 Mar 2023 08:53:40 -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 header.s=20210112 header.b=COeoXpRK; 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 sp=QUARANTINE 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 7903768C87A; Fri, 24 Mar 2023 17:52:53 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oa1-f46.google.com (mail-oa1-f46.google.com [209.85.160.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D73EA68C86C for ; Fri, 24 Mar 2023 17:52:44 +0200 (EET) Received: by mail-oa1-f46.google.com with SMTP id 586e51a60fabf-17ec8963db8so2141840fac.8 for ; Fri, 24 Mar 2023 08:52:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679673163; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=9zmyNHAQq+0mI+p19fy4yyUeYtxFiWKdMSoyqZSDSvQ=; b=COeoXpRKuygiwdOgntjPN5NMI4HI4aka2PoxNaQd2h8tsFYkLeWg06fNG5WOLQ+HNS NissIexOX8UHBx8Kke7NCFz9p5J0/wmMr5u0XcHuzEDbdy/OzrJQsFUxlORxUodC5vpY TEPYWwWg3Q456XNXHtjp1RoUA9cZCt42jo4UTAd2f0YGcxIC/S5joGCdbcCi6Qi8TnCF wGLqOHLRX6vtz3Wsh/r1HAnrV9PZo85o9JWNnsAwY5vypFCeg7eoTQV7bWm+Ar26b0S1 0ID8RK5vULiX9NATStiYkKgeq8RDPhIITttcdyJD9E1fAKUlut4a3eNA81CBz7ax98wd BMnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679673163; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9zmyNHAQq+0mI+p19fy4yyUeYtxFiWKdMSoyqZSDSvQ=; b=L/eob5aICwntbIQEq8gEF6jRzHJyOx+BR73b9vrnRPcKY7s0FigcqwccwPHY0Xx4By j3Tgd3xA8pJyE3s2UUT/17cCq0KsOoM8pz0x/3JZgi6C4KRKoNDK6N4JidEncfTHurPd xf9fYjAonBzTP1g4bg8fHOIfVoNUD65vrve1G8t8h28pAzRAU/S6EJDbZjLlVvSR0lY4 HMJTBF5l9+NsA6I4hRK84p0Oj/Uay/p4rM7BksHh4cSMxFa7x3gUD7+5m1QZDCmiuBSa /bH77b/c+pwtNfYObKrHWwSWwlSLuGY/Ao0brT4GzPCSSgC1S5nCCK5HV4nWCGAIE0KI BWFQ== X-Gm-Message-State: AO0yUKUat0Hy24QGZWmrLB5uYv13x9ofrqoFp6Yf38SvJmEzxIIQfGnP zkuq7ZQT2PLuqz+1J9j57o+RadiHk4o= X-Received: by 2002:a05:6870:14c1:b0:177:c383:fade with SMTP id l1-20020a05687014c100b00177c383fademr2116403oab.21.1679673163257; Fri, 24 Mar 2023 08:52:43 -0700 (PDT) Received: from localhost.localdomain (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id yx24-20020a056871251800b0017eb6cc4609sm1475940oab.39.2023.03.24.08.52.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Mar 2023 08:52:42 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Fri, 24 Mar 2023 12:52:13 -0300 Message-Id: <20230324155213.3493-7-jamrial@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230324155213.3493-1-jamrial@gmail.com> References: <20230324155213.3493-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 7/7] fate/matroska: add HDR10+ muxing tests X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: NBAT1KzLWcy+ Signed-off-by: James Almer --- tests/fate/matroska.mak | 8 ++++++++ tests/ref/fate/matroska-hdr10-plus-remux | 24 ++++++++++++++++++++++++ tests/ref/fate/webm-hdr10-plus-remux | 24 ++++++++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 tests/ref/fate/matroska-hdr10-plus-remux create mode 100644 tests/ref/fate/webm-hdr10-plus-remux diff --git a/tests/fate/matroska.mak b/tests/fate/matroska.mak index 39137ad4be..a2e43c7c3a 100644 --- a/tests/fate/matroska.mak +++ b/tests/fate/matroska.mak @@ -217,6 +217,14 @@ FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, WEBM MATROSKA, WEBVTT_DEMUXER) \ += fate-webm-webvtt-remux fate-webm-webvtt-remux: CMD = transcode webvtt $(TARGET_SAMPLES)/sub/WebVTT_capability_tester.vtt webm "-map 0 -map 0 -map 0 -map 0 -c:s copy -disposition:0 original+descriptions+hearing_impaired -disposition:1 lyrics+default+metadata -disposition:2 comment+forced -disposition:3 karaoke+captions+dub" "-map 0:0 -map 0:1 -c copy" "-show_entries stream_disposition:stream=index,codec_name:packet=stream_index,pts:packet_side_data_list -show_data_hash CRC32" +FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, WEBM MATROSKA, VP9_PARSER) \ + += fate-webm-hdr10-plus-remux +fate-webm-hdr10-plus-remux: CMD = transcode webm $(TARGET_SAMPLES)/mkv/hdr10_plus_vp9_sample.mkv webm "-map 0 -c:v copy" "-map 0 -c:v copy" "-show_packets" + +FATE_MATROSKA_FFMPEG_FFPROBE-$(call REMUX, MATROSKA, VP9_PARSER) \ + += fate-matroska-hdr10-plus-remux +fate-matroska-hdr10-plus-remux: CMD = transcode webm $(TARGET_SAMPLES)/mkv/hdr10_plus_vp9_sample.mkv matroska "-map 0 -c:v copy" "-map 0 -c:v copy" "-show_packets" + FATE_SAMPLES_AVCONV += $(FATE_MATROSKA-yes) FATE_SAMPLES_FFPROBE += $(FATE_MATROSKA_FFPROBE-yes) FATE_SAMPLES_FFMPEG_FFPROBE += $(FATE_MATROSKA_FFMPEG_FFPROBE-yes) diff --git a/tests/ref/fate/matroska-hdr10-plus-remux b/tests/ref/fate/matroska-hdr10-plus-remux new file mode 100644 index 0000000000..606c096c26 --- /dev/null +++ b/tests/ref/fate/matroska-hdr10-plus-remux @@ -0,0 +1,24 @@ +0f941512f69b1cc0ac27f3375e56a0cc *tests/data/fate/matroska-hdr10-plus-remux.matroska +13892 tests/data/fate/matroska-hdr10-plus-remux.matroska +#tb 0: 1/1000 +#media_type 0: video +#codec_id 0: vp9 +#dimensions 0: 1280x720 +#sar 0: 1/1 +0, 0, 0, 40, 13350, 0x5f64e443, S=1, 11304 +[PACKET] +codec_type=video +stream_index=0 +pts=0 +pts_time=0.000000 +dts=0 +dts_time=0.000000 +duration=40 +duration_time=0.040000 +size=13350 +pos=436 +flags=K__ +[SIDE_DATA] +side_data_type=HDR10+ Dynamic Metadata (SMPTE 2094-40) +[/SIDE_DATA] +[/PACKET] diff --git a/tests/ref/fate/webm-hdr10-plus-remux b/tests/ref/fate/webm-hdr10-plus-remux new file mode 100644 index 0000000000..c41a7619db --- /dev/null +++ b/tests/ref/fate/webm-hdr10-plus-remux @@ -0,0 +1,24 @@ +30923c8d916f5719f62727f24957974f *tests/data/fate/webm-hdr10-plus-remux.webm +13843 tests/data/fate/webm-hdr10-plus-remux.webm +#tb 0: 1/1000 +#media_type 0: video +#codec_id 0: vp9 +#dimensions 0: 1280x720 +#sar 0: 1/1 +0, 0, 0, 40, 13350, 0x5f64e443, S=1, 11304 +[PACKET] +codec_type=video +stream_index=0 +pts=0 +pts_time=0.000000 +dts=0 +dts_time=0.000000 +duration=40 +duration_time=0.040000 +size=13350 +pos=393 +flags=K__ +[SIDE_DATA] +side_data_type=HDR10+ Dynamic Metadata (SMPTE 2094-40) +[/SIDE_DATA] +[/PACKET]