From patchwork Sun Feb 23 23:41:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Thompson X-Patchwork-Id: 17887 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 8BD4C44A08D for ; Mon, 24 Feb 2020 01:49:17 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6F1F268B502; Mon, 24 Feb 2020 01:49:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f193.google.com (mail-lj1-f193.google.com [209.85.208.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E27AF68B042 for ; Mon, 24 Feb 2020 01:49:15 +0200 (EET) Received: by mail-lj1-f193.google.com with SMTP id w1so8051732ljh.5 for ; Sun, 23 Feb 2020 15:49:15 -0800 (PST) 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=pq1n5+MfpfEnWYr+rMfOSLVlSHIPep+1WlGuvA/Iwbw=; b=KH1bsDXCgCzZzsBklV7wZHODY8t1D9hNsfswuvk0ExuHvWc252AsryMhZKT9rZbAGh Gp4hziBbcUpk5xtyHZ9Tigz+btduHJdPnSfl4rjvnSokL8Kt4y9PP2Uk+ssWPeCEXQ8b ujsV42ZHjJM1SOshHljJlBUuG1414QNinz83SHLbIfiQv+zGO0ib9gWEu6wHFZ4lG9Au HRqCXKk0G3aWAqk3mTU/ZTiPNwWv1VQASS3AXhdkaFb0n2miAsYUusx9rdA46yWGaqVw lBX/BmWNl7hfQCv2S3wtZB+xRVmFmbClmvPlW4onbKKHvu+nwbqM/ecxl3tGEgjX+M+Y tlIw== 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=pq1n5+MfpfEnWYr+rMfOSLVlSHIPep+1WlGuvA/Iwbw=; b=QDulphWH76/u+nXHCVY+UGksuEeYXmXCfmrZLnRwQehV4T6XL/3HdFPjb2QE/SDo6I mhxna/cfGj2J1V155US3BiABTlbO9AvLilXno9uMk/+xHq57goSVkqUcHIdf+mDZCTpY bbkYKk+gM5GoZLcA2z+8Si6j3lQyzuC4FZsJMqUhc4erhJIwJH0Z/iO2fnXsbl/Pgfv8 NiL9vyRIQnAKGcTjV8i4axWVNsw8K21b/MkKKgWNXj+WzH+bN+eloCf7IT281NI/qLLh AYg0nDqzlvOx7qC8pbTfNu76vmIAaG61fAHGuKwtWWn1HiuGgmAklI6mx0t93qm9QOnL gKbQ== X-Gm-Message-State: APjAAAV258OzFEQcCC3Ql60GC88PSC/RK3mudUqirAKMvmrcb8JS/0sa k+Z1DnzL4OfsItavahaYVAMXYZTAKio= X-Google-Smtp-Source: APXvYqzTG+Q3dD1rXJGrBEn+B1GAZI9sJ4cWICpTbm3ZDyiOpO60OllSPqwoU8JQ2XtD2Qg3Tf7e9A== X-Received: by 2002:a5d:5221:: with SMTP id i1mr58552337wra.44.1582501297173; Sun, 23 Feb 2020 15:41:37 -0800 (PST) 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 y131sm16358070wmc.13.2020.02.23.15.41.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Feb 2020 15:41:36 -0800 (PST) From: Mark Thompson To: ffmpeg-devel@ffmpeg.org Date: Sun, 23 Feb 2020 23:41:07 +0000 Message-Id: <20200223234124.17689-4-sw@jkqxz.net> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200223234124.17689-1-sw@jkqxz.net> References: <20200223234124.17689-1-sw@jkqxz.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v4 04/21] cbs: Add macros to support defining unit type tables 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" --- libavcodec/cbs_internal.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/libavcodec/cbs_internal.h b/libavcodec/cbs_internal.h index 615f514a85..2922878ed0 100644 --- a/libavcodec/cbs_internal.h +++ b/libavcodec/cbs_internal.h @@ -166,6 +166,30 @@ int ff_cbs_write_signed(CodedBitstreamContext *ctx, PutBitContext *pbc, #define MIN_INT_BITS(length) (-(INT64_C(1) << ((length) - 1))) +#define CBS_UNIT_TYPE_POD(type, structure) { \ + .nb_unit_types = 1, \ + .unit_types = { type }, \ + .content_type = CBS_CONTENT_TYPE_POD, \ + .content_size = sizeof(structure), \ + } +#define CBS_UNIT_TYPE_INTERNAL_REF(type, structure, ref_field) { \ + .nb_unit_types = 1, \ + .unit_types = { type }, \ + .content_type = CBS_CONTENT_TYPE_INTERNAL_REFS, \ + .content_size = sizeof(structure), \ + .nb_ref_offsets = 1, \ + .ref_offsets = { offsetof(structure, ref_field) }, \ + } +#define CBS_UNIT_TYPE_COMPLEX(type, structure, free_func) { \ + .nb_unit_types = 1, \ + .unit_types = { type }, \ + .content_type = CBS_CONTENT_TYPE_COMPLEX, \ + .content_size = sizeof(structure), \ + .content_free = free_func, \ + } +#define CBS_UNIT_TYPE_END_OF_LIST { .nb_unit_types = 0 } + + extern const CodedBitstreamType ff_cbs_type_av1; extern const CodedBitstreamType ff_cbs_type_h264; extern const CodedBitstreamType ff_cbs_type_h265;