From patchwork Fri Sep 13 12:16:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Tomas_H=C3=A4rdin?= X-Patchwork-Id: 51565 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:612c:2986:b0:48e:c0f8:d0de with SMTP id ih6csp255068vqb; Fri, 13 Sep 2024 05:16:20 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWdxiYurWXySZrBR7yM91VUGW72ig8/xbISYqEoccapWi1gSODUJEv31Jwu5A4qShpNbOp7C6c0JelAnfNZ8+HS@gmail.com X-Google-Smtp-Source: AGHT+IHLImtxao2h/H8sbx7pYieJ04TBR9hnFfqWkG4H9nQ6CebKRMwpg2PD70Rb2I1XnnR5MCUT X-Received: by 2002:a17:907:97c8:b0:a90:17fc:3f60 with SMTP id a640c23a62f3a-a902949aeacmr265279666b.8.1726229780248; Fri, 13 Sep 2024 05:16:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1726229780; cv=none; d=google.com; s=arc-20240605; b=lc0v57FkJtmsJMuHkcBl3t2rnjiCjs04Zs+H4waGSb8wvdp0ld025DCupnlmRWGdfm NqQGFfre7fUwb8B4fppCuS05FP5GWD4rRI8AFh/0spRhe7KeJmybvdpoAzogMtVFzv0b Un7zD0BRIA33v+o9cA/nc3hYOWTiX+gK/rPhgWycT4B+WZylAgtWrneeO1J8w+ezXFuk +3B5Ls3bd7UFWoahX0iu+uHhQtUDpE0E5YO2O8p8M+ajJOvUDGOQA+boyZzeeo5Jkf36 u7eiT38PlEH8vqAJRWs2WBF44Hx+quSdEHjLbNx3Xnuts0KoRB9C/yBvZ+DnZZys04gS hO3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:user-agent:date:to:from:message-id:delivered-to; bh=z/0WDjYegfJF3er4vDlFtwZ6vZeEYmLzxC82tuG3BpQ=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=YUBj0H9FNiI/KshjZKYaNLgsqsqJR9R7MsPURi8fECWCBYiEV4fWBCbCPJH7RvJXAH BVKEr4qtkvAFi3MTS8AfzHURdVbrxGfo81yGRlPJqYjffixJvUfX9VKsSGtXY7UEw/ZA ExEOaRFZ21jpB3bF2XdGgjJ8VQPk/4W5RCjhwJrdqiNO70cJ7xjXkIinALCPyvy86dKf CvImLTmzFwye9OAXbDwd18a6UX/maVvNjfIclXsIvxH+xH/3DSaHNS0QL6yMUFo6LRBO uSvlRH9ftxqjvqeZ8bAb4qCrviXB/Og7Kbg0aqnxV79q9sg90CksJVS7pNNn1qC7cgnq DggQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a8d25d98b79si1016423466b.979.2024.09.13.05.16.18; Fri, 13 Sep 2024 05:16:20 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4086C68DF2A; Fri, 13 Sep 2024 15:16:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from glom.nmugroup.com (glom.nmugroup.com [193.183.80.6]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 482AB68DD6E for ; Fri, 13 Sep 2024 15:16:08 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by glom.nmugroup.com (Postfix) with ESMTP id DC9DB542441B for ; Fri, 13 Sep 2024 14:16:07 +0200 (CEST) Received: from debian.lan (m77-218-230-140.cust.tele2.se [77.218.230.140]) (Authenticated sender: git01) by glom.nmugroup.com (Postfix) with ESMTPSA id 9FFD854228E3 for ; Fri, 13 Sep 2024 14:16:07 +0200 (CEST) Message-ID: <3ef5c36436349cd5957d0f200b6c64d5750673a1.camel@haerdin.se> From: Tomas =?iso-8859-1?q?H=E4rdin?= To: ffmpeg-devel@ffmpeg.org Date: Fri, 13 Sep 2024 14:16:06 +0200 User-Agent: Evolution 3.46.4-2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] lavf/mxfdec: Switch to mxf_metadata_read_table loop to FF_ARRAY_ELEMS, skip if read == NULL 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: jPm9M1TbG5ZU Passes fate-mxf /Tomas From c96a96dc1f245210997a7d21b158ce504bdf4c73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomas=20H=C3=A4rdin?= Date: Fri, 13 Sep 2024 14:09:56 +0200 Subject: [PATCH 1/2] lavf/mxfdec: Switch to mxf_metadata_read_table loop to FF_ARRAY_ELEMS, skip if read == NULL --- libavformat/mxfdec.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index ac63c0d5ad..65ffa0d6b8 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -328,7 +328,7 @@ typedef int MXFMetadataReadFunc(void *arg, AVIOContext *pb, int tag, int size, U typedef struct MXFMetadataReadTableEntry { const UID key; - MXFMetadataReadFunc *read; + MXFMetadataReadFunc *read; /* if NULL then skip KLV */ int ctx_size; enum MXFMetadataSetType type; } MXFMetadataReadTableEntry; @@ -3235,7 +3235,6 @@ static const MXFMetadataReadTableEntry mxf_metadata_read_table[] = { { { 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x04,0x01,0x02,0x02,0x00,0x00 }, mxf_read_cryptographic_context, sizeof(MXFCryptoContext), CryptoContext }, { { 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x02,0x01,0x01,0x10,0x01,0x00 }, mxf_read_index_table_segment, sizeof(MXFIndexTableSegment), IndexTableSegment }, { { 0x06,0x0e,0x2b,0x34,0x02,0x53,0x01,0x01,0x0d,0x01,0x01,0x01,0x01,0x01,0x23,0x00 }, mxf_read_essence_container_data, sizeof(MXFEssenceContainerData), EssenceContainerData }, - { { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }, NULL }, }; static int mxf_metadataset_init(MXFMetadataSet *ctx, enum MXFMetadataSetType type, MXFPartition *partition) @@ -3716,7 +3715,7 @@ static int mxf_read_header(AVFormatContext *s) mxf_read_random_index_pack(s); while (!avio_feof(s->pb)) { - const MXFMetadataReadTableEntry *metadata; + size_t x; ret = klv_read_packet(mxf, &klv, s->pb); if (ret < 0 || IS_KLV_KEY(klv.key, ff_mxf_random_index_pack_key)) { @@ -3762,14 +3761,19 @@ static int mxf_read_header(AVFormatContext *s) /* we're still parsing forward. proceed to parsing this partition pack */ } - for (metadata = mxf_metadata_read_table; metadata->read; metadata++) { + for (x = 0; x < FF_ARRAY_ELEMS(mxf_metadata_read_table); x++) { + const MXFMetadataReadTableEntry *metadata = &mxf_metadata_read_table[x]; if (IS_KLV_KEY(klv.key, metadata->key)) { - if ((ret = mxf_parse_klv(mxf, klv, metadata->read, metadata->ctx_size, metadata->type)) < 0) - return ret; + if (metadata->read) { + if ((ret = mxf_parse_klv(mxf, klv, metadata->read, metadata->ctx_size, metadata->type)) < 0) + return ret; + } else { + avio_skip(s->pb, klv.length); + } break; } } - if (!metadata->read) { + if (x >= FF_ARRAY_ELEMS(mxf_metadata_read_table)) { av_log(s, AV_LOG_VERBOSE, "Dark key " PRIxUID "\n", UID_ARG(klv.key)); avio_skip(s->pb, klv.length); -- 2.39.2