diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index 27fd6832ab2e3c8f4ac3aa3cafe96b2e6ca063d0..147243e3fe52778069c5e7d0b87ad03972c840f1 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -479,17 +479,16 @@ static int hls_slice_header(HEVCContext *s) s->ps.pps = (HEVCPPS*)s->ps.pps_list[sh->pps_id]->data; 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; enum AVPixelFormat pix_fmt; - s->ps.sps = (HEVCSPS*)s->ps.sps_list[s->ps.pps->sps_id]->data; - ff_hevc_clear_refs(s); - pix_fmt = get_format(s, s->ps.sps); + pix_fmt = get_format(s, sps); if (pix_fmt < 0) return pix_fmt; - ret = set_sps(s, s->ps.sps, pix_fmt); + ret = set_sps(s, sps, pix_fmt); if (ret < 0) return ret;