mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-16 04:15:05 +00:00
Mpeg2 16x8 Patch by ("Ivan Kalvachev" <ivan at cacad dot com>)
Originally committed as revision 2006 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
17705a3420
commit
d55e93e48b
@ -2189,6 +2189,40 @@ static inline void MPV_motion(MpegEncContext *s,
|
|||||||
0, pix_op,
|
0, pix_op,
|
||||||
s->mv[dir][0][0], s->mv[dir][0][1], 16);
|
s->mv[dir][0][0], s->mv[dir][0][1], 16);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
case MV_TYPE_16X8:{
|
||||||
|
int offset;
|
||||||
|
uint8_t ** ref2picture;
|
||||||
|
|
||||||
|
if(s->picture_structure == s->field_select[dir][0] + 1 || s->pict_type == B_TYPE || s->first_field){
|
||||||
|
ref2picture= ref_picture;
|
||||||
|
offset= s->field_select[dir][0] ? s->linesize : 0;
|
||||||
|
}else{
|
||||||
|
ref2picture= s->current_picture.data;
|
||||||
|
offset= s->field_select[dir][0] ? s->linesize : -s->linesize;
|
||||||
|
}
|
||||||
|
|
||||||
|
mpeg_motion(s, dest_y, dest_cb, dest_cr, 0,
|
||||||
|
ref2picture, offset,
|
||||||
|
0, pix_op,
|
||||||
|
s->mv[dir][0][0], s->mv[dir][0][1], 8);
|
||||||
|
|
||||||
|
|
||||||
|
if(s->picture_structure == s->field_select[dir][1] + 1 || s->pict_type == B_TYPE || s->first_field){
|
||||||
|
ref2picture= ref_picture;
|
||||||
|
offset= s->field_select[dir][1] ? s->linesize : 0;
|
||||||
|
}else{
|
||||||
|
ref2picture= s->current_picture.data;
|
||||||
|
offset= s->field_select[dir][1] ? s->linesize : -s->linesize;
|
||||||
|
}
|
||||||
|
// I know it is ugly but this is the only way to fool emu_edge without rewrite mpeg_motion
|
||||||
|
mpeg_motion(s, dest_y+16*s->linesize, dest_cb+8*s->uvlinesize, dest_cr+8*s->uvlinesize,
|
||||||
|
0,
|
||||||
|
ref2picture, offset,
|
||||||
|
0, pix_op,
|
||||||
|
s->mv[dir][1][0], s->mv[dir][1][1]+16, 8);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case MV_TYPE_DMV:
|
case MV_TYPE_DMV:
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user