[FFmpeg-devel] [PATCH 20/39] lavc/hevcdec: only set no_rasl_output_flag for IRAP frames

Anton Khirnov anton at khirnov.net
Fri Jun 7 16:01:16 EEST 2024


Its meaning is only specified for IRAP frames.

As it's currently never used otherwise, this should not change decoder
behaviour, but will be useful in future commits.
---
 libavcodec/hevc/hevcdec.c | 4 +++-
 libavcodec/hevc/hevcdec.h | 1 +
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/libavcodec/hevc/hevcdec.c b/libavcodec/hevc/hevcdec.c
index 585a066426..d444ea93f7 100644
--- a/libavcodec/hevc/hevcdec.c
+++ b/libavcodec/hevc/hevcdec.c
@@ -2925,7 +2925,9 @@ static int hevc_frame_start(HEVCContext *s)
     s->is_decoded        = 0;
     s->first_nal_type    = s->nal_unit_type;
 
-    s->no_rasl_output_flag = IS_IDR(s) || IS_BLA(s) || (s->nal_unit_type == HEVC_NAL_CRA_NUT && s->last_eos);
+    if (IS_IRAP(s))
+        s->no_rasl_output_flag = IS_IDR(s) || IS_BLA(s) ||
+                                 (s->nal_unit_type == HEVC_NAL_CRA_NUT && s->last_eos);
 
     /* 8.3.1 */
     if (s->temporal_id == 0 &&
diff --git a/libavcodec/hevc/hevcdec.h b/libavcodec/hevc/hevcdec.h
index 5eaebd3584..fa7caf9cf7 100644
--- a/libavcodec/hevc/hevcdec.h
+++ b/libavcodec/hevc/hevcdec.h
@@ -493,6 +493,7 @@ typedef struct HEVCContext {
     int overlap;
 
     int is_decoded;
+    // NoRaslOutputFlag associated with the last IRAP frame
     int no_rasl_output_flag;
 
     HEVCPredContext hpc;
-- 
2.43.0



More information about the ffmpeg-devel mailing list