mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-04-14 00:58:38 +02:00
proresenc: correct edge emulation
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
This commit is contained in:
parent
235d693286
commit
c7084182e8
@ -189,24 +189,24 @@ static void get_slice_data(ProresContext *ctx, const uint16_t *src,
|
|||||||
elinesize = linesize;
|
elinesize = linesize;
|
||||||
} else {
|
} else {
|
||||||
int bw, bh, pix;
|
int bw, bh, pix;
|
||||||
const int estride = 16 / sizeof(*ctx->emu_buf);
|
|
||||||
|
|
||||||
esrc = ctx->emu_buf;
|
esrc = ctx->emu_buf;
|
||||||
elinesize = 16;
|
elinesize = 16 * sizeof(*ctx->emu_buf);
|
||||||
|
|
||||||
bw = FFMIN(w - x, mb_width);
|
bw = FFMIN(w - x, mb_width);
|
||||||
bh = FFMIN(h - y, 16);
|
bh = FFMIN(h - y, 16);
|
||||||
|
|
||||||
for (j = 0; j < bh; j++) {
|
for (j = 0; j < bh; j++) {
|
||||||
memcpy(ctx->emu_buf + j * estride, src + j * linesize,
|
memcpy(ctx->emu_buf + j * 16,
|
||||||
|
(const uint8_t*)src + j * linesize,
|
||||||
bw * sizeof(*src));
|
bw * sizeof(*src));
|
||||||
pix = ctx->emu_buf[j * estride + bw - 1];
|
pix = ctx->emu_buf[j * 16 + bw - 1];
|
||||||
for (k = bw; k < mb_width; k++)
|
for (k = bw; k < mb_width; k++)
|
||||||
ctx->emu_buf[j * estride + k] = pix;
|
ctx->emu_buf[j * 16 + k] = pix;
|
||||||
}
|
}
|
||||||
for (; j < 16; j++)
|
for (; j < 16; j++)
|
||||||
memcpy(ctx->emu_buf + j * estride,
|
memcpy(ctx->emu_buf + j * 16,
|
||||||
ctx->emu_buf + (bh - 1) * estride,
|
ctx->emu_buf + (bh - 1) * 16,
|
||||||
mb_width * sizeof(*ctx->emu_buf));
|
mb_width * sizeof(*ctx->emu_buf));
|
||||||
}
|
}
|
||||||
if (!is_chroma) {
|
if (!is_chroma) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user