[FFmpeg-devel] [PATCH v2 4/4] lavc/hevcdec: respect the value of no_output_of_prior_pics_flag
Xiang, Haihao
haihao.xiang at intel.com
Thu Jul 14 09:16:48 EEST 2022
On Tue, 2022-06-14 at 09:23 +0800, Fei Wang wrote:
> From: Xu Guangxin <guangxin.xu at intel.com>
>
> Even resolution or number of picture stores changes, we still need
> follow no_output_of_prior_pics_flag in next IDR.
>
> Tested-by: Fei Wang <fei.w.wang at intel.com>
> Signed-off-by: Xu Guangxin <guangxin.xu at intel.com>
> ---
> libavcodec/hevcdec.c | 7 -------
> 1 file changed, 7 deletions(-)
>
> diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c
> index 99785aa5d1..b0317339a2 100644
> --- a/libavcodec/hevcdec.c
> +++ b/libavcodec/hevcdec.c
> @@ -594,15 +594,8 @@ static int hls_slice_header(HEVCContext *s)
>
> if (s->ps.sps != (HEVCSPS*)s->ps.sps_list[s->ps.pps->sps_id]->data) {
> const HEVCSPS *sps = (HEVCSPS*)s->ps.sps_list[s->ps.pps->sps_id]-
> >data;
> - const HEVCSPS *last_sps = s->ps.sps;
> enum AVPixelFormat pix_fmt;
>
> - if (last_sps && IS_IRAP(s) && s->nal_unit_type != HEVC_NAL_CRA_NUT) {
> - if (sps->width != last_sps->width || sps->height != last_sps-
> >height ||
> - sps->temporal_layer[sps->max_sub_layers -
> 1].max_dec_pic_buffering !=
> - last_sps->temporal_layer[last_sps->max_sub_layers -
> 1].max_dec_pic_buffering)
> - sh->no_output_of_prior_pics_flag = 0;
> - }
> ff_hevc_clear_refs(s);
>
> ret = set_sps(s, sps, sps->pix_fmt);
From the context, sh->no_output_of_prior_pics_flag is NoOutputOfPriorPicsFlag in
the spec. According to C.5.2.2, the decoder may set NoOutputOfPriorPicsFlag to
no_output_of_prior_pics_flag or 1, but it is not allowed to set 0 in this case.
This patch LGTM.
Thanks
Haihao
More information about the ffmpeg-devel
mailing list