diff mbox series

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

Message ID 20240607130135.9088-20-anton@khirnov.net
State New
Headers show
Series [FFmpeg-devel,01/39] lavc/hevcdec: do not free SliceHeader arrays in pic_arrays_free() | expand

Commit Message

Anton Khirnov June 7, 2024, 1:01 p.m. UTC
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 mbox series

Patch

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;