diff -rup avmedia-orig/prj/build.lst avmedia/prj/build.lst
--- avmedia-orig/prj/build.lst	2006-08-17 16:04:56.000000000 +0200
+++ avmedia/prj/build.lst	2006-08-17 16:05:01.000000000 +0200
@@ -7,4 +7,5 @@ av  avmedia\source\framework	nmake	-	all
 av  avmedia\source\win	    	nmake	-	all	av_win	            									NULL
 av	avmedia\source\java			nmake	-	all	av_java	            									NULL
 av	avmedia\source\xine			nmake	-	all	av_xine	            									NULL
-av	avmedia\util				nmake	-	all	av_util av_viewer av_framework av_win av_java av_xine	NULL
+av	avmedia\source\gstreamer		nmake	-	all	av_gstreamer           									NULL
+av	avmedia\util				nmake	-	all	av_util av_viewer av_framework av_win av_java av_xine av_gstreamer	NULL
diff -rup avmedia-orig/source/inc/mediamisc.hxx avmedia/source/inc/mediamisc.hxx
--- avmedia-orig/source/inc/mediamisc.hxx	2006-08-17 16:04:56.000000000 +0200
+++ avmedia/source/inc/mediamisc.hxx	2006-08-17 16:06:41.000000000 +0200
@@ -37,13 +37,16 @@ class ResMgr;
 
 #define AVMEDIA_RESID( nId ) ResId( nId, ::avmedia::GetResMgr() )
 
+#ifdef GSTREAMER
+#define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_GStreamer"
+#else
 #ifdef WNT
 #define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_DirectX"
 #else
 #define AVMEDIA_MANAGER_SERVICE_NAME "com.sun.star.media.Manager_Java"
 #endif
+#endif
 
- 
 namespace avmedia
 {
     ResMgr* GetResMgr();
Index: mediawindow_impl.cxx
===================================================================
RCS file: /cvs/graphics/avmedia/source/viewer/mediawindow_impl.cxx,v
retrieving revision 1.7
diff -u -u -r1.7 mediawindow_impl.cxx
--- avmedia/source/viewer/mediawindow_impl.cxx	19 Jun 2006 13:59:09 -0000	1.7
+++ avmedia/source/viewer/mediawindow_impl.cxx	24 Aug 2006 14:17:41 -0000
@@ -44,6 +44,11 @@
 #include <osl/mutex.hxx>
 #include <tools/time.hxx>
 #include <vcl/svapp.hxx>
+#ifdef UNX
+#ifndef _SV_SYSDATA_HXX
+#include <vcl/sysdata.hxx>
+#endif
+#endif
 
 #ifndef _COM_SUN_STAR_AWT_SYSTEMPOINTER_HDL_
 #include <com/sun/star/awt/SystemPointer.hdl>
@@ -102,7 +108,11 @@
 // --------------------
 
 MediaChildWindow::MediaChildWindow( Window* pParent ) :
+#ifdef GSTREAMER
+	SystemChildWindow( pParent, WB_CLIPCHILDREN )
+#else
 	JavaChildWindow( pParent, WB_CLIPCHILDREN )
+#endif
 {
 }
 
@@ -119,7 +129,11 @@
 	const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ),
 								  		rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() );
 	
+#ifdef GSTREAMER
+	SystemChildWindow::MouseMove( rMEvt );
+#else
 	JavaChildWindow::MouseMove( rMEvt );
+#endif
 	GetParent()->MouseMove( aTransformedEvent );
 }
 
@@ -130,7 +144,11 @@
 	const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ),
 								  		rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() );
 	
+#ifdef GSTREAMER
+	SystemChildWindow::MouseButtonDown( rMEvt );
+#else
 	JavaChildWindow::MouseButtonDown( rMEvt );
+#endif
 	GetParent()->MouseButtonDown( aTransformedEvent );
 }
 
@@ -140,8 +158,12 @@
 {
 	const MouseEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rMEvt.GetPosPixel() ) ),
 								  		rMEvt.GetClicks(), rMEvt.GetMode(), rMEvt.GetButtons(), rMEvt.GetModifier() );
-	
+
+#ifdef GSTREAMER
+	SystemChildWindow::MouseButtonUp( rMEvt );
+#else
 	JavaChildWindow::MouseButtonUp( rMEvt );
+#endif
 	GetParent()->MouseButtonUp( aTransformedEvent );
 }
 
@@ -149,7 +171,11 @@
 
 void MediaChildWindow::KeyInput( const KeyEvent& rKEvt )
 {
+#ifdef GSTREAMER
+	SystemChildWindow::KeyInput( rKEvt );
+#else
 	JavaChildWindow::KeyInput( rKEvt );
+#endif
 	GetParent()->KeyInput( rKEvt );
 }
 
@@ -157,7 +183,11 @@
 
 void MediaChildWindow::KeyUp( const KeyEvent& rKEvt )
 {
+#ifdef GSTREAMER
+	SystemChildWindow::KeyUp( rKEvt );
+#else
 	JavaChildWindow::KeyUp( rKEvt );
+#endif
 	GetParent()->KeyUp( rKEvt );
 }
 
@@ -168,7 +198,11 @@
 	const CommandEvent aTransformedEvent( GetParent()->ScreenToOutputPixel( OutputToScreenPixel( rCEvt.GetMousePosPixel() ) ),
 								  		  rCEvt.GetCommand(), rCEvt.IsMouseEvent(), rCEvt.GetData() );
 	
+#ifdef GSTREAMER
+	SystemChildWindow::Command( rCEvt );
+#else
 	JavaChildWindow::Command( rCEvt );
+#endif
 	GetParent()->Command( aTransformedEvent );
 }
 
@@ -237,18 +270,31 @@ void MediaWindowImpl::onURLChanged()
 {
     if( getPlayer().is() )
     {
-        uno::Sequence< uno::Any >              aArgs( 2 );
+        uno::Sequence< uno::Any >              aArgs( 3 );
         uno::Reference< media::XPlayerWindow > xPlayerWindow;
        const Point                            aPoint;
                const Size                                                 aSize( maChildWindow.GetSizePixel() );
+#ifndef GSTREAMER
         const sal_Int32                        nWndHandle = static_cast< sal_Int32 >( maChildWindow.getParentWindowHandleForJava() );
+#else
+        const sal_Int32                        nWndHandle = 0;
+#endif

                aArgs[ 0 ] = uno::makeAny( nWndHandle );
                aArgs[ 1 ] = uno::makeAny( awt::Rectangle( aPoint.X(), aPoint.Y(), aSize.Width(), aSize.Height() ) );
+#ifdef GSTREAMER
+                const SystemEnvData *pSystemData = maChildWindow.GetSystemData();
+                OSL_TRACE( "MediaWindowImpl::onURLChanged xwindow id: %ld", pSystemData->aWindow );
+                aArgs[ 2 ] = uno::makeAny( pSystemData->aWindow );
+#endif

         try
         {
+#ifdef GSTREAMER
+            if( pSystemData->aWindow != 0 )
+#else
             if( nWndHandle != 0 )
+#endif
                 xPlayerWindow = getPlayer()->createPlayerWindow( aArgs );
         }
         catch( uno::RuntimeException )
Index: mediawindow_impl.hxx
===================================================================
RCS file: /cvs/graphics/avmedia/source/viewer/mediawindow_impl.hxx,v
retrieving revision 1.2
diff -u -u -r1.2 mediawindow_impl.hxx
--- avmedia/source/viewer/mediawindow_impl.hxx	7 Sep 2005 19:43:57 -0000	1.2
+++ avmedia/source/viewer/mediawindow_impl.hxx	24 Aug 2006 14:17:41 -0000
@@ -37,7 +37,11 @@
 #define _AVMEDIA_MEDIAWINDOW_IMPL_HXX
 
 #include <svtools/transfer.hxx>
+#ifdef GSTREAMER
+#include <vcl/syschild.hxx>
+#else
 #include <vcl/javachild.hxx>
+#endif
 
 #include "mediawindowbase_impl.hxx"
 #include "mediacontrol.hxx"
@@ -69,7 +73,11 @@
 		// - MediaChildWindow -
 		// --------------------
 		
+#ifdef GSTREAMER
+		class MediaChildWindow : public SystemChildWindow
+#else
 		class MediaChildWindow : public JavaChildWindow
+#endif
 		{
 		public:
 		
