Commit 6b33e918 authored by Michael Niedermayer's avatar Michael Niedermayer

mpegvideo: factorize ff_dct_encode_init()

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 71d6eb22
...@@ -772,7 +772,7 @@ int ff_MPV_encode_init(AVCodecContext *avctx); ...@@ -772,7 +772,7 @@ int ff_MPV_encode_init(AVCodecContext *avctx);
int ff_MPV_encode_end(AVCodecContext *avctx); int ff_MPV_encode_end(AVCodecContext *avctx);
int ff_MPV_encode_picture(AVCodecContext *avctx, AVPacket *pkt, int ff_MPV_encode_picture(AVCodecContext *avctx, AVPacket *pkt,
AVFrame *frame, int *got_packet); AVFrame *frame, int *got_packet);
void ff_MPV_encode_init_x86(MpegEncContext *s); void ff_dct_encode_init_x86(MpegEncContext *s);
void ff_MPV_common_init_x86(MpegEncContext *s); void ff_MPV_common_init_x86(MpegEncContext *s);
void ff_MPV_common_init_axp(MpegEncContext *s); void ff_MPV_common_init_axp(MpegEncContext *s);
void ff_MPV_common_init_mmi(MpegEncContext *s); void ff_MPV_common_init_mmi(MpegEncContext *s);
...@@ -799,6 +799,7 @@ void ff_er_frame_end(MpegEncContext *s); ...@@ -799,6 +799,7 @@ void ff_er_frame_end(MpegEncContext *s);
void ff_er_add_slice(MpegEncContext *s, int startx, int starty, int endx, int endy, int status); void ff_er_add_slice(MpegEncContext *s, int startx, int starty, int endx, int endy, int status);
int ff_dct_common_init(MpegEncContext *s); int ff_dct_common_init(MpegEncContext *s);
int ff_dct_encode_init(MpegEncContext *s);
void ff_convert_matrix(DSPContext *dsp, int (*qmat)[64], uint16_t (*qmat16)[2][64], void ff_convert_matrix(DSPContext *dsp, int (*qmat)[64], uint16_t (*qmat16)[2][64],
const uint16_t *quant_matrix, int bias, int qmin, int qmax, int intra); const uint16_t *quant_matrix, int bias, int qmin, int qmax, int intra);
int ff_dct_quantize_c(MpegEncContext *s, DCTELEM *block, int n, int qscale, int *overflow); int ff_dct_quantize_c(MpegEncContext *s, DCTELEM *block, int n, int qscale, int *overflow);
......
...@@ -267,6 +267,21 @@ static void MPV_encode_defaults(MpegEncContext *s) ...@@ -267,6 +267,21 @@ static void MPV_encode_defaults(MpegEncContext *s)
s->fcode_tab = default_fcode_tab; s->fcode_tab = default_fcode_tab;
} }
av_cold int ff_dct_encode_init(MpegEncContext *s) {
if (ARCH_X86)
ff_dct_encode_init_x86(s);
if (!s->dct_quantize)
s->dct_quantize = ff_dct_quantize_c;
if (!s->denoise_dct)
s->denoise_dct = denoise_dct_c;
s->fast_dct_quantize = s->dct_quantize;
if (s->avctx->trellis)
s->dct_quantize = dct_quantize_trellis_c;
return 0;
}
/* init video encoder */ /* init video encoder */
av_cold int ff_MPV_encode_init(AVCodecContext *avctx) av_cold int ff_MPV_encode_init(AVCodecContext *avctx)
{ {
...@@ -832,16 +847,7 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx) ...@@ -832,16 +847,7 @@ av_cold int ff_MPV_encode_init(AVCodecContext *avctx)
if (ff_MPV_common_init(s) < 0) if (ff_MPV_common_init(s) < 0)
return -1; return -1;
if (ARCH_X86) ff_dct_encode_init(s);
ff_MPV_encode_init_x86(s);
if (!s->dct_quantize)
s->dct_quantize = ff_dct_quantize_c;
if (!s->denoise_dct)
s->denoise_dct = denoise_dct_c;
s->fast_dct_quantize = s->dct_quantize;
if (avctx->trellis)
s->dct_quantize = dct_quantize_trellis_c;
if ((CONFIG_H263P_ENCODER || CONFIG_RV20_ENCODER) && s->modified_quant) if ((CONFIG_H263P_ENCODER || CONFIG_RV20_ENCODER) && s->modified_quant)
s->chroma_qscale_table = ff_h263_chroma_qscale_table; s->chroma_qscale_table = ff_h263_chroma_qscale_table;
......
...@@ -80,7 +80,7 @@ extern uint16_t ff_inv_zigzag_direct16[64]; ...@@ -80,7 +80,7 @@ extern uint16_t ff_inv_zigzag_direct16[64];
#include "mpegvideoenc_template.c" #include "mpegvideoenc_template.c"
#endif /* HAVE_SSSE3_INLINE */ #endif /* HAVE_SSSE3_INLINE */
void ff_MPV_encode_init_x86(MpegEncContext *s) void ff_dct_encode_init_x86(MpegEncContext *s)
{ {
int mm_flags = av_get_cpu_flags(); int mm_flags = av_get_cpu_flags();
const int dct_algo = s->avctx->dct_algo; const int dct_algo = s->avctx->dct_algo;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment