diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-09-16 21:49:34 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2002-09-16 21:49:34 +0000 |
commit | d2db0f3bbdc81aae2c316751daf1d53b42a3e6a0 (patch) | |
tree | e9f4a94547ada41ea13445185a20305378d6c0bd /src/libffmpeg/libavcodec/i386/mpegvideo_mmx.c | |
parent | d35f836384d9fa164350612ead96362d9cd7b457 (diff) | |
download | xine-lib-d2db0f3bbdc81aae2c316751daf1d53b42a3e6a0.tar.gz xine-lib-d2db0f3bbdc81aae2c316751daf1d53b42a3e6a0.tar.bz2 |
- sync ffmpeg to cvs (sorry Mike it still doesn't decode your teststream --
something must be broken at ffmpeg, also happens with mplayer)
- added priority sorted lists, now autoprobing should work again.
- fixed infinite loop in plugin loader.
obs: latest ffmpeg contains ppc optimizations, someone will have to enable these
though.
CVS patchset: 2676
CVS date: 2002/09/16 21:49:34
Diffstat (limited to 'src/libffmpeg/libavcodec/i386/mpegvideo_mmx.c')
-rw-r--r-- | src/libffmpeg/libavcodec/i386/mpegvideo_mmx.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/libffmpeg/libavcodec/i386/mpegvideo_mmx.c b/src/libffmpeg/libavcodec/i386/mpegvideo_mmx.c index 390aa554c..10efc173f 100644 --- a/src/libffmpeg/libavcodec/i386/mpegvideo_mmx.c +++ b/src/libffmpeg/libavcodec/i386/mpegvideo_mmx.c @@ -195,7 +195,7 @@ static void dct_unquantize_mpeg1_mmx(MpegEncContext *s, const UINT16 *quant_matrix; if(s->alternate_scan) nCoeffs= 64; - else nCoeffs= nCoeffs= zigzag_end[ s->block_last_index[n] ]; + else nCoeffs= zigzag_end[ s->block_last_index[n] ]; if (s->mb_intra) { int block0; @@ -321,7 +321,7 @@ static void dct_unquantize_mpeg2_mmx(MpegEncContext *s, const UINT16 *quant_matrix; if(s->alternate_scan) nCoeffs= 64; - else nCoeffs= nCoeffs= zigzag_end[ s->block_last_index[n] ]; + else nCoeffs= zigzag_end[ s->block_last_index[n] ]; if (s->mb_intra) { int block0; @@ -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; + } } } } |