Add directdrawsink to build and dist it, so it gets built when compiling with MingW...
authorVincent Torri <vtorri@univ-evry.fr>
Wed, 3 Jan 2007 19:54:33 +0000 (19:54 +0000)
committerTim-Philipp Müller <tim@centricular.net>
Wed, 3 Jan 2007 19:54:33 +0000 (19:54 +0000)
Original commit message from CVS:
Patch by: Vincent Torri  <vtorri at univ-evry fr>
* configure.ac:
* sys/Makefile.am:
* sys/directdraw/Makefile.am:
Add directdrawsink to build and dist it, so it gets built when
compiling with MingW on win32 and the required headers and libraries
are available (fixes: #392313).
* sys/directdraw/gstdirectdrawsink.c:
(gst_directdrawsink_center_rect), (gst_directdrawsink_show_frame),
(gst_directdrawsink_setup_ddraw),
(gst_directdrawsink_surface_create):
Comment out some unused things and fix some printf format issues in
order to avoid warnings when buildling with MingW (#392313).

ChangeLog
configure.ac
sys/Makefile.am
sys/directdraw/Makefile.am [new file with mode: 0644]
sys/directdraw/gstdirectdrawsink.c

index d987eca..ea62d49 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
 2007-01-03  Tim-Philipp Müller  <tim at centricular dot net>
 
+       Patch by: Vincent Torri  <vtorri at univ-evry fr>
+
+       * configure.ac:
+       * sys/Makefile.am:
+       * sys/directdraw/Makefile.am:
+         Add directdrawsink to build and dist it, so it gets built when
+         compiling with MingW on win32 and the required headers and libraries
+         are available (fixes: #392313).
+
+       * sys/directdraw/gstdirectdrawsink.c:
+       (gst_directdrawsink_center_rect), (gst_directdrawsink_show_frame),
+       (gst_directdrawsink_setup_ddraw),
+       (gst_directdrawsink_surface_create):
+         Comment out some unused things and fix some printf format issues in
+         order to avoid warnings when buildling with MingW (#392313).
+
+2007-01-03  Tim-Philipp Müller  <tim at centricular dot net>
+
        Patch by: Jens Granseuer  <jensgr at gmx net>
 
        * ext/xvid/gstxvidenc.c: (gst_xvidenc_encode),
index 7a1bcd8..0a6131d 100644 (file)
@@ -280,6 +280,42 @@ GST_CHECK_FEATURE(X, [X libraries and plugins],
   CPPFLAGS="$ac_cppflags_save"
 ])
 
+dnl DirectDraw
+translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTDRAW, true)
+GST_CHECK_FEATURE(DIRECTDRAW, [DirectDraw plug-in], directdrawsink, [
+  HAVE_DIRECTDRAW="no"
+  AC_CHECK_HEADERS(windows.h ddraw.h, have_ddraw_headers="yes", have_ddraw_headers="no")
+  if test "x$have_ddraw_headers" = "xyes" ; then
+    save_LIBS="$LIBS"
+    LIBS="$LIBS -lddraw -lgdi32"
+    AC_MSG_CHECKING(for DirectDraw LDFLAGS)
+    AC_LINK_IFELSE([
+#include <windows.h>
+#include <ddraw.h>
+
+int main ()
+{
+  GetStockObject(0);
+  DirectDrawCreate(NULL, NULL, NULL);
+
+  return 0;
+}
+],
+      HAVE_DIRECTDRAW="yes",
+      HAVE_DIRECTDRAW="no")
+    AC_MSG_RESULT($HAVE_DIRECTDRAW)
+    LIBS=$save_LIBS
+  fi
+
+  if test "x$HAVE_DIRECTDRAW" = "xyes";  then
+    dnl this is much more than we want
+    DIRECTDRAW_LIBS="-lddraw -lgdi32"
+    AC_SUBST(DIRECTDRAW_CFLAGS)
+    AC_SUBST(DIRECTDRAW_LIBS)
+  fi
+  AC_SUBST(HAVE_DIRECTDRAW)
+])
+
 dnl *** ext plug-ins ***
 dnl keep this list sorted alphabetically !
 
@@ -851,6 +887,7 @@ gst-libs/gst/Makefile
 sys/Makefile
 sys/glsink/Makefile
 sys/dvb/Makefile
+sys/directdraw/Makefile
 examples/Makefile
 examples/directfb/Makefile
 ext/amrwb/amrwb-code/Makefile
index 3866499..66c97a3 100644 (file)
@@ -34,6 +34,12 @@ else
 DVB_DIR=
 endif
 
-SUBDIRS = $(GL_DIR) $(DVB_DIR)
+if USE_DIRECTDRAW
+DIRECTDRAW_DIR=directdraw
+else
+DIRECTDRAW_DIR=
+endif
+
+SUBDIRS = $(GL_DIR) $(DVB_DIR) $(DIRECTDRAW_DIR)
 
-DIST_SUBDIRS = glsink dvb
+DIST_SUBDIRS = glsink dvb directdraw
diff --git a/sys/directdraw/Makefile.am b/sys/directdraw/Makefile.am
new file mode 100644 (file)
index 0000000..999f026
--- /dev/null
@@ -0,0 +1,9 @@
+plugin_LTLIBRARIES = libgstdirectdrawsink.la\r
+\r
+libgstdirectdrawsink_la_SOURCES =  gstdirectdrawsink.c gstdirectdrawplugin.c\r
+libgstdirectdrawsink_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \\r
+       $(GST_PLUGINS_BASE_CFLAGS)\r
+libgstdirectdrawsink_la_LIBADD = $(DIRECTDRAW_LIBS) \\r
+       $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \\r
+       -lgstinterfaces-$(GST_MAJORMINOR)\r
+libgstdirectdrawsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)\r
index ec449c7..ff1d8de 100644 (file)
@@ -168,6 +168,7 @@ gst_ddrawvideosink_get_format_from_caps (GstCaps * caps,
   return ret;
 }
 
+/*
 static GstCaps *
 gst_ddrawvideosink_get_caps_from_format (DDPIXELFORMAT pixel_format)
 {
@@ -201,6 +202,7 @@ gst_ddrawvideosink_get_caps_from_format (DDPIXELFORMAT pixel_format)
 
   return caps;
 }
+*/
 
 static void
 gst_directdrawsink_center_rect (RECT src, RECT dst, RECT * result)
@@ -241,7 +243,7 @@ gst_directdrawsink_center_rect (RECT src, RECT dst, RECT * result)
   }
 
   GST_CAT_INFO (directdrawsink_debug,
-      "source is %dx%d dest is %dx%d, result is %dx%d with x,y %dx%d",
+      "source is %ldx%ld dest is %ldx%ld, result is %ldx%ld with x,y %ldx%ld",
       src_width, src_height, dst_width, dst_heigth,
       result->right - result->left, result->bottom - result->top, result->left,
       result->right);
@@ -1189,8 +1191,7 @@ gst_directdrawsink_show_frame (GstBaseSink * bsink, GstBuffer * buf)
               "IDirectDrawSurface_Blt returned %s", DDErrorString (hRes));
         else
           GST_CAT_INFO (directdrawsink_debug,
-              "allocated surface was blit to our primary",
-              DDErrorString (hRes));
+              "allocated surface was blit to our primary");
       }
     }
   }
@@ -1212,7 +1213,7 @@ gst_directdrawsink_setup_ddraw (GstDirectDrawSink * ddrawsink)
   /*UUID IDirectDraw7_ID;
 
      //IDirectDraw_QueryInterface()
-     /*create an instance of the ddraw object 
+     create an instance of the ddraw object 
      hRes = DirectDrawCreateEx (DDCREATE_EMULATIONONLY, (void**)&ddrawsink->ddraw_object,
      (REFIID)IID_IDirectDraw7, NULL);
    */
@@ -1679,7 +1680,7 @@ gst_directdrawsink_surface_create (GstDirectDrawSink * ddrawsink,
 
     if (surf_lock_desc.lPitch != pitch) {
       GST_CAT_INFO (directdrawsink_debug,
-          "DDraw stride/pitch %d isn't as expected value %d, let's continue allocating buffer.",
+          "DDraw stride/pitch %ld isn't as expected value %d, let's continue allocating buffer.",
           surf_lock_desc.lPitch, pitch);
 
       /*Unlock the surface as we will change it to use system memory with a GStreamer compatible pitch */
@@ -1688,7 +1689,7 @@ gst_directdrawsink_surface_create (GstDirectDrawSink * ddrawsink,
     }
 
     GST_CAT_INFO (directdrawsink_debug,
-        "allocating a surface of %d bytes (stride=%d)\n", size,
+        "allocating a surface of %d bytes (stride=%ld)\n", size,
         surf_lock_desc.lPitch);
     GST_BUFFER_DATA (surface) = surf_lock_desc.lpSurface;
     GST_BUFFER_SIZE (surface) = surf_lock_desc.lPitch * surface->height;
@@ -1718,7 +1719,9 @@ gst_directdrawsink_surface_create (GstDirectDrawSink * ddrawsink,
   /* Keep a ref to our sink */
   surface->ddrawsink = gst_object_ref (ddrawsink);
 
-beach:
+  /*
+     beach:
+   */
   return surface;
 }