public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [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