rpms/gstreamer-java/F-13 gstreamer-java-1.3-overlay.patch, NONE, 1.1 gstreamer-java.spec, 1.11, 1.12 import.log, 1.4, 1.5

Levente Farkas lfarkas at fedoraproject.org
Wed Feb 17 10:35:18 UTC 2010


Author: lfarkas

Update of /cvs/pkgs/rpms/gstreamer-java/F-13
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv26161/F-13

Modified Files:
	gstreamer-java.spec import.log 
Added Files:
	gstreamer-java-1.3-overlay.patch 
Log Message:
fix XOverlay on windows


gstreamer-java-1.3-overlay.patch:
 XOverlay.java |   61 ++++++++++++++++++++++++++++++----------------------------
 1 file changed, 32 insertions(+), 29 deletions(-)

--- NEW FILE gstreamer-java-1.3-overlay.patch ---
Index: src/org/gstreamer/interfaces/XOverlay.java
===================================================================
--- src/org/gstreamer/interfaces/XOverlay.java	(revision 332)
+++ src/org/gstreamer/interfaces/XOverlay.java	(working copy)
@@ -25,6 +25,7 @@
 
 import org.eclipse.swt.SWT;
 import org.gstreamer.Element;
+import org.gstreamer.GstException;
 
 import com.sun.jna.Native;
 import com.sun.jna.NativeLong;
@@ -66,14 +67,12 @@
             GSTXOVERLAY_API.gst_x_overlay_set_xwindow_id(this, new NativeLong(0));
             return;
         }
-        if (window.isLightweight()) {
-            throw new IllegalArgumentException("Component must be be a native window");
-        }
-        if (Platform.isWindows()) {
+        if (window.isLightweight())
+            throw new IllegalArgumentException("Component must be a native window");
+        if (Platform.isWindows())
             GSTXOVERLAY_API.gst_x_overlay_set_xwindow_id(this, Native.getComponentPointer(window));
-        } else {
+        else
             GSTXOVERLAY_API.gst_x_overlay_set_xwindow_id(this, new NativeLong(Native.getComponentID(window)));
-        }
     }
     
     /**
@@ -82,29 +81,33 @@
      * @param window A native window to use to display video, or <tt>null</tt> to
      * stop using the previously set window.
      */
-	public void setWindowID(org.eclipse.swt.widgets.Composite comp) {
-		// Composite style must be embedded
-		if (!Platform.isLinux() || comp == null || (comp.getStyle() | SWT.EMBEDDED) == 0) {
-			GSTXOVERLAY_API.gst_x_overlay_set_xwindow_id(this, new NativeLong(0));
-			return;
-		}
-		// TODO: Test on windows and mac
-		int handle;
-		try {
-			Class<? extends org.eclipse.swt.widgets.Composite> compClass = comp.getClass();
-			Field embedHandleField = compClass.getField("embeddedHandle");
-			handle = embedHandleField.getInt(comp);
-			GSTXOVERLAY_API.gst_x_overlay_set_xwindow_id(this, new NativeLong(handle));
-		} catch (IllegalArgumentException e) {
-			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			e.printStackTrace();
-		} catch (SecurityException e) {
-			e.printStackTrace();
-		} catch (NoSuchFieldException e) {
-			e.printStackTrace();
-		}
-	}
+    public void setWindowID(org.eclipse.swt.widgets.Composite comp) {
+        long handle;
+        // Composite style must be embedded
+        if (comp == null || ((comp.getStyle() | SWT.EMBEDDED) == 0))
+            throw new GstException("Cannot set window ID, in XOverlay interface, composite is null or not SWT.EMBEDDED");
+        if (Platform.isWindows()) {
+            handle = comp.handle;
+            GSTXOVERLAY_API.gst_x_overlay_set_xwindow_id(this, new NativeLong(handle));
+        } else if (Platform.isLinux()) {
+            try {
+                Class<? extends org.eclipse.swt.widgets.Composite> compClass = comp.getClass();
+                Field embedHandleField = compClass.getField("embeddedHandle");
+                handle = embedHandleField.getInt(comp);
+                GSTXOVERLAY_API.gst_x_overlay_set_xwindow_id(this, new NativeLong(handle));
+            } catch (IllegalArgumentException e) {
+                e.printStackTrace();
+            } catch (IllegalAccessException e) {
+                e.printStackTrace();
+            } catch (SecurityException e) {
+                e.printStackTrace();
+            } catch (NoSuchFieldException e) {
+                e.printStackTrace();
+            }
+        } else {
+            throw new GstException("Cannot set window ID, in XOverlay interface: not supported sink element on platform");
+        }
+    }
     
     /**
      * Tell an overlay that it has been exposed. This will redraw the current frame


Index: gstreamer-java.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gstreamer-java/F-13/gstreamer-java.spec,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -p -r1.11 -r1.12
--- gstreamer-java.spec	22 Jan 2010 13:17:08 -0000	1.11
+++ gstreamer-java.spec	17 Feb 2010 10:35:18 -0000	1.12
@@ -3,13 +3,14 @@
 Summary:	Java interface to the gstreamer framework
 Name:		gstreamer-java
 Version:	1.3
-Release:	2%{?dist}
+Release:	3%{?dist}
 License:	LGPLv3 and CC-BY-SA
 Group:		System Environment/Libraries
 URL:		http://code.google.com/p/gstreamer-java/
 # zip -r ~/rpm/SOURCES/gstreamer-java-src-1.3.zip gstreamer-java -x \*/.svn*
 Source:		http://gstreamer-java.googlecode.com/files/%{name}-src-%{version}.zip
-Patch:		%{name}-1.2-swt.patch
+Patch1:		%{name}-1.2-swt.patch
+Patch2:		%{name}-1.3-overlay.patch
 BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 # for ExcludeArch and no noarch see bug: 468831
 # since noarch pacakge can't contain ExcludeArch :-( imho it's an rpm bug
@@ -76,9 +77,10 @@ sed -i -e "s,\(file.reference.jna.jar=\)
 sed -i -e "s,\(file.reference.swt.jar=\).*,\1$(find %{_libdir} -name swt*.jar 2>/dev/null|sort|head -1)," \
 	nbproject/project.properties
 %else
-%patch -p1
+%patch1 -p1
 rm -rf src/org/gstreamer/swt src/org/gstreamer/example/SWTOverlayPlayer.java
 %endif
+%patch2
 
 
 %build
@@ -126,6 +128,9 @@ rm -rf %{buildroot}
 %{_javadocdir}/%{name}
 
 %changelog
+* Tue Feb 16 2010 Levente Farkas <lfarkas at lfarkas.org> - 1.3-3
+- fix XOverlay on windows
+
 * Fri Jan 22 2010 Levente Farkas <lfarkas at lfarkas.org> - 1.3-2
 - drop test from jar
 


Index: import.log
===================================================================
RCS file: /cvs/pkgs/rpms/gstreamer-java/F-13/import.log,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -p -r1.4 -r1.5
--- import.log	4 Jan 2010 15:21:26 -0000	1.4
+++ import.log	17 Feb 2010 10:35:18 -0000	1.5
@@ -2,3 +2,4 @@ gstreamer-java-0_9-0_2_20081023hg_fc9:HE
 gstreamer-java-1_0-1_fc9:HEAD:gstreamer-java-1.0-1.fc9.src.rpm:1226673751
 gstreamer-java-1_2-1_fc10:HEAD:gstreamer-java-1.2-1.fc10.src.rpm:1246391586
 gstreamer-java-1_3-1_fc12:HEAD:gstreamer-java-1.3-1.fc12.src.rpm:1262618370
+gstreamer-java-1_3-3_fc12:F-13:gstreamer-java-1.3-3.fc12.src.rpm:1266402675



More information about the scm-commits mailing list