Revision d23e3e5f libavcodec/mpegvideo_common.h
libavcodec/mpegvideo_common.h | ||
---|---|---|
83 | 83 |
if(s->flags&CODEC_FLAG_EMU_EDGE){ |
84 | 84 |
if( (unsigned)src_x >= s->h_edge_pos - 17 |
85 | 85 |
|| (unsigned)src_y >= s->v_edge_pos - 17){ |
86 |
ff_emulated_edge_mc(s->edge_emu_buffer, ptr, linesize, 17, 17, src_x, src_y, s->h_edge_pos, s->v_edge_pos);
|
|
86 |
s->dsp.emulated_edge_mc(s->edge_emu_buffer, ptr, linesize, 17, 17, src_x, src_y, s->h_edge_pos, s->v_edge_pos);
|
|
87 | 87 |
ptr= s->edge_emu_buffer; |
88 | 88 |
} |
89 | 89 |
} |
... | ... | |
122 | 122 |
if(s->flags&CODEC_FLAG_EMU_EDGE){ |
123 | 123 |
if( (unsigned)src_x >= (s->h_edge_pos>>1) - 9 |
124 | 124 |
|| (unsigned)src_y >= (s->v_edge_pos>>1) - 9){ |
125 |
ff_emulated_edge_mc(s->edge_emu_buffer, ptr, uvlinesize, 9, 9, src_x, src_y, s->h_edge_pos>>1, s->v_edge_pos>>1);
|
|
125 |
s->dsp.emulated_edge_mc(s->edge_emu_buffer, ptr, uvlinesize, 9, 9, src_x, src_y, s->h_edge_pos>>1, s->v_edge_pos>>1);
|
|
126 | 126 |
ptr= s->edge_emu_buffer; |
127 | 127 |
emu=1; |
128 | 128 |
} |
... | ... | |
131 | 131 |
|
132 | 132 |
ptr = ref_picture[2] + offset; |
133 | 133 |
if(emu){ |
134 |
ff_emulated_edge_mc(s->edge_emu_buffer, ptr, uvlinesize, 9, 9, src_x, src_y, s->h_edge_pos>>1, s->v_edge_pos>>1);
|
|
134 |
s->dsp.emulated_edge_mc(s->edge_emu_buffer, ptr, uvlinesize, 9, 9, src_x, src_y, s->h_edge_pos>>1, s->v_edge_pos>>1);
|
|
135 | 135 |
ptr= s->edge_emu_buffer; |
136 | 136 |
} |
137 | 137 |
s->dsp.gmc1(dest_cr, ptr, uvlinesize, 8, motion_x&15, motion_y&15, 128 - s->no_rounding); |
... | ... | |
223 | 223 |
if(s->unrestricted_mv && (s->flags&CODEC_FLAG_EMU_EDGE)){ |
224 | 224 |
if( (unsigned)src_x > h_edge_pos - (motion_x&1) - w |
225 | 225 |
|| (unsigned)src_y > v_edge_pos - (motion_y&1) - h){ |
226 |
ff_emulated_edge_mc(s->edge_emu_buffer, src, s->linesize, w+1, (h+1)<<field_based,
|
|
226 |
s->dsp.emulated_edge_mc(s->edge_emu_buffer, src, s->linesize, w+1, (h+1)<<field_based,
|
|
227 | 227 |
src_x, src_y<<field_based, h_edge_pos, s->v_edge_pos); |
228 | 228 |
src= s->edge_emu_buffer; |
229 | 229 |
emu=1; |
... | ... | |
315 | 315 |
"MPEG motion vector out of boundary (%d %d)\n", src_x, src_y); |
316 | 316 |
return; |
317 | 317 |
} |
318 |
ff_emulated_edge_mc(s->edge_emu_buffer, ptr_y, s->linesize,
|
|
318 |
s->dsp.emulated_edge_mc(s->edge_emu_buffer, ptr_y, s->linesize,
|
|
319 | 319 |
17, 17+field_based, |
320 | 320 |
src_x, src_y<<field_based, |
321 | 321 |
s->h_edge_pos, s->v_edge_pos); |
322 | 322 |
ptr_y = s->edge_emu_buffer; |
323 | 323 |
if(!CONFIG_GRAY || !(s->flags&CODEC_FLAG_GRAY)){ |
324 | 324 |
uint8_t *uvbuf= s->edge_emu_buffer+18*s->linesize; |
325 |
ff_emulated_edge_mc(uvbuf ,
|
|
325 |
s->dsp.emulated_edge_mc(uvbuf ,
|
|
326 | 326 |
ptr_cb, s->uvlinesize, |
327 | 327 |
9, 9+field_based, |
328 | 328 |
uvsrc_x, uvsrc_y<<field_based, |
329 | 329 |
s->h_edge_pos>>1, s->v_edge_pos>>1); |
330 |
ff_emulated_edge_mc(uvbuf+16,
|
|
330 |
s->dsp.emulated_edge_mc(uvbuf+16,
|
|
331 | 331 |
ptr_cr, s->uvlinesize, |
332 | 332 |
9, 9+field_based, |
333 | 333 |
uvsrc_x, uvsrc_y<<field_based, |
... | ... | |
512 | 512 |
|
513 | 513 |
if( (unsigned)src_x > s->h_edge_pos - (motion_x&3) - 16 |
514 | 514 |
|| (unsigned)src_y > v_edge_pos - (motion_y&3) - h ){ |
515 |
ff_emulated_edge_mc(s->edge_emu_buffer, ptr_y, s->linesize,
|
|
515 |
s->dsp.emulated_edge_mc(s->edge_emu_buffer, ptr_y, s->linesize,
|
|
516 | 516 |
17, 17+field_based, src_x, src_y<<field_based, |
517 | 517 |
s->h_edge_pos, s->v_edge_pos); |
518 | 518 |
ptr_y= s->edge_emu_buffer; |
519 | 519 |
if(!CONFIG_GRAY || !(s->flags&CODEC_FLAG_GRAY)){ |
520 | 520 |
uint8_t *uvbuf= s->edge_emu_buffer + 18*s->linesize; |
521 |
ff_emulated_edge_mc(uvbuf, ptr_cb, s->uvlinesize,
|
|
521 |
s->dsp.emulated_edge_mc(uvbuf, ptr_cb, s->uvlinesize,
|
|
522 | 522 |
9, 9 + field_based, |
523 | 523 |
uvsrc_x, uvsrc_y<<field_based, |
524 | 524 |
s->h_edge_pos>>1, s->v_edge_pos>>1); |
525 |
ff_emulated_edge_mc(uvbuf + 16, ptr_cr, s->uvlinesize,
|
|
525 |
s->dsp.emulated_edge_mc(uvbuf + 16, ptr_cr, s->uvlinesize,
|
|
526 | 526 |
9, 9 + field_based, |
527 | 527 |
uvsrc_x, uvsrc_y<<field_based, |
528 | 528 |
s->h_edge_pos>>1, s->v_edge_pos>>1); |
... | ... | |
590 | 590 |
if(s->flags&CODEC_FLAG_EMU_EDGE){ |
591 | 591 |
if( (unsigned)src_x > (s->h_edge_pos>>1) - (dxy &1) - 8 |
592 | 592 |
|| (unsigned)src_y > (s->v_edge_pos>>1) - (dxy>>1) - 8){ |
593 |
ff_emulated_edge_mc(s->edge_emu_buffer, ptr, s->uvlinesize,
|
|
593 |
s->dsp.emulated_edge_mc(s->edge_emu_buffer, ptr, s->uvlinesize,
|
|
594 | 594 |
9, 9, src_x, src_y, |
595 | 595 |
s->h_edge_pos>>1, s->v_edge_pos>>1); |
596 | 596 |
ptr= s->edge_emu_buffer; |
... | ... | |
601 | 601 |
|
602 | 602 |
ptr = ref_picture[2] + offset; |
603 | 603 |
if(emu){ |
604 |
ff_emulated_edge_mc(s->edge_emu_buffer, ptr, s->uvlinesize,
|
|
604 |
s->dsp.emulated_edge_mc(s->edge_emu_buffer, ptr, s->uvlinesize,
|
|
605 | 605 |
9, 9, src_x, src_y, |
606 | 606 |
s->h_edge_pos>>1, s->v_edge_pos>>1); |
607 | 607 |
ptr= s->edge_emu_buffer; |
... | ... | |
762 | 762 |
if(s->flags&CODEC_FLAG_EMU_EDGE){ |
763 | 763 |
if( (unsigned)src_x > s->h_edge_pos - (motion_x&3) - 8 |
764 | 764 |
|| (unsigned)src_y > s->v_edge_pos - (motion_y&3) - 8 ){ |
765 |
ff_emulated_edge_mc(s->edge_emu_buffer, ptr,
|
|
765 |
s->dsp.emulated_edge_mc(s->edge_emu_buffer, ptr,
|
|
766 | 766 |
s->linesize, 9, 9, |
767 | 767 |
src_x, src_y, |
768 | 768 |
s->h_edge_pos, s->v_edge_pos); |
Also available in: Unified diff