hevc: free sao buffers when receiving a new SPS

The buffer pointers would be otherwise overwritten, causing a
leak on e.g. PERSIST_RPARAM_A_RExt_Sony_1.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/115/head^2
Christophe Gisquet 10 years ago committed by Michael Niedermayer
parent a83b6b077c
commit 9a2f5d825a
  1. 9
      libavcodec/hevc.c

@ -284,7 +284,7 @@ static int set_sps(HEVCContext *s, const HEVCSPS *sps)
{
#define HWACCEL_MAX (CONFIG_HEVC_DXVA2_HWACCEL)
enum AVPixelFormat pix_fmts[HWACCEL_MAX + 2], *fmt = pix_fmts;
int ret;
int ret, i;
unsigned int num = 0, den = 0;
pic_arrays_free(s);
@ -334,6 +334,13 @@ static int set_sps(HEVCContext *s, const HEVCSPS *sps)
ff_hevc_dsp_init (&s->hevcdsp, sps->bit_depth);
ff_videodsp_init (&s->vdsp, sps->bit_depth);
for (i = 0; i < 3; i++) {
if (s->sao_pixel_buffer_h[i])
av_freep(&s->sao_pixel_buffer_h[i]);
if (s->sao_pixel_buffer_v[i])
av_freep(&s->sao_pixel_buffer_v[i]);
}
if (sps->sao_enabled && !s->avctx->hwaccel) {
int c_count = (sps->chroma_format_idc != 0) ? 3 : 1;
int c_idx;

Loading…
Cancel
Save