* [gentoo-commits] gentoo-x86 commit in media-video/jubler/files: jubler-3.9.6.patch jubler-3.9.6-ffmpegfix.patch
@ 2008-10-29 20:22 Serkan Kaba (serkan)
0 siblings, 0 replies; only message in thread
From: Serkan Kaba (serkan) @ 2008-10-29 20:22 UTC (permalink / raw
To: gentoo-commits
serkan 08/10/29 20:22:21
Added: jubler-3.9.6.patch jubler-3.9.6-ffmpegfix.patch
Log:
Version bump that works with newer ffmpeg. Fixes bug #218091, #242946. Thanks to Luca Barbato <lu_zero@gentoo.org>, Alexis Ballier <aballier@gentoo.org> for help.
(Portage version: 2.2_rc12/cvs/Linux 2.6.25-gentoo-r7 x86_64)
Revision Changes Path
1.1 media-video/jubler/files/jubler-3.9.6.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/media-video/jubler/files/jubler-3.9.6.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/media-video/jubler/files/jubler-3.9.6.patch?rev=1.1&content-type=text/plain
Index: jubler-3.9.6.patch
===================================================================
diff -Nur Jubler-3.9.6/build.xml Jubler-3.9.6_patched/build.xml
--- Jubler-3.9.6/build.xml 2008-09-07 02:05:23.000000000 +0300
+++ Jubler-3.9.6_patched/build.xml 2008-09-22 19:40:36.000000000 +0300
@@ -69,22 +69,6 @@
- <!-- Define new ant tasks -->
-
- <taskdef name="izpack"
- onerror="report"
- classpath="../../Tools/IzPack/standalone-compiler.jar"
- classname="com.izforge.izpack.ant.IzPackTask"/>
-
- <taskdef name="launch4j"
- onerror="report"
- classpath="../../Tools/launch4j/launch4j.jar:../TOOLS/launch4j/lib/xstream.jar"
- classname="net.sf.launch4j.ant.Launch4jTask"/>
-
- <taskdef name="jarbundler"
- onerror="report"
- classpath="../../Tools/jarbundler/jarbundler-1.9.jar"
- classname="net.sourceforge.jarbundler.JarBundler" />
@@ -397,9 +381,6 @@
- <target name="-pre-compile">
- <copy todir="src/com"> <fileset dir="resources/system/no_mac"/> </copy>
- </target>
<target name="-post-compile">
<delete dir="build/classes/com/apple" failonerror="false"/>
<delete dir="src/com/apple" failonerror="false"/>
diff -Nur Jubler-3.9.6/resources/ffdecode/Makefile Jubler-3.9.6_patched/resources/ffdecode/Makefile
--- Jubler-3.9.6/resources/ffdecode/Makefile 2008-09-22 11:01:58.000000000 +0300
+++ Jubler-3.9.6_patched/resources/ffdecode/Makefile 2008-09-22 19:41:30.000000000 +0300
@@ -12,9 +12,6 @@
# Name of the produced library
PROJ=ffdecode
-# Paths of include files
-JAVA_HOME=${shell /bin/sh ../system/findjava.sh -j}
-
# Current Path
CPATH=${shell pwd}
@@ -106,7 +103,6 @@
CCPREF_NOS=${shell echo ${CCPREF} | sed -e 's/-$$//g' }
DCONFIG=--with-mp4v2 --host=${CCPREF_NOS}
-CC=${CCPREF}gcc
RANLIB=${CCPREF}ranlib
ifeq (${NOSTRIP},)
@@ -121,7 +117,7 @@
.SUFFIXES:.o .c
.c.o:
- ${CC} ${CFLAGS} ${GCCOPTS} -std=c99 -pedantic -O3 -Wall ${INCS} -I${JAVA_HOME}/include -I${JAVA_HOME}/include/${SYSTEM} -c -o $@ $?
+ ${CC} ${CFLAGS} ${GCCOPTS} -std=c99 -pedantic -Wall ${INCS} -I${JAVA_HOME}/include -I${JAVA_HOME}/include/${SYSTEM} -c -o $@ $?
develop:javacheck
diff -Nur Jubler-3.9.6/src/com/panayotis/jubler/information/HelpBrowser.java Jubler-3.9.6_patched/src/com/panayotis/jubler/information/HelpBrowser.java
--- Jubler-3.9.6/src/com/panayotis/jubler/information/HelpBrowser.java 2008-09-08 18:22:32.000000000 +0300
+++ Jubler-3.9.6_patched/src/com/panayotis/jubler/information/HelpBrowser.java 2008-09-22 19:42:04.000000000 +0300
@@ -47,7 +47,7 @@
history = new ArrayList<String>();
- String initpage = "file:"+SystemFileFinder.getJublerAppPath()+"/help/jubler-faq.html";
+ String initpage = "file:"+SystemFileFinder.getJublerAppPath()+"/../help/jubler-faq.html";
setPage(initpage);
history.add(initpage);
diff -Nur Jubler-3.9.6/src/com/panayotis/jubler/Main.java Jubler-3.9.6_patched/src/com/panayotis/jubler/Main.java
--- Jubler-3.9.6/src/com/panayotis/jubler/Main.java 2008-09-16 12:51:40.000000000 +0300
+++ Jubler-3.9.6_patched/src/com/panayotis/jubler/Main.java 2008-09-22 19:42:48.000000000 +0300
@@ -105,17 +105,9 @@
/* Load arguments, in a mac way */
SystemDependent.initApplication();
- /* Check current version in a new thread */
- Thread versioncheck = new Thread() {
- public void run() {
- StaticJubler.initVersion();
- }
- };
-
new Jubler(); // Display initial Jubler window
splash.dispose(); // Hide splash screen
loader.start(); // initialize loader
- versioncheck.start();
}
static private MainSplash splash;
diff -Nur Jubler-3.9.6/src/com/panayotis/jubler/os/SystemDependent.java Jubler-3.9.6_patched/src/com/panayotis/jubler/os/SystemDependent.java
--- Jubler-3.9.6/src/com/panayotis/jubler/os/SystemDependent.java 2008-09-20 23:59:27.000000000 +0300
+++ Jubler-3.9.6_patched/src/com/panayotis/jubler/os/SystemDependent.java 2008-09-22 19:43:40.000000000 +0300
@@ -25,10 +25,6 @@
import static com.panayotis.jubler.i18n.I18N._;
-import com.apple.eawt.Application;
-import com.apple.eawt.ApplicationAdapter;
-import com.apple.eawt.ApplicationEvent;
-
import com.panayotis.jubler.Jubler;
import com.panayotis.jubler.Main;
import com.panayotis.jubler.StaticJubler;
@@ -113,10 +109,6 @@
public static void initApplication() {
- /* In Linux this is a dummy function */
- if (isMacOSX()) {
- JublerApp japp = new JublerApp();
- }
}
@@ -342,35 +334,3 @@
}
}
-
-
-class JublerApp extends Application {
- public JublerApp() {
- setEnabledPreferencesMenu(true);
- addApplicationListener(new ApplicationHandler());
- }
-}
-
-class ApplicationHandler extends ApplicationAdapter {
-
- public ApplicationHandler() {}
-
- public void handleAbout(ApplicationEvent event) {
- StaticJubler.showAbout();
- event.setHandled(true);
- }
-
- public void handlePreferences(ApplicationEvent event) {
- Jubler.prefs.showPreferencesDialog();
- event.setHandled(true);
- }
-
- public void handleQuit(ApplicationEvent event) {
- StaticJubler.prepareQuitAll();
- event.setHandled(false);
- }
-
- public void handleOpenFile(ApplicationEvent event) {
- Main.asyncAddSubtitle(event.getFilename());
- }
-}
diff -Nur Jubler-3.9.6/src/com/panayotis/jubler/os/SystemFileFinder.java Jubler-3.9.6_patched/src/com/panayotis/jubler/os/SystemFileFinder.java
--- Jubler-3.9.6/src/com/panayotis/jubler/os/SystemFileFinder.java 2008-09-08 18:22:32.000000000 +0300
+++ Jubler-3.9.6_patched/src/com/panayotis/jubler/os/SystemFileFinder.java 2008-09-22 19:44:30.000000000 +0300
@@ -58,15 +58,12 @@
}
public static boolean loadLibrary(String name) {
- File libfile = findFile("lib"+pathseparator+System.mapLibraryName(name));
- if (libfile!=null) {
try {
- System.load(libfile.getAbsolutePath());
+ System.loadLibrary(name);
return true;
} catch (UnsatisfiedLinkError e) {
e.printStackTrace();
}
- }
return false;
}
1.1 media-video/jubler/files/jubler-3.9.6-ffmpegfix.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/media-video/jubler/files/jubler-3.9.6-ffmpegfix.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/media-video/jubler/files/jubler-3.9.6-ffmpegfix.patch?rev=1.1&content-type=text/plain
Index: jubler-3.9.6-ffmpegfix.patch
===================================================================
--- Jubler-3.9.6/resources/ffdecode/decodeframe.c 2008-08-10 20:15:55.000000000 +0300
+++ jubler/resources/ffdecode/decodeframe.c 2008-10-29 06:46:11.000000000 +0200
@@ -39,19 +39,23 @@
#include "defaults.h"
#include "utilities.h"
+#define MAXSIZE 16383
+
+
AVPicture *decodeFrame(JNIEnv * env, jobject this, const char *input_filename, jlong timepos, jint *width, jint *height, jfloat resize);
int file_info(JNIEnv * env, jobject this, char *input_filename);
+void storenumb (jbyte * data, int number);
static int sws_flags = SWS_BICUBIC;
-JNIEXPORT jintArray JNICALL Java_com_panayotis_jubler_media_preview_decoders_FFMPEG_grabFrame(JNIEnv * env, jobject this, jstring video, jlong time, jfloat resize) {
+JNIEXPORT jbyteArray JNICALL Java_com_panayotis_jubler_media_preview_decoders_FFMPEG_grabFrame(JNIEnv * env, jobject this, jstring video, jlong time, jfloat resize) {
/* Pointers for c-like strings */
const char *video_c;
/* Here we'll store the frame for java */
- jintArray matrix = NULL;
- jint* matrixdata = NULL;
+ jbyteArray matrix = NULL;
+ jbyte* matrixdata = NULL;
/* Frame raw data */
AVPicture* pict;
@@ -65,18 +69,20 @@
if (pict) {
// make array
- matrix = (*env)->NewIntArray(env, width*height+2); // 4 bytes per pixel (int) plus picture information
+ matrix = (*env)->NewByteArray(env, width*height*3+4); // 3 bytes per pixel + picture width information (2*2)
if (matrix) {
/* Find pointer for matrix size */
- matrixdata = (*env)->GetIntArrayElements(env, matrix, 0);
+ matrixdata = (*env)->GetByteArrayElements(env, matrix, 0);
- /* This is a trick: the first 2 elements are not video data but the size of the video */
- matrixdata[0] = width;
- matrixdata[1] = height;
- memcpy(matrixdata+2, pict->data[0], 4*width*height);
+ /* This is a trick: the first 4 bytes are not video data but the size of the video */
+ storenumb(matrixdata, width);
+ storenumb(matrixdata+2, height);
+
+ /* Copy the actual color map to picture buffer */
+ memcpy(matrixdata+4, pict->data[0], 3*width*height);
/* Release the matrix data pointer */
- (*env)->ReleaseIntArrayElements(env, matrix, matrixdata, 0);
+ (*env)->ReleaseByteArrayElements(env, matrix, matrixdata, 0);
} else {
DEBUG(env, this, "grabFrame", "Can not create array into memory.");
}
@@ -206,14 +212,24 @@
av_free_packet(&pkt);
}
if (retflag != FALSE) {
- *width = (ccx->width) * resize;
- *height = (ccx->height) * resize;
+ /* Calculating new picture size and keep aspect ratio */
+ *width = (ccx->width) * resize;
+ *height = (ccx->height) * resize;
+ if (*width > MAXSIZE ) {
+ *height = ( (*height) * MAXSIZE) / (*width);
+ *width = MAXSIZE;
+ }
+ if (*height > MAXSIZE) {
+ *width = ( (*width) * MAXSIZE) / (*height);
+ *height = MAXSIZE;
+ }
+
DEBUG(env, this, "decodeFrame", "Resampling from (%i,%i) with resize factor %f to (%i,%i)",ccx->width, ccx->height, resize,*width, *height);
// Allocate an AVPicture
- avpicture_alloc(pict, PIX_FMT_RGBA32, *width, *height);
+ avpicture_alloc(pict, PIX_FMT_RGB24, *width, *height);
swsContext = sws_getCachedContext(swsContext,
ccx->width, ccx->height, ccx->pix_fmt,
- *width, *height, PIX_FMT_RGBA32,
+ *width, *height, PIX_FMT_RGB24,
sws_flags, NULL, NULL, NULL);
if (swsContext == NULL) {
DEBUG(env, this, "decodeFrame", "swscale context initialization failed.");
@@ -264,5 +280,8 @@
return 0;
}
-
+void storenumb (jbyte * data, int number) {
+ data[0] = number/128;
+ data[1] = number % 128;
+}
--- Jubler-3.9.6/src/com/panayotis/jubler/media/preview/decoders/FFMPEG.java 2008-09-08 18:22:10.000000000 +0300
+++ jubler/src/com/panayotis/jubler/media/preview/decoders/FFMPEG.java 2008-10-29 06:46:03.000000000 +0200
@@ -56,23 +56,8 @@
public final class FFMPEG extends NativeDecoder {
private static boolean library_is_present = false;
- private static final int[] bitmasks;
- private static final ColorModel cmodel;
-
-
static {
library_is_present = SystemFileFinder.loadLibrary("ffdecode");
-
- int[] LE_BITMASKS = {0xff0000, 0xff00, 0xff, 0xff000000};
- int[] BE_BITMASKS = {0xff00, 0xff0000, 0xff000000, 0xff};
-
- if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) {
- bitmasks = LE_BITMASKS;
- cmodel = ColorModel.getRGBdefault();
- } else {
- bitmasks = BE_BITMASKS;
- cmodel = new DirectColorModel(32, bitmasks[0], bitmasks[1], bitmasks[2], bitmasks[3]);
- }
}
/** Creates a new instance of FFMPEG */
@@ -82,13 +67,16 @@
if ( vfile==null || (!isDecoderValid()) ) return null;
time *= 1000000;
- int[] frame = grabFrame(vfile.getPath(), (long)time, resize);
- if (frame==null) return null;
-
- SinglePixelPackedSampleModel model = new SinglePixelPackedSampleModel(DataBuffer.TYPE_INT,frame[0], frame[1], bitmasks);
- DataBufferInt buffer = new DataBufferInt(frame, frame[0]*frame[1], 2);
- WritableRaster ras = Raster.createWritableRaster(model, buffer, null);
- BufferedImage image = new BufferedImage(cmodel, ras, true, null);
+ byte[] data = grabFrame(vfile.getPath(), (long)time, resize);
+ if (data==null) return null;
+
+ byte[] frame = new byte[data.length-4];
+ int X = data[0] * 128 + data[1];
+ int Y = data[2] * 128 + data[3];
+ System.arraycopy(data, 4, frame, 0, frame.length);
+ BufferedImage image = new BufferedImage(X, Y, BufferedImage.TYPE_3BYTE_BGR);
+ WritableRaster raster = image.getRaster();
+ raster.setDataElements(0, 0, X, Y, frame);
return image;
}
@@ -152,7 +140,7 @@
}
/* Get the image for this timestamp */
- private native int[] grabFrame(String video, long time, float resize);
+ private native byte[] grabFrame(String video, long time, float resize);
/* Create a wav file from the specified time stamps */
private native boolean createClip(String audio, String wav, long from, long to);
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-10-29 20:22 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-29 20:22 [gentoo-commits] gentoo-x86 commit in media-video/jubler/files: jubler-3.9.6.patch jubler-3.9.6-ffmpegfix.patch Serkan Kaba (serkan)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox