comparison mpegvideo.c @ 1096:5e6e505d8997 libavcodec

field picture decoding support (16x16 MC blocks only as i dont have any samples which use other modes ...)
author michaelni
date Wed, 05 Mar 2003 17:48:19 +0000
parents c7604e6291c5
children b7f267d168b7
comparison
equal deleted inserted replaced
1095:c7604e6291c5 1096:5e6e505d8997
210 ff_init_scantable(s, &s->inter_scantable , ff_zigzag_direct); 210 ff_init_scantable(s, &s->inter_scantable , ff_zigzag_direct);
211 ff_init_scantable(s, &s->intra_scantable , ff_zigzag_direct); 211 ff_init_scantable(s, &s->intra_scantable , ff_zigzag_direct);
212 ff_init_scantable(s, &s->intra_h_scantable, ff_alternate_horizontal_scan); 212 ff_init_scantable(s, &s->intra_h_scantable, ff_alternate_horizontal_scan);
213 ff_init_scantable(s, &s->intra_v_scantable, ff_alternate_vertical_scan); 213 ff_init_scantable(s, &s->intra_v_scantable, ff_alternate_vertical_scan);
214 214
215 s->picture_structure= PICT_FRAME;
216
215 return 0; 217 return 0;
216 } 218 }
217 219
218 /** 220 /**
219 * allocates a Picture 221 * allocates a Picture
1853 ref_picture, s->field_select[dir][1] ? s->linesize : 0, 1855 ref_picture, s->field_select[dir][1] ? s->linesize : 0,
1854 1, pix_op, 1856 1, pix_op,
1855 s->mv[dir][1][0], s->mv[dir][1][1], 8); 1857 s->mv[dir][1][0], s->mv[dir][1][1], 8);
1856 } 1858 }
1857 } else { 1859 } else {
1858 1860 int offset;
1859 1861 if(s->picture_structure == s->field_select[dir][0] + 1 || s->pict_type == B_TYPE || s->first_field){
1862 offset= s->field_select[dir][0] ? s->linesize/2 : 0;
1863 }else{
1864 ref_picture= s->current_picture.data;
1865 offset= s->field_select[dir][0] ? s->linesize/2 : -s->linesize/2;
1866 }
1867
1868 mpeg_motion(s, dest_y, dest_cb, dest_cr, 0,
1869 ref_picture, offset,
1870 0, pix_op,
1871 s->mv[dir][0][0], s->mv[dir][0][1], 16);
1860 } 1872 }
1861 break; 1873 break;
1862 } 1874 }
1863 } 1875 }
1864 1876