From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [PATCH 14/42] avcodec/hevcdec: Use RefStruct API for RefPicListTap buffer Date: Mon, 2 Oct 2023 13:07:14 +0200 Message-ID: <AS8P250MB0744068A50C22ABD4817E17C8FC5A@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM> (raw) In-Reply-To: <169624366647.6638.939649870927700518@lain.khirnov.net> Anton Khirnov: > Quoting Andreas Rheinhardt (2023-09-19 21:57:06) >> avcodec/hevcdec: Use RefStruct API for RefPicListTap buffer > ^ > b > >> Given that the RefStruct API relies on the user to know >> the size of the objects and does not provide a way to get it, > > Is there a reason you decided not to provide it, or there just wasn't > any code that would be improved by it? > In this example, there would be no improvement if RefStruct recorded the size (in bytes) and provided a getter for it. In general, the philosophy of the RefStruct API is that the user and not the API knows what is in the user data. So the user has to keep track of stuff like this in cases where the user doesn't know it. The only scenario where keeping track of the size would be advantageous would be for using arrays-of-whatever if the callbacks provided the size as a parameter (to be ignored by most users), because one could then derive the number of elements from it. I pondered this, but given that the AVBuffer API doesn't do so either, I didn't do it. Shall I change this? >> we need to store the number of elements allocated ourselves; >> but this is actually better than deriving it from the size >> in bytes. >> >> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> >> --- >> libavcodec/hevc_refs.c | 14 ++++++++------ >> libavcodec/hevcdec.c | 5 ++--- >> libavcodec/hevcdec.h | 3 ++- >> 3 files changed, 12 insertions(+), 10 deletions(-) > > The actual code looks good. > _______________________________________________ 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".
next prev parent reply other threads:[~2023-10-02 11:06 UTC|newest] Thread overview: 106+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-09-19 19:38 [FFmpeg-devel] [PATCH 00/42] New API for reference counting and ThreadFrames Andreas Rheinhardt 2023-09-19 19:56 ` [FFmpeg-devel] [PATCH 01/42] tests/fate-run: Ensure that THREADS=random is actually random Andreas Rheinhardt 2023-09-25 20:01 ` Andreas Rheinhardt 2023-09-19 19:56 ` [FFmpeg-devel] [PATCH 02/42] avcodec/refstruct: Add simple API for refcounted objects Andreas Rheinhardt 2023-09-21 19:58 ` Nicolas George 2023-09-21 23:07 ` Andreas Rheinhardt 2023-10-06 18:24 ` Andreas Rheinhardt 2023-10-06 19:43 ` Nicolas George 2023-10-06 20:20 ` Andreas Rheinhardt 2023-10-06 20:37 ` Nicolas George 2023-10-06 20:50 ` Andreas Rheinhardt 2023-10-06 21:22 ` Nicolas George 2023-10-07 21:03 ` James Almer 2023-09-19 19:56 ` [FFmpeg-devel] [PATCH 03/42] avcodec/get_buffer: Use RefStruct API for FramePool Andreas Rheinhardt 2023-09-28 12:36 ` Anton Khirnov 2023-09-19 19:56 ` [FFmpeg-devel] [PATCH 04/42] avcodec/h264_ps: Use RefStruct API for SPS/PPS Andreas Rheinhardt 2023-09-28 13:03 ` Anton Khirnov 2023-09-28 15:49 ` Andreas Rheinhardt 2023-10-02 9:39 ` Anton Khirnov 2023-09-19 19:56 ` [FFmpeg-devel] [PATCH 05/42] avcodec/hevc_ps: Use RefStruct API for parameter sets Andreas Rheinhardt 2023-09-28 13:13 ` Anton Khirnov 2023-09-19 19:56 ` [FFmpeg-devel] [PATCH 06/42] avcodec/vp8: Use RefStruct API for seg_map Andreas Rheinhardt 2023-10-02 9:44 ` Anton Khirnov 2023-10-02 10:04 ` Andreas Rheinhardt 2023-10-02 10:14 ` Anton Khirnov 2023-09-19 19:56 ` [FFmpeg-devel] [PATCH 07/42] avcodec/wavpack: Use RefStruct API for DSD context Andreas Rheinhardt 2023-10-02 9:46 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 08/42] avcodec/dovi_rpu: Use RefStruct API for Vdr data Andreas Rheinhardt 2023-10-02 9:51 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 09/42] avcodec/refstruct: Allow checking for exclusive ownership Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 10/42] avcodec/cbs: Use RefStruct-API for unit content Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 11/42] avcodec/cbs_sei: Use RefStruct API for SEI messages Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 12/42] avcodec/decode: Use RefStruct API for hwaccel_picture_private Andreas Rheinhardt 2023-10-02 10:39 ` Anton Khirnov 2023-10-02 12:30 ` Lynne 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 13/42] avcodec/vulkan_decode: Use RefStruct API for shared_ref Andreas Rheinhardt 2023-10-02 12:31 ` Lynne 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 14/42] avcodec/hevcdec: Use RefStruct API for RefPicListTap buffer Andreas Rheinhardt 2023-10-02 10:47 ` Anton Khirnov 2023-10-02 11:07 ` Andreas Rheinhardt [this message] 2023-10-04 8:10 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 15/42] avcodec/pthread_frame: Use RefStruct API for ThreadFrame.progress Andreas Rheinhardt 2023-10-02 11:01 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 16/42] avcodec/nvdec: Use RefStruct API for decoder_ref Andreas Rheinhardt 2023-10-02 10:58 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 17/42] avcodec/refstruct: Add RefStruct pool API Andreas Rheinhardt 2023-09-20 19:58 ` Michael Niedermayer 2023-09-21 0:28 ` Andreas Rheinhardt 2023-10-04 8:39 ` Anton Khirnov 2023-10-04 11:09 ` Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 18/42] avcodec/h264dec: Use RefStruct-pool API instead of AVBufferPool API Andreas Rheinhardt 2023-10-04 14:07 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 19/42] avcodec/hevcdec: " Andreas Rheinhardt 2023-10-04 14:12 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 20/42] avcodec/nvdec: Use RefStruct-pool API for decoder pool Andreas Rheinhardt 2023-10-04 14:28 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 21/42] avcodec/refstruct: Allow to always return zeroed pool entries Andreas Rheinhardt 2023-10-12 12:45 ` Anton Khirnov 2023-10-12 13:25 ` Andreas Rheinhardt 2023-10-12 13:56 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 22/42] avcodec/vp9: Use RefStruct-pool API for extradata Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 23/42] avcodec/vaapi_encode: Use RefStruct pool API, stop abusing AVBuffer API Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 24/42] avcodec/refstruct: Allow to share pools Andreas Rheinhardt 2023-10-12 13:04 ` Anton Khirnov 2023-10-12 13:51 ` Andreas Rheinhardt 2023-10-12 14:04 ` Anton Khirnov 2023-10-12 14:10 ` Andreas Rheinhardt 2023-10-12 17:09 ` Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 25/42] avcodec/vp9: Join extradata buffer pools Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 26/42] avcodec/refstruct: Allow to use a dynamic opaque Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 27/42] avcodec/pthread_frame: Add new progress API Andreas Rheinhardt 2023-10-21 10:34 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 28/42] avcodec/mimic: Switch to ProgressFrames Andreas Rheinhardt 2023-10-21 10:38 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 29/42] avcodec/vp3: " Andreas Rheinhardt 2023-10-21 10:48 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 30/42] avcodec/vp9: " Andreas Rheinhardt 2023-10-21 11:04 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 31/42] avcodec/vp9: Fix race when attaching side-data for show-existing frame Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 32/42] avcodec/vp9: Reduce wait times Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 33/42] avcodec/vp9: Simplify replacing VP9Frame Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 34/42] avcodec/vp9: Replace atomic_store() by atomic_init() Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 35/42] avcodec/threadprogress: Add new API for frame-threaded progress Andreas Rheinhardt 2023-09-20 19:44 ` Michael Niedermayer 2023-09-21 0:28 ` Andreas Rheinhardt 2023-10-25 13:25 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 36/42] avcodec/wavpack: Use ThreadProgress API Andreas Rheinhardt 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 37/42] avcodec/vp8: Convert to ProgressFrame API Andreas Rheinhardt 2023-10-25 13:35 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 38/42] avcodec/codec_internal: Remove FF_CODEC_CAP_ALLOCATE_PROGRESS Andreas Rheinhardt 2023-10-25 13:38 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 39/42] avcodec/hevcdec: Move collocated_ref to HEVCContext Andreas Rheinhardt 2023-10-25 13:42 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 40/42] avcodec/hevcdec: Switch to ProgressFrames Andreas Rheinhardt 2023-11-09 9:50 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 41/42] avcodec/pngdec: " Andreas Rheinhardt 2023-11-09 9:52 ` Anton Khirnov 2023-09-19 19:57 ` [FFmpeg-devel] [PATCH 42/42] avcodec/ffv1dec: " Andreas Rheinhardt 2023-11-09 9:56 ` Anton Khirnov 2023-10-02 18:13 ` [FFmpeg-devel] [PATCH 43/49] avcodec/qsv: Use RefStruct API for memory id (mids) array Andreas Rheinhardt 2023-10-02 18:13 ` [FFmpeg-devel] [PATCH 44/49] avcodec/rkmppdec: Fix double-free on error Andreas Rheinhardt 2023-10-02 18:13 ` [FFmpeg-devel] [PATCH 45/49] avcodec/rkmppdec: Check av_buffer_ref() Andreas Rheinhardt 2023-10-02 18:13 ` [FFmpeg-devel] [PATCH 46/49] avcodec/rkmppdec: Use RefStruct API for references to decoder itself Andreas Rheinhardt 2023-10-02 18:13 ` [FFmpeg-devel] [PATCH 47/49] avcodec/rkmppdec: Allocate AVDRMFrameDescriptor and frame ctx jointly Andreas Rheinhardt 2023-10-02 18:13 ` [FFmpeg-devel] [PATCH 48/49] avcodec/v4l2_m2m: Remove redundant av_frame_unref() Andreas Rheinhardt 2023-10-02 18:13 ` [FFmpeg-devel] [PATCH 49/49] avcodec/v4l2_(m2m|buffers): Use RefStruct API for context references Andreas Rheinhardt
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=AS8P250MB0744068A50C22ABD4817E17C8FC5A@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM \ --to=andreas.rheinhardt@outlook.com \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git