diff -ru Project-X_0.91.0//noguisources.lst Project-X_0.91.0.new/noguisources.lst --- Project-X_0.91.0//noguisources.lst 2011-03-27 15:48:48.000000000 +0200 +++ Project-X_0.91.0.new/noguisources.lst 2011-04-09 16:54:28.886676016 +0200 @@ -67,6 +67,7 @@ src/net/sourceforge/dvb/projectx/video/IDCTRefNative.java src/net/sourceforge/dvb/projectx/video/IDCTSseNative.java src/net/sourceforge/dvb/projectx/video/MpvDecoder.java +src/net/sourceforge/dvb/projectx/video/IDCTFast.java src/net/sourceforge/dvb/projectx/video/Preview.java src/net/sourceforge/dvb/projectx/video/PreviewObject.java src/net/sourceforge/dvb/projectx/video/Video.java Binary files Project-X_0.91.0//ProjectX.jar and Project-X_0.91.0.new/ProjectX.jar differ diff -ru Project-X_0.91.0//sources.lst Project-X_0.91.0.new/sources.lst --- Project-X_0.91.0//sources.lst 2011-03-27 15:02:42.000000000 +0200 +++ Project-X_0.91.0.new/sources.lst 2011-04-09 16:54:12.916676017 +0200 @@ -67,6 +67,7 @@ src/net/sourceforge/dvb/projectx/video/IDCTRefNative.java src/net/sourceforge/dvb/projectx/video/IDCTSseNative.java src/net/sourceforge/dvb/projectx/video/MpvDecoder.java +src/net/sourceforge/dvb/projectx/video/IDCTFast.java src/net/sourceforge/dvb/projectx/video/Preview.java src/net/sourceforge/dvb/projectx/video/PreviewObject.java src/net/sourceforge/dvb/projectx/video/Video.java diff -ru Project-X_0.91.0//src/net/sourceforge/dvb/projectx/video/MpvDecoder.java Project-X_0.91.0.new/src/net/sourceforge/dvb/projectx/video/MpvDecoder.java --- Project-X_0.91.0//src/net/sourceforge/dvb/projectx/video/MpvDecoder.java 2011-03-27 15:01:38.000000000 +0200 +++ Project-X_0.91.0.new/src/net/sourceforge/dvb/projectx/video/MpvDecoder.java 2011-04-09 16:51:16.936676017 +0200 @@ -74,6 +74,7 @@ private IDCTRefNative idct; private IDCTSseNative idctsse; + private IDCTFast idctfast; private int preview_horizontal_size = 512; private int preview_vertical_size = 288; @@ -133,14 +134,20 @@ public MpvDecoder() { Arrays.fill(pixels2, 0xFF505050); + idctfast = new IDCTFast(); idct = new IDCTRefNative(); idctsse = new IDCTSseNative(); + if (IDCTFast.isLibraryLoaded()) + idctfast.init(); + if (IDCTRefNative.isLibraryLoaded()) idct.init(); - if (IDCTRefNative.isLibraryLoaded() || IDCTSseNative.isLibraryLoaded()) + if (IDCTFast.isLibraryLoaded() + || IDCTRefNative.isLibraryLoaded() + || IDCTSseNative.isLibraryLoaded()) acceleration = true; } @@ -2394,7 +2401,21 @@ //form_predictions(bx, by, macroblock_type, motion_type, PMV, motion_vertical_field_select, dmvector); - if (IDCTSseNative.isLibraryLoaded() && isAccelerated()) + if (IDCTFast.isLibraryLoaded() && isAccelerated()) + { + /* copy or add block data into picture */ + for (comp=0; comp