Commit d312ffdd authored by Michael Niedermayer's avatar Michael Niedermayer

mpegvideo: fix lowres on field pictures

Fixes Ticket1846
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 1a535fc4
...@@ -2092,17 +2092,17 @@ static av_always_inline void mpeg_motion_lowres(MpegEncContext *s, ...@@ -2092,17 +2092,17 @@ static av_always_inline void mpeg_motion_lowres(MpegEncContext *s,
if ((unsigned) src_x > FFMAX( h_edge_pos - (!!sx) - 2 * block_s, 0) || if ((unsigned) src_x > FFMAX( h_edge_pos - (!!sx) - 2 * block_s, 0) ||
(unsigned) src_y > FFMAX((v_edge_pos >> field_based) - (!!sy) - h, 0)) { (unsigned) src_y > FFMAX((v_edge_pos >> field_based) - (!!sy) - h, 0)) {
s->dsp.emulated_edge_mc(s->edge_emu_buffer, ptr_y, s->dsp.emulated_edge_mc(s->edge_emu_buffer, ptr_y,
s->linesize, 17, 17 + field_based, linesize >> field_based, 17, 17 + field_based,
src_x, src_y << field_based, h_edge_pos, src_x, src_y << field_based, h_edge_pos,
v_edge_pos); v_edge_pos);
ptr_y = s->edge_emu_buffer; ptr_y = s->edge_emu_buffer;
if (!CONFIG_GRAY || !(s->flags & CODEC_FLAG_GRAY)) { if (!CONFIG_GRAY || !(s->flags & CODEC_FLAG_GRAY)) {
uint8_t *uvbuf = s->edge_emu_buffer + 18 * s->linesize; uint8_t *uvbuf = s->edge_emu_buffer + 18 * s->linesize;
s->dsp.emulated_edge_mc(uvbuf , ptr_cb, s->uvlinesize, 9, s->dsp.emulated_edge_mc(uvbuf , ptr_cb, uvlinesize >> field_based, 9,
9 + field_based, 9 + field_based,
uvsrc_x, uvsrc_y << field_based, uvsrc_x, uvsrc_y << field_based,
h_edge_pos >> 1, v_edge_pos >> 1); h_edge_pos >> 1, v_edge_pos >> 1);
s->dsp.emulated_edge_mc(uvbuf + 16, ptr_cr, s->uvlinesize, 9, s->dsp.emulated_edge_mc(uvbuf + 16, ptr_cr, uvlinesize >> field_based, 9,
9 + field_based, 9 + field_based,
uvsrc_x, uvsrc_y << field_based, uvsrc_x, uvsrc_y << field_based,
h_edge_pos >> 1, v_edge_pos >> 1); h_edge_pos >> 1, v_edge_pos >> 1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment