diff --git a/libavcodec/intrax8.c b/libavcodec/intrax8.c index d3916992fc..2b37658cb7 100644 --- a/libavcodec/intrax8.c +++ b/libavcodec/intrax8.c @@ -326,12 +326,11 @@ static int x8_get_dc_rlf(IntraX8Context *const w, const int mode, static int x8_setup_spatial_predictor(IntraX8Context *const w, const int chroma) { - MpegEncContext *const s = w->s; int range; int sum; int quant; - w->dsp.setup_spatial_compensation(w->dest[chroma], s->sc.edge_emu_buffer, + w->dsp.setup_spatial_compensation(w->dest[chroma], w->scratchpad, w->frame->linesize[chroma > 0], &range, &sum, w->edges); if (chroma) { @@ -695,7 +694,7 @@ static int x8_decode_intra_mb(IntraX8Context *const w, const int chroma) dsp_x8_put_solidcolor(w->predicted_dc, w->dest[chroma], w->frame->linesize[!!chroma]); } else { - w->dsp.spatial_compensation[w->orient](s->sc.edge_emu_buffer, + w->dsp.spatial_compensation[w->orient](w->scratchpad, w->dest[chroma], w->frame->linesize[!!chroma]); } diff --git a/libavcodec/intrax8.h b/libavcodec/intrax8.h index 0fe38d0cc1..64a33cea2f 100644 --- a/libavcodec/intrax8.h +++ b/libavcodec/intrax8.h @@ -54,6 +54,7 @@ typedef struct IntraX8Context { int divide_quant_dc_luma; int divide_quant_dc_chroma; uint8_t *dest[3]; + uint8_t scratchpad[42]; // size of the block is fixed (8x8 plus padding) // changed per block int edges;