mirror of https://git.ffmpeg.org/ffmpeg.git
intrax8: Use a constant buffer instead of a ScratchpadContext
The size of the block is fixed (8x8 plus padding).
This commit is contained in:
parent
eaeba6f241
commit
65f14128c4
|
@ -330,12 +330,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)
|
static int x8_setup_spatial_predictor(IntraX8Context *const w, const int chroma)
|
||||||
{
|
{
|
||||||
MpegEncContext *const s = w->s;
|
|
||||||
int range;
|
int range;
|
||||||
int sum;
|
int sum;
|
||||||
int quant;
|
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],
|
w->frame->linesize[chroma > 0],
|
||||||
&range, &sum, w->edges);
|
&range, &sum, w->edges);
|
||||||
if (chroma) {
|
if (chroma) {
|
||||||
|
@ -699,7 +698,7 @@ static int x8_decode_intra_mb(IntraX8Context *const w, const int chroma)
|
||||||
dsp_x8_put_solidcolor(w->predicted_dc, w->dest[chroma],
|
dsp_x8_put_solidcolor(w->predicted_dc, w->dest[chroma],
|
||||||
w->frame->linesize[!!chroma]);
|
w->frame->linesize[!!chroma]);
|
||||||
} else {
|
} else {
|
||||||
w->dsp.spatial_compensation[w->orient](s->sc.edge_emu_buffer,
|
w->dsp.spatial_compensation[w->orient](w->scratchpad,
|
||||||
w->dest[chroma],
|
w->dest[chroma],
|
||||||
w->frame->linesize[!!chroma]);
|
w->frame->linesize[!!chroma]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,7 @@ typedef struct IntraX8Context {
|
||||||
int divide_quant_dc_luma;
|
int divide_quant_dc_luma;
|
||||||
int divide_quant_dc_chroma;
|
int divide_quant_dc_chroma;
|
||||||
uint8_t *dest[3];
|
uint8_t *dest[3];
|
||||||
|
uint8_t scratchpad[42]; // size of the block is fixed (8x8 plus padding)
|
||||||
|
|
||||||
// changed per block
|
// changed per block
|
||||||
int edges;
|
int edges;
|
||||||
|
|
Loading…
Reference in New Issue