comparison mpegvideo.c @ 1339:338a2f6e6402 libavcodec

Mpeg2 16x8 Patch by ("Ivan Kalvachev" <ivan at cacad dot com>)
author michaelni
date Thu, 03 Jul 2003 23:29:00 +0000
parents ca3122e0a3cd
children 447b88b784ee
comparison
equal deleted inserted replaced
1338:e0e5483c32c5 1339:338a2f6e6402
2188 ref_picture, offset, 2188 ref_picture, offset,
2189 0, pix_op, 2189 0, pix_op,
2190 s->mv[dir][0][0], s->mv[dir][0][1], 16); 2190 s->mv[dir][0][0], s->mv[dir][0][1], 16);
2191 } 2191 }
2192 break; 2192 break;
2193 case MV_TYPE_16X8:{
2194 int offset;
2195 uint8_t ** ref2picture;
2196
2197 if(s->picture_structure == s->field_select[dir][0] + 1 || s->pict_type == B_TYPE || s->first_field){
2198 ref2picture= ref_picture;
2199 offset= s->field_select[dir][0] ? s->linesize : 0;
2200 }else{
2201 ref2picture= s->current_picture.data;
2202 offset= s->field_select[dir][0] ? s->linesize : -s->linesize;
2203 }
2204
2205 mpeg_motion(s, dest_y, dest_cb, dest_cr, 0,
2206 ref2picture, offset,
2207 0, pix_op,
2208 s->mv[dir][0][0], s->mv[dir][0][1], 8);
2209
2210
2211 if(s->picture_structure == s->field_select[dir][1] + 1 || s->pict_type == B_TYPE || s->first_field){
2212 ref2picture= ref_picture;
2213 offset= s->field_select[dir][1] ? s->linesize : 0;
2214 }else{
2215 ref2picture= s->current_picture.data;
2216 offset= s->field_select[dir][1] ? s->linesize : -s->linesize;
2217 }
2218 // I know it is ugly but this is the only way to fool emu_edge without rewrite mpeg_motion
2219 mpeg_motion(s, dest_y+16*s->linesize, dest_cb+8*s->uvlinesize, dest_cr+8*s->uvlinesize,
2220 0,
2221 ref2picture, offset,
2222 0, pix_op,
2223 s->mv[dir][1][0], s->mv[dir][1][1]+16, 8);
2224 }
2225
2226 break;
2193 case MV_TYPE_DMV: 2227 case MV_TYPE_DMV:
2194 { 2228 {
2195 op_pixels_func (*dmv_pix_op)[4]; 2229 op_pixels_func (*dmv_pix_op)[4];
2196 int offset; 2230 int offset;
2197 2231