Originally committed as revision 1002 to svn://svn.ffmpeg.org/ffmpeg/trunktags/v0.5
| @@ -113,12 +113,8 @@ static int dvvideo_decode_init(AVCodecContext *avctx) | |||||
| /* ugly way to get the idct & scantable */ | /* ugly way to get the idct & scantable */ | ||||
| /* XXX: fix it */ | /* XXX: fix it */ | ||||
| memset(&s2, 0, sizeof(MpegEncContext)); | memset(&s2, 0, sizeof(MpegEncContext)); | ||||
| s2.flags = avctx->flags; | |||||
| s2.avctx = avctx; | s2.avctx = avctx; | ||||
| // s2->out_format = FMT_MJPEG; | |||||
| s2.width = 8; | |||||
| s2.height = 8; | |||||
| if (MPV_common_init(&s2) < 0) | |||||
| if (DCT_common_init(&s2) < 0) | |||||
| return -1; | return -1; | ||||
| s->idct_put[0] = s2.idct_put; | s->idct_put[0] = s2.idct_put; | ||||
| @@ -129,8 +125,6 @@ static int dvvideo_decode_init(AVCodecContext *avctx) | |||||
| s->idct_put[1] = simple_idct248_put; | s->idct_put[1] = simple_idct248_put; | ||||
| memcpy(s->dv_zigzag[1], dv_248_zigzag, 64); | memcpy(s->dv_zigzag[1], dv_248_zigzag, 64); | ||||
| MPV_common_end(&s2); | |||||
| /* XXX: do it only for constant case */ | /* XXX: do it only for constant case */ | ||||
| dv_build_unquantize_tables(s); | dv_build_unquantize_tables(s); | ||||
| @@ -151,7 +145,7 @@ typedef struct BlockInfo { | |||||
| } BlockInfo; | } BlockInfo; | ||||
| /* block size in bits */ | /* block size in bits */ | ||||
| const static UINT16 block_sizes[6] = { | |||||
| static const UINT16 block_sizes[6] = { | |||||
| 112, 112, 112, 112, 80, 80 | 112, 112, 112, 112, 80, 80 | ||||
| }; | }; | ||||
| @@ -179,11 +179,10 @@ static void ff_jref_idct_add(UINT8 *dest, int line_size, DCTELEM *block) | |||||
| add_pixels_clamped(block, dest, line_size); | add_pixels_clamped(block, dest, line_size); | ||||
| } | } | ||||
| /* init common structure for both encoder and decoder */ | |||||
| int MPV_common_init(MpegEncContext *s) | |||||
| /* init common dct for both encoder and decoder */ | |||||
| int DCT_common_init(MpegEncContext *s) | |||||
| { | { | ||||
| int c_size, i; | |||||
| UINT8 *pict; | |||||
| int i; | |||||
| s->dct_unquantize_h263 = dct_unquantize_h263_c; | s->dct_unquantize_h263 = dct_unquantize_h263_c; | ||||
| s->dct_unquantize_mpeg1 = dct_unquantize_mpeg1_c; | s->dct_unquantize_mpeg1 = dct_unquantize_mpeg1_c; | ||||
| @@ -219,7 +218,6 @@ int MPV_common_init(MpegEncContext *s) | |||||
| #ifdef HAVE_MMI | #ifdef HAVE_MMI | ||||
| MPV_common_init_mmi(s); | MPV_common_init_mmi(s); | ||||
| #endif | #endif | ||||
| /* load & permutate scantables | /* load & permutate scantables | ||||
| note: only wmv uses differnt ones | note: only wmv uses differnt ones | ||||
| @@ -229,6 +227,17 @@ int MPV_common_init(MpegEncContext *s) | |||||
| ff_init_scantable(s, &s->intra_h_scantable, ff_alternate_horizontal_scan); | ff_init_scantable(s, &s->intra_h_scantable, ff_alternate_horizontal_scan); | ||||
| ff_init_scantable(s, &s->intra_v_scantable, ff_alternate_vertical_scan); | ff_init_scantable(s, &s->intra_v_scantable, ff_alternate_vertical_scan); | ||||
| return 0; | |||||
| } | |||||
| /* init common structure for both encoder and decoder */ | |||||
| int MPV_common_init(MpegEncContext *s) | |||||
| { | |||||
| int c_size, i; | |||||
| UINT8 *pict; | |||||
| DCT_common_init(s); | |||||
| s->mb_width = (s->width + 15) / 16; | s->mb_width = (s->width + 15) / 16; | ||||
| s->mb_height = (s->height + 15) / 16; | s->mb_height = (s->height + 15) / 16; | ||||
| @@ -489,6 +489,7 @@ typedef struct MpegEncContext { | |||||
| void (*idct_add)(UINT8 *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/); | void (*idct_add)(UINT8 *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/); | ||||
| } MpegEncContext; | } MpegEncContext; | ||||
| int DCT_common_init(MpegEncContext *s); | |||||
| int MPV_common_init(MpegEncContext *s); | int MPV_common_init(MpegEncContext *s); | ||||
| void MPV_common_end(MpegEncContext *s); | void MPV_common_end(MpegEncContext *s); | ||||
| void MPV_decode_mb(MpegEncContext *s, DCTELEM block[6][64]); | void MPV_decode_mb(MpegEncContext *s, DCTELEM block[6][64]); | ||||