From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> To: ffmpeg-devel@ffmpeg.org Cc: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Subject: [FFmpeg-devel] [PATCH 09/20] avcodec/h2645_sei: Factor out freeing common SEI parts Date: Sun, 3 Jul 2022 00:21:49 +0200 Message-ID: <DB6PR0101MB221484196A7447C987C72F348FBC9@DB6PR0101MB2214.eurprd01.prod.exchangelabs.com> (raw) In-Reply-To: <DB6PR0101MB2214F50F230E6F64A2428AED8FBC9@DB6PR0101MB2214.eurprd01.prod.exchangelabs.com> This commit only factors out freeing the common SEI parts, not whether the fields indicating whether an SEI is present shall be reset. H.264 and HEVC differ in this regard (ff_h264_sei_uninit() really resets, whereas ff_hevc_reset_sei() only uninits.) and neither actually honours the persistency as prescribed by the relevant specs. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> --- libavcodec/h2645_sei.c | 12 ++++++++++++ libavcodec/h2645_sei.h | 2 ++ libavcodec/h264_sei.c | 6 +----- libavcodec/hevc_sei.c | 12 ------------ libavcodec/hevc_sei.h | 7 +++++-- 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/libavcodec/h2645_sei.c b/libavcodec/h2645_sei.c index 21208fa920..6be3d97c92 100644 --- a/libavcodec/h2645_sei.c +++ b/libavcodec/h2645_sei.c @@ -418,3 +418,15 @@ int ff_h2645_sei_ctx_replace(H2645SEI *dst, const H2645SEI *src) return 0; } + +void ff_h2645_sei_reset(H2645SEI *s) +{ + av_buffer_unref(&s->a53_caption.buf_ref); + + for (int i = 0; i < s->unregistered.nb_buf_ref; i++) + av_buffer_unref(&s->unregistered.buf_ref[i]); + s->unregistered.nb_buf_ref = 0; + av_freep(&s->unregistered.buf_ref); + av_buffer_unref(&s->dynamic_hdr_plus.info); + av_buffer_unref(&s->dynamic_hdr_vivid.info); +} diff --git a/libavcodec/h2645_sei.h b/libavcodec/h2645_sei.h index e87a669b3e..3e088f3307 100644 --- a/libavcodec/h2645_sei.h +++ b/libavcodec/h2645_sei.h @@ -132,4 +132,6 @@ int ff_h2645_sei_message_decode(H2645SEI *h, enum SEIType type, int ff_h2645_sei_ctx_replace(H2645SEI *dst, const H2645SEI *src); +void ff_h2645_sei_reset(H2645SEI *s); + #endif /* AVCODEC_H2645_SEI_H */ diff --git a/libavcodec/h264_sei.c b/libavcodec/h264_sei.c index c62aef9246..f11f8371f6 100644 --- a/libavcodec/h264_sei.c +++ b/libavcodec/h264_sei.c @@ -59,11 +59,7 @@ void ff_h264_sei_uninit(H264SEIContext *h) h->common.display_orientation.present = 0; h->common.afd.present = 0; - av_buffer_unref(&h->common.a53_caption.buf_ref); - for (int i = 0; i < h->common.unregistered.nb_buf_ref; i++) - av_buffer_unref(&h->common.unregistered.buf_ref[i]); - h->common.unregistered.nb_buf_ref = 0; - av_freep(&h->common.unregistered.buf_ref); + ff_h2645_sei_reset(&h->common); } int ff_h264_sei_process_picture_timing(H264SEIPictureTiming *h, const SPS *sps, diff --git a/libavcodec/hevc_sei.c b/libavcodec/hevc_sei.c index b0a4a8b035..3c6bde1b62 100644 --- a/libavcodec/hevc_sei.c +++ b/libavcodec/hevc_sei.c @@ -292,15 +292,3 @@ int ff_hevc_decode_nal_sei(GetBitContext *gb, void *logctx, HEVCSEI *s, } while (bytestream2_get_bytes_left(&gbyte) > 0); return 1; } - -void ff_hevc_reset_sei(HEVCSEI *s) -{ - av_buffer_unref(&s->common.a53_caption.buf_ref); - - for (int i = 0; i < s->common.unregistered.nb_buf_ref; i++) - av_buffer_unref(&s->common.unregistered.buf_ref[i]); - s->common.unregistered.nb_buf_ref = 0; - av_freep(&s->common.unregistered.buf_ref); - av_buffer_unref(&s->common.dynamic_hdr_plus.info); - av_buffer_unref(&s->common.dynamic_hdr_vivid.info); -} diff --git a/libavcodec/hevc_sei.h b/libavcodec/hevc_sei.h index 2bb6b7e48b..4189f5e6f7 100644 --- a/libavcodec/hevc_sei.h +++ b/libavcodec/hevc_sei.h @@ -117,8 +117,11 @@ static inline int ff_hevc_sei_ctx_replace(HEVCSEI *dst, const HEVCSEI *src) * e.g. Caption data that was extracted during NAL * parsing. * - * @param s HEVCContext. + * @param sei HEVCSEI. */ -void ff_hevc_reset_sei(HEVCSEI *s); +static inline void ff_hevc_reset_sei(HEVCSEI *sei) +{ + ff_h2645_sei_reset(&sei->common); +} #endif /* AVCODEC_HEVC_SEI_H */ -- 2.34.1 _______________________________________________ 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:[~2022-07-02 22:23 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-07-02 22:20 [FFmpeg-devel] [PATCH 01/20] avcodec/hevc_sei: Use proper type for NALU type Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 02/20] avcodec/h264_sei: Don't use GetBit-API for byte-aligned reads Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 03/20] configure: Add (h264|hevc)_sei subsystems Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 04/20] avcodec/sei: Add tag to SEI enumeration Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 05/20] fftools/ffprobe: Improve description of AFD side data Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 06/20] fate/h264: Add Active Format Descriptor test Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 07/20] avcodec/h2645_sei: Factor parsing common SEI messages out Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 08/20] avcodec/h2645_sei: Factor updating H.2645 SEIs out Andreas Rheinhardt 2022-07-02 22:21 ` Andreas Rheinhardt [this message] 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 10/20] avcodec/h2645_sei: Factor out applying SEIs to frames Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 11/20] avcodec/h264_sei, sei: Make H264_SEI_FpaType generic Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 12/20] avcodec/h2645_sei: Attach AVStereo3D side data generically Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 13/20] avcodec/h2645_sei: Also support Active Format Descriptor for HEVC Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 14/20] avcodec/h264_ps: Don't error out on unknown aspect ratio Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 15/20] avcodec/h264data: Deduplicate H.26[45] aspect ratio table Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 16/20] avcodec/hevc_ps: Fix wrong copyright years Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 17/20] avcodec/h264_ps: Don't output invalid chroma location Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 18/20] avcodec/h26[45]_metadata_bsf: Fix range of chroma_sample_loc_type Andreas Rheinhardt 2022-07-02 22:21 ` [FFmpeg-devel] [PATCH 19/20] avcodec/(h264|hevc)_ps: Factor common VUI code out Andreas Rheinhardt 2022-07-02 22:22 ` [FFmpeg-devel] [PATCH 20/20] avcodec/h2645_sei: Factor attaching film grain side-data to frame out Andreas Rheinhardt 2022-07-02 23:28 ` [FFmpeg-devel] [PATCH 01/20] avcodec/hevc_sei: Use proper type for NALU type Soft Works 2022-11-23 3:19 ` Andreas Rheinhardt 2022-11-23 4:15 ` Soft Works 2022-11-23 5:05 ` Soft Works
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=DB6PR0101MB221484196A7447C987C72F348FBC9@DB6PR0101MB2214.eurprd01.prod.exchangelabs.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