From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 29ADF45ED4 for ; Mon, 17 Apr 2023 15:00:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0FC1068BE42; Mon, 17 Apr 2023 18:00:35 +0300 (EEST) Received: from w4.tutanota.de (w4.tutanota.de [81.3.6.165]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0292D68BDFB for ; Mon, 17 Apr 2023 18:00:28 +0300 (EEST) Received: from tutadb.w10.tutanota.de (unknown [192.168.1.10]) by w4.tutanota.de (Postfix) with ESMTP id 9362710602F6 for ; Mon, 17 Apr 2023 15:00:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1681743627; s=s1; d=lynne.ee; h=From:From:To:To:Subject:Subject:Content-Description:Content-ID:Content-Type:Content-Type:Content-Transfer-Encoding:Content-Transfer-Encoding:Cc:Date:Date:In-Reply-To:In-Reply-To:MIME-Version:MIME-Version:Message-ID:Message-ID:Reply-To:References:References:Sender; bh=w5ZvDcGlhcOm6FOVYwDwex8rbhrdR42n9fYuWi4S90I=; b=v2nRbqsCxwxwmiRmiJ+uyKyrfT49D7HE8OOi1XKxyUGdfCPhbarbvXsip44JrPz7 N135/oIj99C/DKGIgnMgusxOP47dyLxggb2S41dIDH15gr5eTrg8oy/A4gFzAjflwAP 85vGBn9NKSYNY/xyyMQarr5p21bqTk3dm2nAqCsODeNVNnSF9SPN8fx4/Xt6avm3AGW GSo2cQCi/uirxe+9Qm89d1oktt6N8emImk30ihWLBiWPr1RKXXx041+hCRxOpRvS5UM bMhIiDlcoshzXqwgquGew9vl9Yi30spaEML7nqKuzFR553p9M3tHS23SSzkJLCRUOQL BGPbZuRspA== Date: Mon, 17 Apr 2023 17:00:27 +0200 (CEST) From: Lynne To: FFmpeg development discussions and patches Message-ID: In-Reply-To: <20230417143930.1186-1-jamrial@gmail.com> References: <20230417143930.1186-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH] avutil/frame: use bitfields for some boolean and enum fields 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Apr 17, 2023, 16:40 by jamrial@gmail.com: > Should reduce the size of AVFrame in the next major bump without changing the API. > > Suggested-by: Anton Khirnov > Signed-off-by: James Almer > --- > This supersedes "avutil/frame: add new interlaced and top_field_first flags" > and "avutil/frame: add a keyframe flag to AVFrame". > > libavutil/frame.h | 56 +++++++++++++++++++++++++++++++++++++++++++++ > libavutil/version.h | 1 + > 2 files changed, 57 insertions(+) > > diff --git a/libavutil/frame.h b/libavutil/frame.h > index f85d630c5c..c26067f383 100644 > --- a/libavutil/frame.h > +++ b/libavutil/frame.h > @@ -416,6 +416,7 @@ typedef struct AVFrame { > */ > int format; > > +#if FF_API_BITFIELDS > /** > * 1 -> keyframe, 0-> not > */ > @@ -425,6 +426,57 @@ typedef struct AVFrame { > * Picture type of the frame. > */ > enum AVPictureType pict_type; > +#else > + /** > + * 1 -> keyframe, 0-> not > + */ > + unsigned int key_frame: 1; > + > + /** > + * The content of the picture is interlaced. > + */ > + unsigned int interlaced_frame: 1; > + > + /** > + * If the content is interlaced, is top field displayed first. > + */ > + unsigned int top_field_first: 1; > + > + /** > + * Tell user application that palette has changed from previous frame. > + */ > + unsigned int palette_has_changed: 1; > + > + /** > + * Reserved. Must not be touched. > + */ > + unsigned int reserved_bitfield: (sizeof(unsigned int) * 8) - 9; > + > + /** > + * MPEG vs JPEG YUV range. > + * - encoding: Set by user > + * - decoding: Set by libavcodec > + */ > + enum AVColorRange color_range: 2; > + > + enum AVChromaLocation chroma_location: 3; > Definitely disagree on all non-8bit field limits. The reserved_bitfield is especially ugly. A few wasted bits wouldn't affect much, we don't even support building on 6502s. Use bools, or limit them to 8bits so we can use bools when we bump? The rest can be limited to 8bits. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".