aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFraxinas <andreas.frisch@multimedia-labs.de>2009-06-18 09:29:36 +0200
committerghost <andreas.monzner@multimedia-labs.de>2009-06-25 16:57:14 +0200
commit29d116f1fd365c749806c583b13bf3d0d124ac63 (patch)
tree1769d0d8343d682adf97281d5ded361d3137f69d
parentc1dc7af215dfa207bb0b8e50adcbeeb9a887e340 (diff)
downloadopenembedded-29d116f1fd365c749806c583b13bf3d0d124ac63.tar.gz
projectx: add recipe for recent source (fixes crash on trying to demux TS recordings with 48k mono mp2 audio streams)
-rw-r--r--packages/projectx/projectx-0.90.4.00.b30.bb70
-rw-r--r--packages/projectx/projectx-0.90.4.00.b30/Makefile113
-rw-r--r--packages/projectx/projectx-0.90.4.00.b30/dreambox-headless.patch448
3 files changed, 631 insertions, 0 deletions
diff --git a/packages/projectx/projectx-0.90.4.00.b30.bb b/packages/projectx/projectx-0.90.4.00.b30.bb
new file mode 100644
index 0000000000..c702fce311
--- /dev/null
+++ b/packages/projectx/projectx-0.90.4.00.b30.bb
@@ -0,0 +1,70 @@
+DESCRIPTION = "Handle & repair many DVB radio & television stream types."
+MAINTAINER = "Andreas Frisch <andreas.frisch@multimedia-labs.de>"
+LICENSE="GPL-2"
+SECTION = "optional"
+DEPENDS = ""
+RDEPENDS = ""
+PN = "projectx"
+PV = "0.90.4.00.b30"
+PR = "r0"
+SRCDATE = "20090618"
+
+SRC_URI = "cvs://anonymous@project-x.cvs.sourceforge.net/cvsroot/project-x;module=Project-X;method=pserver\
+ file://dreambox-headless.patch;patch=1;pnum=0 \
+ file://Makefile"
+
+PRECOMPILED_N = "${PN}-mipsel-bin-20090618-${PV}.tar.bz2"
+PRECOMPILED_URI = "http://dreamboxupdate.com/download/opendreambox/${PRECOMPILED_N}"
+
+do_unpack_extra() {
+ mv ${WORKDIR}/Project-X ${S}
+ for dir in ${S}/src/net/sourceforge/dvb/projectx/*; do
+ cd $dir
+ for x in *.java; do
+ if [ "$x" != "*.java" ]; then
+ echo "Converting CP1250 to UTF-8 in $x"
+ iconv --from-code=CP1250 --to-code=UTF-8 < "$x" > "tmp.$x"
+ mv "tmp.$x" "$x"
+ fi
+ done
+ done
+ mv ${WORKDIR}/Makefile ${S}/src
+}
+addtask unpack_extra after do_unpack before do_patch
+
+do_compile_prepend() {
+ export CROSS_LIBDIR="${CROSS_DIR}/${TARGET_SYS}/lib"
+ export GCJ_ARCH=""
+ for gcjarchives in libgcj.a libgij.a; do
+ if test -e ${CROSS_LIBDIR}/$gcjarchives; then
+ export GCJ_ARCHIVES="${GCJ_ARCHIVES} ${CROSS_LIBDIR}/$gcjarchives"
+ fi
+ done
+ if [ "${GCJ_ARCHIVES}" = "" ]; then
+ echo gcj not found, downloading statically linked binary
+ exit
+ else
+ echo ${GCJ_ARCHIVES} found, compiling...
+ fi
+}
+
+do_compile() {
+ export JFLAGS="-g0 -O3 -march=mips32"
+ export CROSS_COMPILE=${TARGET_PREFIX}
+ cd ${S}/src
+ make projectx
+}
+
+do_download_precompiled_binary() {
+ if ! test -e ${S}/src/projectx; then
+ cd ${S}/src
+ wget ${PRECOMPILED_URI}
+ tar -xjf ${PRECOMPILED_N}
+ fi
+}
+addtask download_precompiled_binary after do_compile before do_install
+
+do_install() {
+ install -d ${D}/${bindir}
+ install -m 755 ${S}/src/projectx ${D}/${bindir}/
+}
diff --git a/packages/projectx/projectx-0.90.4.00.b30/Makefile b/packages/projectx/projectx-0.90.4.00.b30/Makefile
new file mode 100644
index 0000000000..17db01652f
--- /dev/null
+++ b/packages/projectx/projectx-0.90.4.00.b30/Makefile
@@ -0,0 +1,113 @@
+OBJS = \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormat.o \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormatAAC.o \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormatAC3.o \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormatDTS.o \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormatLPCM.o \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormatMPA.o \
+ ./net/sourceforge/dvb/projectx/audio/AudioFormatWAV.o \
+ ./net/sourceforge/dvb/projectx/audio/MpaConverter.o \
+ ./net/sourceforge/dvb/projectx/audio/MpaDecoder.o \
+ ./net/sourceforge/dvb/projectx/common/Common.o \
+ ./net/sourceforge/dvb/projectx/common/GuiInterface.o \
+ ./net/sourceforge/dvb/projectx/common/GuiInterfaceIF.o \
+ ./net/sourceforge/dvb/projectx/common/JobCollection.o \
+ ./net/sourceforge/dvb/projectx/common/JobProcessing.o \
+ ./net/sourceforge/dvb/projectx/common/Keys.o \
+ ./net/sourceforge/dvb/projectx/common/Resource.o \
+ ./net/sourceforge/dvb/projectx/common/Settings.o \
+ ./net/sourceforge/dvb/projectx/common/Start.o \
+ ./net/sourceforge/dvb/projectx/io/BitWalker.o \
+ ./net/sourceforge/dvb/projectx/io/IDDBufferedOutputStream.o \
+ ./net/sourceforge/dvb/projectx/io/RawFile.o \
+ ./net/sourceforge/dvb/projectx/io/StandardBuffer.o \
+ ./net/sourceforge/dvb/projectx/net/WebInterface.o \
+ ./net/sourceforge/dvb/projectx/net/X_URLDecoder.o \
+ ./net/sourceforge/dvb/projectx/parser/CommonParsing.o \
+ ./net/sourceforge/dvb/projectx/parser/Gop.o \
+ ./net/sourceforge/dvb/projectx/parser/GopArray.o \
+ ./net/sourceforge/dvb/projectx/parser/HpFix.o \
+ ./net/sourceforge/dvb/projectx/parser/MainProcess.o \
+ ./net/sourceforge/dvb/projectx/parser/Scan.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamBuffer.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamConverter.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamDemultiplexer.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParser.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserBase.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserESAudio.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserESSubpicture.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserESVideo.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserPESPrimary.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserPESSecondary.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserPVA.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamParserTS.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamProcess.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamProcessAudio.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamProcessBase.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamProcessLPCMAudio.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamProcessSubpicture.o \
+ ./net/sourceforge/dvb/projectx/parser/StreamProcessTeletext.o \
+ ./net/sourceforge/dvb/projectx/parser/StripAudio.o \
+ ./net/sourceforge/dvb/projectx/parser/StripMedion.o \
+ ./net/sourceforge/dvb/projectx/parser/StripRelook.o \
+ ./net/sourceforge/dvb/projectx/parser/TS_PMTParser.o \
+ ./net/sourceforge/dvb/projectx/parser/VBI.o \
+ ./net/sourceforge/dvb/projectx/subtitle/Bitmap.o \
+ ./net/sourceforge/dvb/projectx/subtitle/BMP.o \
+ ./net/sourceforge/dvb/projectx/subtitle/CharSet.o \
+ ./net/sourceforge/dvb/projectx/subtitle/ColorAreas.o \
+ ./net/sourceforge/dvb/projectx/subtitle/DVBSubpicture.o \
+ ./net/sourceforge/dvb/projectx/subtitle/Subpicture.o \
+ ./net/sourceforge/dvb/projectx/subtitle/Sup2VobSub.o \
+ ./net/sourceforge/dvb/projectx/subtitle/Teletext.o \
+ ./net/sourceforge/dvb/projectx/subtitle/UnicodeWriter.o \
+ ./net/sourceforge/dvb/projectx/thirdparty/Chapters.o \
+ ./net/sourceforge/dvb/projectx/thirdparty/D2V.o \
+ ./net/sourceforge/dvb/projectx/thirdparty/Ifo.o \
+ ./net/sourceforge/dvb/projectx/thirdparty/TS.o \
+ ./net/sourceforge/dvb/projectx/video/MpvDecoder.o \
+ ./net/sourceforge/dvb/projectx/video/Preview.o \
+ ./net/sourceforge/dvb/projectx/video/PreviewObject.o \
+ ./net/sourceforge/dvb/projectx/video/Video.o \
+ ./net/sourceforge/dvb/projectx/video/WSS.o \
+ ./net/sourceforge/dvb/projectx/xinput/DirType.o \
+ ./net/sourceforge/dvb/projectx/xinput/file/XInputDirectoryImpl.o \
+ ./net/sourceforge/dvb/projectx/xinput/file/XInputFileImpl.o \
+ ./net/sourceforge/dvb/projectx/xinput/FileType.o \
+ ./net/sourceforge/dvb/projectx/xinput/StreamInfo.o \
+ ./net/sourceforge/dvb/projectx/xinput/topfield_raw/RawFileInputStream.o \
+ ./net/sourceforge/dvb/projectx/xinput/topfield_raw/RawInterface.o \
+ ./net/sourceforge/dvb/projectx/xinput/topfield_raw/RawReadIF.o \
+ ./net/sourceforge/dvb/projectx/xinput/topfield_raw/XInputDirectoryImpl.o \
+ ./net/sourceforge/dvb/projectx/xinput/topfield_raw/XInputFileImpl.o \
+ ./net/sourceforge/dvb/projectx/xinput/XInputDirectory.o \
+ ./net/sourceforge/dvb/projectx/xinput/XInputDirectoryIF.o \
+ ./net/sourceforge/dvb/projectx/xinput/XInputFile.o \
+ ./net/sourceforge/dvb/projectx/xinput/XInputFileIF.o \
+ ./net/sourceforge/dvb/projectx/xinput/XInputStream.o
+
+all: projectx
+
+projectx: $(OBJS)
+ $(CROSS_COMPILE)gcj $(JFLAGS) -c -o ac3.o --resource ac3.bin ../resources/ac3.bin
+ $(CROSS_COMPILE)gcj $(JFLAGS) -c -o pjxresources_en.o --resource pjxresources_en.properties ../resources/pjxresources_en.properties
+ $(CROSS_COMPILE)gcj $(JFLAGS) $(OBJS) pjxresources_en.o ac3.o -o projectx \
+ --main=net.sourceforge.dvb.projectx.common.Start \
+ -Djava.awt.headless=true $(LDFLAGS) $(GCJ_ARCHIVES)
+ $(CROSS_COMPILE)strip --strip-all projectx
+
+projectx-static: $(OBJS)
+ $(CROSS_COMPILE)gcj $(JFLAGS) -c -o ac3.o --resource ac3.bin ../resources/ac3.bin
+ $(CROSS_COMPILE)gcj $(JFLAGS) -c -o pjxresources_en.o --resource pjxresources_en.properties ../resources/pjxresources_en.properties
+ $(CROSS_COMPILE)gcj $(JFLAGS) $(OBJS) pjxresources_en.o ac3.o -Djava.awt.headless=true --main=net.sourceforge.dvb.projectx.common.Start -save-temps
+ $(CROSS_COMPILE)gcc -o projectx $(OBJS) pjxresources_en.o ac3.o ./net.sourceforge.dvb.projectx.common.Startmain.i \
+ -shared-libgcc -Wl,-non_shared -lgcj -Wl,-call_shared -lsupc++ -Wl,--as-needed -lgcc_s -lpthread -lc -lm -ldl -Wl,--no-as-needed
+ $(CROSS_COMPILE)strip --strip-all projectx
+
+clean:
+ rm -rf $(OBJS)
+ rm *.o *.i *.s
+ rm projectx
+
+%.o: %.java
+ $(CROSS_COMPILE)gcj $(JFLAGS) -c $< -o $@
diff --git a/packages/projectx/projectx-0.90.4.00.b30/dreambox-headless.patch b/packages/projectx/projectx-0.90.4.00.b30/dreambox-headless.patch
new file mode 100644
index 0000000000..1bfab15d6b
--- /dev/null
+++ b/packages/projectx/projectx-0.90.4.00.b30/dreambox-headless.patch
@@ -0,0 +1,448 @@
+diff -bur src/net/sourceforge/dvb/projectx/common/Common.java src/net/sourceforge/dvb/projectx/common/Common.java
+--- src/net/sourceforge/dvb/projectx/common/Common.java 2007-03-24 21:19:33.000000000 +0100
++++ src/net/sourceforge/dvb/projectx/common/Common.java 2009-06-17 22:58:54.000000000 +0200
+@@ -81,8 +81,8 @@
+ public final class Common extends Object {
+
+ /* main version index */
+- private static String version_name = "ProjectX 0.90.4.00.b30";
+- private static String version_date = "16.05.2009";
++ private static String version_name = "ProjectX 0.90.4.00.b30.Dreambox";
++ private static String version_date = "18.06.2009";
+
+ private static String line_separator = System.getProperty("line.separator");
+
+@@ -235,10 +235,13 @@
+ {
+ StatusString = Resource.getString("run.status");
+
++ System.out.println("scan");
+ scan = new Scan();
+- subpicture = new Subpicture();
+- teletext = new Teletext();
++ System.out.println("subtitle");
++// subpicture = new Subpicture();
++ System.out.println("mpv decoder");
+ mpvdecoder = new MpvDecoder();
++ System.out.println("color models");
+ subpicture_colormodels = loadColorModels();
+ }
+
+@@ -288,8 +291,8 @@
+ guiInterface = new GuiInterface(showGUI);
+
+ //load gui
+- if (showGUI())
+- getGuiInterface().loadGui();
++// if (showGUI())
++// getGuiInterface().loadGui();
+ }
+
+ /**
+@@ -1414,7 +1417,7 @@
+ {
+ List list = new ArrayList();
+
+- list.add("Java Environment");
++/* list.add("Java Environment");
+ list.add(getDateAndTime());
+ list.add(Resource.getString("javaev.java.version") + "\t" + System.getProperty("java.version"));
+ list.add(Resource.getString("javaev.java.vendor") + "\t" + System.getProperty("java.vendor"));
+@@ -1441,7 +1444,7 @@
+ list.add(Resource.getString("javaev.java.user.lang") + "\t" + Resource.getChosenLanguage());
+ list.add(Resource.getString("javaev.java.user.name") + "\t" + System.getProperty("user.name"));
+ list.add(Resource.getString("javaev.java.user.home") + "\t" + System.getProperty("user.home"));
+-
++*/
+ return list.toArray();
+ }
+
+@@ -1533,7 +1536,9 @@
+
+ ProcessedPercent = percent;
+
+- getGuiInterface().updateProgressBar(ProcessedPercent);
++ System.out.println("[PROGRESS] " + ProcessedPercent);
++
++// getGuiInterface().updateProgressBar(ProcessedPercent);
+ }
+
+ /**
+@@ -1544,7 +1549,8 @@
+ public static void updateProgressBar(String str)
+ {
+ setStatusString(str);
+- getGuiInterface().updateProgressBar(str);
++ System.out.println("[PROGRESS] " + str);
++// getGuiInterface().updateProgressBar(str);
+ }
+
+ /**
+diff -bur src/net/sourceforge/dvb/projectx/common/Start.java src/net/sourceforge/dvb/projectx/common/Start.java
+--- src/net/sourceforge/dvb/projectx/common/Start.java 2007-03-24 21:19:33.000000000 +0100
++++ src/net/sourceforge/dvb/projectx/common/Start.java 2009-06-17 22:53:16.000000000 +0200
+@@ -209,8 +209,10 @@
+ /**
+ * environment
+ */
++ System.out.println("getJAVAEv");
+ environment = Common.getJavaEV(Common.getSettings().getInifile());
+
++ System.out.println("print");
+ for (int i = 0; i < environment.length; i++)
+ System.out.println(environment[i].toString());
+
+@@ -255,11 +257,12 @@
+ /**
+ * planned to disable ftp only, if commons-net is missing
+ */
+- if ((str = Common.checkLibraryAccess()) != null)
++/* if ((str = Common.checkLibraryAccess()) != null)
+ {
+ throw new Exception(str);
+ //System.out.println(ret);
+ }
++*/
+
+ System.out.println("Loading AC3 frames...");
+
+@@ -300,10 +303,7 @@
+
+ else
+ {
+- if (!Common.getGuiInterface().isAvailable())
+- System.out.println("Stopped! Can't start GUI, Classes not available...");
+-
+- else if (!Common.isCollectionListEmpty())
++ if (!Common.isCollectionListEmpty())
+ {
+ Common.getGuiInterface().addCollectionAtEnd();
+ Common.getGuiInterface().showActiveCollection(0);
+diff -bur -x'*.o' /dream/sources/cvs/projectx/Project-X/src/net/sourceforge/dvb/projectx/parser/MainProcess.java src/net/sourceforge/dvb/projectx/parser/MainProcess.java
+--- src/net/sourceforge/dvb/projectx/parser/MainProcess.java 2009-03-03 11:46:58.000000000 +0100
++++ src/net/sourceforge/dvb/projectx/parser/MainProcess.java 2009-06-18 08:26:26.000000000 +0200
+@@ -1162,9 +1162,9 @@
+
+ job_processing.setSplitSize(splitsize);
+
+- try {
+- Toolkit.getDefaultToolkit().beep();
+- } catch (Exception e) {}
++// try {
++// Toolkit.getDefaultToolkit().beep();
++// } catch (Exception e) {}
+
+ }
+
+diff -bur src/net/sourceforge/dvb/projectx/video/MpvDecoder.java src/net/sourceforge/dvb/projectx/video/MpvDecoder.java
+--- src/net/sourceforge/dvb/projectx/video/MpvDecoder.java 2007-01-25 21:06:16.000000000 +0100
++++ src/net/sourceforge/dvb/projectx/video/MpvDecoder.java 2009-06-17 23:03:59.000000000 +0200
+@@ -72,8 +72,8 @@
+
+ public class MpvDecoder extends Object {
+
+- private IDCTRefNative idct;
+- private IDCTSseNative idctsse;
++// private IDCTRefNative idct;
++// private IDCTSseNative idctsse;
+
+ private int preview_horizontal_size = 512;
+ private int preview_vertical_size = 288;
+@@ -134,14 +134,14 @@
+ {
+ Arrays.fill(pixels2, 0xFF505050);
+
+- idct = new IDCTRefNative();
+- idctsse = new IDCTSseNative();
++// idct = new IDCTRefNative();
++// idctsse = new IDCTSseNative();
+
+- if (IDCTRefNative.isLibraryLoaded())
+- idct.init();
++// if (IDCTRefNative.isLibraryLoaded())
++// idct.init();
+
+- if (IDCTRefNative.isLibraryLoaded() || IDCTSseNative.isLibraryLoaded())
+- acceleration = true;
++// if (IDCTRefNative.isLibraryLoaded() || IDCTSseNative.isLibraryLoaded())
++// acceleration = true;
+ }
+
+ /**
+@@ -184,35 +184,35 @@
+ private int ERROR_CODE1=0;
+
+ /* extension start code IDs */
+-final int SEQUENCE_EXTENSION_ID=1;
+-final int SEQUENCE_DISPLAY_EXTENSION_ID=2;
+-final int QUANT_MATRIX_EXTENSION_ID=3;
+-final int COPYRIGHT_EXTENSION_ID=4;
+-final int PICTURE_DISPLAY_EXTENSION_ID=7;
+-final int PICTURE_CODING_EXTENSION_ID=8;
+-final int ZIG_ZAG=0;
+-final int MB_WEIGHT=32;
+-final int MB_CLASS4=64;
+-final int MC_FIELD=1;
+-final int MC_FRAME=2;
+-final int MC_16X8=2;
+-final int MC_DMV=3;
+-final int MV_FIELD=0;
+-final int MV_FRAME=1;
+-final int I_TYPE=1;
+-final int P_TYPE=2;
+-final int B_TYPE=3;
+-final int TOP_FIELD=1;
+-final int BOTTOM_FIELD=2;
+-final int FRAME_PICTURE=3;
+-final int MACROBLOCK_INTRA=1;
+-final int MACROBLOCK_PATTERN=2;
+-final int MACROBLOCK_MOTION_BACKWARD=4;
+-final int MACROBLOCK_MOTION_FORWARD=8;
+-final int MACROBLOCK_QUANT=16;
+-final int CHROMA420=1;
+-final int CHROMA422=2;
+-final int CHROMA444=3;
++final byte SEQUENCE_EXTENSION_ID=1;
++final byte SEQUENCE_DISPLAY_EXTENSION_ID=2;
++final byte QUANT_MATRIX_EXTENSION_ID=3;
++final byte COPYRIGHT_EXTENSION_ID=4;
++final byte PICTURE_DISPLAY_EXTENSION_ID=7;
++final byte PICTURE_CODING_EXTENSION_ID=8;
++final byte ZIG_ZAG=0;
++final byte MB_WEIGHT=32;
++final byte MB_CLASS4=64;
++final byte MC_FIELD=1;
++final byte MC_FRAME=2;
++final byte MC_16X8=2;
++final byte MC_DMV=3;
++final byte MV_FIELD=0;
++final byte MV_FRAME=1;
++final byte I_TYPE=1;
++final byte P_TYPE=2;
++final byte B_TYPE=3;
++final byte TOP_FIELD=1;
++final byte BOTTOM_FIELD=2;
++final byte FRAME_PICTURE=3;
++final byte MACROBLOCK_INTRA=1;
++final byte MACROBLOCK_PATTERN=2;
++final byte MACROBLOCK_MOTION_BACKWARD=4;
++final byte MACROBLOCK_MOTION_FORWARD=8;
++final byte MACROBLOCK_QUANT=16;
++final byte CHROMA420=1;
++final byte CHROMA422=2;
++final byte CHROMA444=3;
+ final int IDCT_CLIP_TABLE_OFFSET=512;
+
+ private int q_scale_type=0; //1
+@@ -790,18 +790,18 @@
+ {-1,0},
+ {MACROBLOCK_MOTION_FORWARD,3},
+ {MACROBLOCK_PATTERN,2}, {MACROBLOCK_PATTERN,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,1}
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),1},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),1},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),1},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),1}
+ };
+
+ /* Table B-3, macroblock_type in P-pictures, codes 000001..00011x */
+ final byte PMBtab1[][] = {
+ {-1,0},
+- {MACROBLOCK_QUANT|MACROBLOCK_INTRA,6},
+- {MACROBLOCK_QUANT|MACROBLOCK_PATTERN,5}, {MACROBLOCK_QUANT|MACROBLOCK_PATTERN,5},
+- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,5}, {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,5},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_INTRA),6},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_PATTERN),5}, {(byte)(MACROBLOCK_QUANT|MACROBLOCK_PATTERN),5},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),5}, {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),5},
+ {MACROBLOCK_INTRA,5}, {MACROBLOCK_INTRA,5}
+ };
+
+@@ -809,32 +809,32 @@
+ final byte BMBtab0[][] = {
+ {-1,0},
+ {-1,0},
+- {MACROBLOCK_MOTION_FORWARD,4},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,4},
+- {MACROBLOCK_MOTION_BACKWARD,3},
+- {MACROBLOCK_MOTION_BACKWARD,3},
+- {MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,3},
+- {MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,3},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2},
+- {MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,2}
++ {(byte)(MACROBLOCK_MOTION_FORWARD),4},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),4},
++ {(byte)(MACROBLOCK_MOTION_BACKWARD),3},
++ {(byte)(MACROBLOCK_MOTION_BACKWARD),3},
++ {(byte)(MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),3},
++ {(byte)(MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),3},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),2},
++ {(byte)(MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),2}
+ };
+
+ /* Table B-4, macroblock_type in B-pictures, codes 000001..00011x */
+ final byte BMBtab1[][] = {
+ {-1,0},
+- {MACROBLOCK_QUANT|MACROBLOCK_INTRA,6},
+- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,6},
+- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN,6},
+- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,5},
+- {MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN,5},
+- {MACROBLOCK_INTRA,5},
+- {MACROBLOCK_INTRA,5}
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_INTRA),6},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),6},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_PATTERN),6},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),5},
++ {(byte)(MACROBLOCK_QUANT|MACROBLOCK_MOTION_FORWARD|MACROBLOCK_MOTION_BACKWARD|MACROBLOCK_PATTERN),5},
++ {(byte)(MACROBLOCK_INTRA),5},
++ {(byte)(MACROBLOCK_INTRA),5}
+ };
+
+ final double frame_rate_Table[] = {
+@@ -2308,33 +2308,33 @@
+ //form_predictions(bx, by, macroblock_type, motion_type, PMV, motion_vertical_field_select, dmvector);
+
+
+- if (IDCTSseNative.isLibraryLoaded() && isAccelerated())
+- {
+- /* copy or add block data into picture */
+- for (comp=0; comp<block_count; comp++)
+- {
+- /* ISO/IEC 13818-2 section Annex A: inverse DCT */
+- idctsse.referenceIDCT(block[comp]);
+-
+- /* ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data */
+- Add_Block(comp, bx, by, dct_type, (macroblock_type[0] & MACROBLOCK_INTRA)==0);
+- }
+- }
+-
+- else if (IDCTRefNative.isLibraryLoaded() && isAccelerated())
+- {
+- /* copy or add block data into picture */
+- for (comp=0; comp<block_count; comp++)
+- {
+- /* ISO/IEC 13818-2 section Annex A: inverse DCT */
+- idct.referenceIDCT(block[comp]);
+-
+- /* ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data */
+- Add_Block(comp, bx, by, dct_type, (macroblock_type[0] & MACROBLOCK_INTRA)==0);
+- }
+- }
+-
+- else
++// if (IDCTSseNative.isLibraryLoaded() && isAccelerated())
++// {
++// /* copy or add block data into picture */
++// for (comp=0; comp<block_count; comp++)
++// {
++// /* ISO/IEC 13818-2 section Annex A: inverse DCT */
++// idctsse.referenceIDCT(block[comp]);
++//
++// /* ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data */
++// Add_Block(comp, bx, by, dct_type, (macroblock_type[0] & MACROBLOCK_INTRA)==0);
++// }
++// }
++//
++// else if (IDCTRefNative.isLibraryLoaded() && isAccelerated())
++// {
++// /* copy or add block data into picture */
++// for (comp=0; comp<block_count; comp++)
++// {
++// /* ISO/IEC 13818-2 section Annex A: inverse DCT */
++// idct.referenceIDCT(block[comp]);
++//
++// /* ISO/IEC 13818-2 section 7.6.8: Adding prediction and coefficient data */
++// Add_Block(comp, bx, by, dct_type, (macroblock_type[0] & MACROBLOCK_INTRA)==0);
++// }
++// }
++//
++// else
+ {
+ /* copy or add block data into picture */
+ for (comp=0; comp<block_count; comp++)
+diff -bur src/net/sourceforge/dvb/projectx/xinput/DirType.java src/net/sourceforge/dvb/projectx/xinput/DirType.java
+--- src/net/sourceforge/dvb/projectx/xinput/DirType.java 2005-12-17 21:47:40.000000000 +0100
++++ src/net/sourceforge/dvb/projectx/xinput/DirType.java 2009-06-17 22:53:16.000000000 +0200
+@@ -45,8 +45,8 @@
+ /**
+ * Directory on a ftp server
+ */
+- public final static DirType FTP_DIR = new DirType(1, "FTP_DIR",
+- net.sourceforge.dvb.projectx.xinput.ftp.XInputDirectoryImpl.class);
++// public final static DirType FTP_DIR = new DirType(1, "FTP_DIR",
++// net.sourceforge.dvb.projectx.xinput.ftp.XInputDirectoryImpl.class);
+
+ /**
+ * Directory on a harddisk of a topfield receiver in raw format
+diff -bur src/net/sourceforge/dvb/projectx/xinput/FileType.java src/net/sourceforge/dvb/projectx/xinput/FileType.java
+--- src/net/sourceforge/dvb/projectx/xinput/FileType.java 2005-12-17 21:47:40.000000000 +0100
++++ src/net/sourceforge/dvb/projectx/xinput/FileType.java 2009-06-17 22:53:16.000000000 +0200
+@@ -45,8 +45,8 @@
+ /**
+ * File on a ftp server
+ */
+- public final static FileType FTP = new FileType(1, "FTP",
+- net.sourceforge.dvb.projectx.xinput.ftp.XInputFileImpl.class);
++// public final static FileType FTP = new FileType(1, "FTP",
++// net.sourceforge.dvb.projectx.xinput.ftp.XInputFileImpl.class);
+
+ /**
+ * File on a harddisk of a topfield receiver in raw format
+diff -bur src/net/sourceforge/dvb/projectx/xinput/XInputStream.java src/net/sourceforge/dvb/projectx/xinput/XInputStream.java
+--- src/net/sourceforge/dvb/projectx/xinput/XInputStream.java 2006-03-28 20:44:30.000000000 +0200
++++ src/net/sourceforge/dvb/projectx/xinput/XInputStream.java 2009-06-17 22:53:16.000000000 +0200
+@@ -31,8 +31,6 @@
+ import java.io.InputStream;
+ import java.io.BufferedInputStream;
+
+-import net.sourceforge.dvb.projectx.xinput.ftp.XInputFileImpl;
+-
+ import net.sourceforge.dvb.projectx.common.Common;
+ import net.sourceforge.dvb.projectx.common.Keys;
+
+@@ -42,7 +40,6 @@
+
+ private byte[] buffer = new byte[1];
+
+- private XInputFileImpl xInputFile = null;
+
+ /**
+ * Create stream, which is able to handle special needs of the xinput package.
+@@ -55,9 +52,6 @@
+ super(Common.getSettings().getBooleanProperty(Keys.KEY_additionalInputBuffer) ? new BufferedInputStream(aIs, 1048576) : aIs);
+ }
+
+- public void setFtpFile(XInputFileImpl aIf) {
+- xInputFile = aIf;
+- }
+
+ /**
+ * Takes care, that always the full amount of data is read (if possible).
+@@ -143,12 +137,6 @@
+ public final void close() throws IOException {
+ if (debug) System.out.println("Enter XInputStream.close()");
+
+- if (xInputFile != null)
+- {
+- xInputFile.randomAccessClose();
+- xInputFile = null;
+- }
+-
+ super.close();
+ if (debug) System.out.println("Leave XInputStream.close()");
+ }