From patchwork Sun May 3 22:05:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Thompson X-Patchwork-Id: 19486 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:3c87:0:0:0:0:0 with SMTP id j129csp3060489yba; Sun, 3 May 2020 15:06:15 -0700 (PDT) X-Google-Smtp-Source: APiQypJYgZxn8AaDsIUf7CrMUBtQf74CvaUNqwEAUB6TWWrJeGyMRDXL/TBXiTRj5GxQwEl3TdQa X-Received: by 2002:a1c:1f8e:: with SMTP id f136mr10876730wmf.166.1588543575591; Sun, 03 May 2020 15:06:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588543575; cv=none; d=google.com; s=arc-20160816; b=tSdMIuRl5C/JqB17WWhvRw/CmNyjOUY0GmNma67GOuvEX+ljN9gyuFX6vIuu1sRPVF z6zipbz4wVqv193j4cE36PxIb+iZYwCK99dZAtT39E7NTSbKermS2UJH8E3QDGHD57cr uCLkQgJ8eEYtP30Id/3Dw5yuNJjEtSD4UdZua2PYwDESfbMX/WCBH3RopYiKCTAx1Ylp 6v8EDp53G25n8Vhor9vhVMGdJm6DSg87nUvTT7q9ps+7+c+ZzyWwOmXEEyCjqF+e1AMK R2gZZugB2GFs1/U+x0IAfvtvmOG1Omv3TINmI//tnMwg0dJfUxOM9elnAqjevs5Mz3cc U/fg== 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=Wq6KrruQLcaeFE5boNjR/cbnGvckY++lJfzfV7LGYzU=; b=HVyKscKTN45UzamTNVtwx+0iGtjLl8ofId/qLpzoMjugp2v62R1inGNITAb9ps945c /NmfhrYZ186Kc4gdnqsJoYTbvx8qwCVBanT5au7FM4SGsLmwPtASACN8XprPbgFQ1Hv+ mlj036ikpQ2gS8bRVvwGyPfM1c2jlEuDLL8t8gPk5NyGGE5L1IcMs093RTxWWDamUvun uFwMo7lpEJ5+3O+hHQrKUVyuxfD4V51u+W7NJj2Bx2VGtSJ33Tz6a2oO71DS1kOBKBTY EMQStzB1QjyG9SOaSMopU0I0xgvyXYSnpFXkutWSBb0Rk06xCTQLC8zN8OQmPusKMxaY 27iQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@jkqxz-net.20150623.gappssmtp.com header.s=20150623 header.b=tulH8RzW; 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 l23si5849914wme.88.2020.05.03.15.06.14; Sun, 03 May 2020 15:06:15 -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=@jkqxz-net.20150623.gappssmtp.com header.s=20150623 header.b=tulH8RzW; 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 9F81468C071; Mon, 4 May 2020 01:06:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DF1F068BD3D for ; Mon, 4 May 2020 01:05:53 +0300 (EEST) Received: by mail-wm1-f41.google.com with SMTP id g12so6670704wmh.3 for ; Sun, 03 May 2020 15:05:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jkqxz-net.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=t+vu1XH0oOfsoXiS64/Cw0y1bardXyu599syp/ha150=; b=tulH8RzW+2riQppE4j6bsSiKpCmpUM4+KTnM0qX5SIyvGFmJnQgf23qzk0emIh6fim s9mgdiscziz276DtI/1Hj0Y/WxUS63iQ26TLgnLjEN1A3nIQxcx3Rf+OJzH/pIdEcMee UuhygUGsmVzTvcMoXFZw87DeS7iKgb3BAFWYwJcjKHb0/hg2qid7X7nI5VZwY9TEK7h2 lz9385nrjIBZNqu1HXTlq6HGxH7BOrkiJUXZsd1GbNNobwJHCay292vovPKAtosK3qtt FCNUxVI4MJ97aoyw7PYp9tk/RWifAcJkJgbe9scR4hQ94qgOA/9o4yrFzK4/MaSR1tGh rZhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=t+vu1XH0oOfsoXiS64/Cw0y1bardXyu599syp/ha150=; b=hKDfNUldHWzEwGG4NDp0RInDjkc9BI+4rkOjeZRZRoi+JeKJtBOfe4KVVM9VWW7GOj roU+dbPefYLPRXGxFQfvJRaDquveK17PysIiV4jmPE7nviFTecwtfWZ2yD7IRMPbx5pS lJ4O3zs2D4zdGhlf8fmBSEAjsSYxreYgNu0YoacC2VmJrxe7HkjLD0RWiHm8G5HpCuBq y1HngID+9RdR7kCSfcGWmO7xgkgnzmQspB3mBGIO02eXvvZhyZ9L3ci0yqPix6zrUo+2 CyR8o+jg7Uv1nh2PdHdL1gV7Sqwlb5TnFGen8zEe46xLS2juLR7ury9PWcAwTl7cUNUV Mnxw== X-Gm-Message-State: AGi0PubeW+4xTNgdmU7l3WYFMRM4O9vSb8tyVv+xGfjW4PFGFONM+bpW oK2dlc1+ZpWH8EyNmUDG92bVRfEF7WQ= X-Received: by 2002:a7b:c7d6:: with SMTP id z22mr11817535wmk.73.1588543552950; Sun, 03 May 2020 15:05:52 -0700 (PDT) Received: from rywe.jkqxz.net (cpc91242-cmbg18-2-0-cust650.5-4.cable.virginm.net. [82.8.130.139]) by smtp.gmail.com with ESMTPSA id a24sm10307285wmb.24.2020.05.03.15.05.52 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 03 May 2020 15:05:52 -0700 (PDT) From: Mark Thompson To: ffmpeg-devel@ffmpeg.org Date: Sun, 3 May 2020 23:05:28 +0100 Message-Id: <20200503220548.23543-2-sw@jkqxz.net> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200503220548.23543-1-sw@jkqxz.net> References: <20200503220548.23543-1-sw@jkqxz.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v5 02/22] cbs: Ensure that reference fields always follow the associated pointer X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: hfdUrLKL5y/G Content-Length: 8924 Having these together allows us to find both pointers given the address of only one of them. --- libavcodec/cbs_av1.h | 6 +++--- libavcodec/cbs_h264.h | 18 +++++++++--------- libavcodec/cbs_h265.h | 16 ++++++++-------- libavcodec/cbs_jpeg.h | 2 +- libavcodec/cbs_mpeg2.h | 10 +++++----- libavcodec/cbs_vp9.h | 2 +- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/libavcodec/cbs_av1.h b/libavcodec/cbs_av1.h index fdc629b00c..8925c45772 100644 --- a/libavcodec/cbs_av1.h +++ b/libavcodec/cbs_av1.h @@ -284,8 +284,8 @@ typedef struct AV1RawFrameHeader { typedef struct AV1RawTileData { uint8_t *data; - size_t data_size; AVBufferRef *data_ref; + size_t data_size; } AV1RawTileData; typedef struct AV1RawTileGroup { @@ -346,8 +346,8 @@ typedef struct AV1RawMetadataITUTT35 { uint8_t itu_t_t35_country_code_extension_byte; uint8_t *payload; - size_t payload_size; AVBufferRef *payload_ref; + size_t payload_size; } AV1RawMetadataITUTT35; typedef struct AV1RawMetadataTimecode { @@ -379,8 +379,8 @@ typedef struct AV1RawMetadata { typedef struct AV1RawPadding { uint8_t *payload; - size_t payload_size; AVBufferRef *payload_ref; + size_t payload_size; } AV1RawPadding; diff --git a/libavcodec/cbs_h264.h b/libavcodec/cbs_h264.h index 9f7c2a0d30..65659ae52c 100644 --- a/libavcodec/cbs_h264.h +++ b/libavcodec/cbs_h264.h @@ -277,16 +277,16 @@ typedef struct H264RawSEIPanScanRect { typedef struct H264RawSEIUserDataRegistered { uint8_t itu_t_t35_country_code; uint8_t itu_t_t35_country_code_extension_byte; - uint8_t *data; - size_t data_length; + uint8_t *data; AVBufferRef *data_ref; + size_t data_length; } H264RawSEIUserDataRegistered; typedef struct H264RawSEIUserDataUnregistered { uint8_t uuid_iso_iec_11578[16]; - uint8_t *data; - size_t data_length; + uint8_t *data; AVBufferRef *data_ref; + size_t data_length; } H264RawSEIUserDataUnregistered; typedef struct H264RawSEIRecoveryPoint { @@ -334,9 +334,9 @@ typedef struct H264RawSEIPayload { H264RawSEIAlternativeTransferCharacteristics alternative_transfer_characteristics; struct { - uint8_t *data; - size_t data_length; + uint8_t *data; AVBufferRef *data_ref; + size_t data_length; } other; } payload; } H264RawSEIPayload; @@ -429,10 +429,10 @@ typedef struct H264RawSliceHeader { typedef struct H264RawSlice { H264RawSliceHeader header; - uint8_t *data; - size_t data_size; - int data_bit_start; + uint8_t *data; AVBufferRef *data_ref; + size_t data_size; + int data_bit_start; } H264RawSlice; typedef struct H264RawFiller { diff --git a/libavcodec/cbs_h265.h b/libavcodec/cbs_h265.h index ad746bf35f..f5eb5af5b2 100644 --- a/libavcodec/cbs_h265.h +++ b/libavcodec/cbs_h265.h @@ -184,8 +184,8 @@ typedef struct H265RawVUI { typedef struct H265RawPSExtensionData { uint8_t *data; - size_t bit_length; AVBufferRef *data_ref; + size_t bit_length; } H265RawPSExtensionData; typedef struct H265RawVPS { @@ -541,10 +541,10 @@ typedef struct H265RawSliceHeader { typedef struct H265RawSlice { H265RawSliceHeader header; - uint8_t *data; - size_t data_size; - int data_bit_start; + uint8_t *data; AVBufferRef *data_ref; + size_t data_size; + int data_bit_start; } H265RawSlice; @@ -600,15 +600,15 @@ typedef struct H265RawSEIUserDataRegistered { uint8_t itu_t_t35_country_code; uint8_t itu_t_t35_country_code_extension_byte; uint8_t *data; - size_t data_length; AVBufferRef *data_ref; + size_t data_length; } H265RawSEIUserDataRegistered; typedef struct H265RawSEIUserDataUnregistered { uint8_t uuid_iso_iec_11578[16]; uint8_t *data; - size_t data_length; AVBufferRef *data_ref; + size_t data_length; } H265RawSEIUserDataUnregistered; typedef struct H265RawSEIRecoveryPoint { @@ -710,9 +710,9 @@ typedef struct H265RawSEIPayload { alternative_transfer_characteristics; H265RawSEIAlphaChannelInfo alpha_channel_info; struct { - uint8_t *data; - size_t data_length; + uint8_t *data; AVBufferRef *data_ref; + size_t data_length; } other; } payload; } H265RawSEIPayload; diff --git a/libavcodec/cbs_jpeg.h b/libavcodec/cbs_jpeg.h index ff1961106f..6305f0ee86 100644 --- a/libavcodec/cbs_jpeg.h +++ b/libavcodec/cbs_jpeg.h @@ -80,8 +80,8 @@ typedef struct JPEGRawScanHeader { typedef struct JPEGRawScan { JPEGRawScanHeader header; uint8_t *data; - size_t data_size; AVBufferRef *data_ref; + size_t data_size; } JPEGRawScan; typedef struct JPEGRawQuantisationTable { diff --git a/libavcodec/cbs_mpeg2.h b/libavcodec/cbs_mpeg2.h index 5bcafd09f0..f7075a460d 100644 --- a/libavcodec/cbs_mpeg2.h +++ b/libavcodec/cbs_mpeg2.h @@ -76,9 +76,9 @@ typedef struct MPEG2RawSequenceHeader { typedef struct MPEG2RawUserData { uint8_t user_data_start_code; - uint8_t *user_data; - size_t user_data_length; + uint8_t *user_data; AVBufferRef *user_data_ref; + size_t user_data_length; } MPEG2RawUserData; typedef struct MPEG2RawSequenceExtension { @@ -206,10 +206,10 @@ typedef struct MPEG2RawSliceHeader { typedef struct MPEG2RawSlice { MPEG2RawSliceHeader header; - uint8_t *data; - size_t data_size; - int data_bit_start; + uint8_t *data; AVBufferRef *data_ref; + size_t data_size; + int data_bit_start; } MPEG2RawSlice; typedef struct MPEG2RawSequenceEnd { diff --git a/libavcodec/cbs_vp9.h b/libavcodec/cbs_vp9.h index 40e62476ed..af15eb4bac 100644 --- a/libavcodec/cbs_vp9.h +++ b/libavcodec/cbs_vp9.h @@ -165,8 +165,8 @@ typedef struct VP9RawFrame { VP9RawFrameHeader header; uint8_t *data; - size_t data_size; AVBufferRef *data_ref; + size_t data_size; } VP9RawFrame; typedef struct VP9RawSuperframeIndex {