lavc/hevcdec: do not pass a pixel format to set_sps()

It is merely copied to AVCodecContext.pix_fmt, which serves no useful
purpose. set_sps() is called from two places:
* when a new SPS becomes active - then the pixel format is
  overridden immediately after the set_sps() call by the result from
  ff_get_format();
* when a new SPS is propagated across frame threads - then the
  AVCodecContext value is already set to the same value by the generic
  code.
release/7.1
Anton Khirnov 7 months ago
parent 5295650655
commit 99b0c3dc7c
  1. 9
      libavcodec/hevc/hevcdec.c

@ -526,8 +526,7 @@ static enum AVPixelFormat get_format(HEVCContext *s, const HEVCSPS *sps)
return ff_get_format(s->avctx, pix_fmts);
}
static int set_sps(HEVCContext *s, const HEVCSPS *sps,
enum AVPixelFormat pix_fmt)
static int set_sps(HEVCContext *s, const HEVCSPS *sps)
{
int ret, i;
@ -544,8 +543,6 @@ static int set_sps(HEVCContext *s, const HEVCSPS *sps,
export_stream_params(s, sps);
s->avctx->pix_fmt = pix_fmt;
ff_hevc_pred_init(&s->hpc, sps->bit_depth);
ff_hevc_dsp_init (&s->hevcdsp, sps->bit_depth);
ff_videodsp_init (&s->vdsp, sps->bit_depth);
@ -2918,7 +2915,7 @@ static int hevc_frame_start(HEVCContext *s)
ff_hevc_clear_refs(s);
ret = set_sps(s, sps, sps->pix_fmt);
ret = set_sps(s, sps);
if (ret < 0)
return ret;
@ -3592,7 +3589,7 @@ static int hevc_update_thread_context(AVCodecContext *dst,
ff_refstruct_unref(&s->pps);
if (s->ps.sps != s0->ps.sps)
if ((ret = set_sps(s, s0->ps.sps, src->pix_fmt)) < 0)
if ((ret = set_sps(s, s0->ps.sps)) < 0)
return ret;
s->seq_decode = s0->seq_decode;

Loading…
Cancel
Save