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;