aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/i386/mpegvideo_mmx.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2002-08-29 23:55:32 +0000
committerMichael Niedermayer <michaelni@gmx.at>2002-08-29 23:55:32 +0000
commit28db7fce02f94c83cddc611f8811a6e8afd57050 (patch)
tree311bd4619432ddab25232c4a07a5639e45d79900 /libavcodec/i386/mpegvideo_mmx.c
parente647c59840f37b6918f5315cf1f8e5c2ea03ba95 (diff)
downloadffmpeg-28db7fce02f94c83cddc611f8811a6e8afd57050.tar.gz
slow but accurate integer dct from IJG (should be ok with the LGPL as the old DCT is the fast integer DCT from IJG)
per context DCT selection Originally committed as revision 878 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/i386/mpegvideo_mmx.c')
-rw-r--r--libavcodec/i386/mpegvideo_mmx.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/libavcodec/i386/mpegvideo_mmx.c b/libavcodec/i386/mpegvideo_mmx.c
index fceccf7bd2..10efc173f3 100644
--- a/libavcodec/i386/mpegvideo_mmx.c
+++ b/libavcodec/i386/mpegvideo_mmx.c
@@ -552,16 +552,21 @@ void unused_var_warning_killer(){
void MPV_common_init_mmx(MpegEncContext *s)
{
if (mm_flags & MM_MMX) {
+ const int dct_algo= s->avctx->dct_algo;
s->dct_unquantize_h263 = dct_unquantize_h263_mmx;
s->dct_unquantize_mpeg1 = dct_unquantize_mpeg1_mmx;
s->dct_unquantize_mpeg2 = dct_unquantize_mpeg2_mmx;
draw_edges = draw_edges_mmx;
- if(mm_flags & MM_MMXEXT){
- dct_quantize= dct_quantize_MMX2;
- } else {
- dct_quantize= dct_quantize_MMX;
+ if(dct_algo==FF_DCT_AUTO || dct_algo==FF_DCT_MMX){
+ s->fdct = fdct_mmx;
+
+ if(mm_flags & MM_MMXEXT){
+ s->dct_quantize= dct_quantize_MMX2;
+ } else {
+ s->dct_quantize= dct_quantize_MMX;
+ }
}
}
}