mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-17 20:17:55 +02:00
moved dct init out from mpv_common_init to dct_common_init (for less-uglier way for dv)
Originally committed as revision 1002 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
1e5c667c91
commit
defdfc9aa0
@ -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;
|
if (DCT_common_init(&s2) < 0)
|
||||||
s2.width = 8;
|
|
||||||
s2.height = 8;
|
|
||||||
if (MPV_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 */
|
/* init common dct for both encoder and decoder */
|
||||||
int MPV_common_init(MpegEncContext *s)
|
int DCT_common_init(MpegEncContext *s)
|
||||||
{
|
{
|
||||||
int c_size, i;
|
int i;
|
||||||
UINT8 *pict;
|
|
||||||
|
|
||||||
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;
|
||||||
@ -220,7 +219,6 @@ int MPV_common_init(MpegEncContext *s)
|
|||||||
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]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user