File gst-plugins-bad-0.10.23-winks-git.patch of Package mingw32-gst-0_10-plugins-bad
--- configure.ac 0.10.23
+++ configure.ac git
@@ -538,6 +538,48 @@
AC_SUBST(HAVE_DIRECTDRAW)
])
+dnl DirectShow
+translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSHOW, true)
+AG_GST_CHECK_FEATURE(DIRECTSHOW, [DirectShow plug-in], winks, [
+ HAVE_DIRECTSHOW="no"
+ save_CFLAGS="$CFLAGS"
+ save_LDFLAGS="$LDFLAGS"
+ save_LIBS="$LIBS"
+ CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
+ LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
+ LIBS="$LIBS -lole32 -luuid -lstrmiids"
+ AC_MSG_CHECKING(for DirectShow LDFLAGS)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#include <windows.h>
+#include <strmif.h>
+#include <uuids.h>
+
+int main () {
+ IGraphBuilder *pGraph = NULL;
+ HRESULT hr = CoInitialize(NULL);
+ hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
+ &IID_IGraphBuilder, (void **)&pGraph);
+
+ return 0;
+}
+]])],
+ [HAVE_DIRECTSHOW="yes"],
+ [HAVE_DIRECTSHOW="no"])
+ AC_MSG_RESULT($HAVE_DIRECTSHOW)
+ CFLAGS=$save_CFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+
+ if test "x$HAVE_DIRECTSHOW" = "xyes"; then
+ dnl this is much more than we want
+ DIRECTSHOW_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
+ AC_SUBST(DIRECTX_CFLAGS)
+ AC_SUBST(DIRECTX_LDFLAGS)
+ AC_SUBST(DIRECTSHOW_LIBS)
+ fi
+ AC_SUBST(HAVE_DIRECTSHOW)
+])
+
dnl *** AppleMedia (OS X and iOS) ***
translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
HAVE_APPLE_MEDIA="no"
--- sys/Makefile.am 0.10.23
+++ sys/Makefile.am git
@@ -40,6 +40,12 @@
DIRECTDRAW_DIR=
endif
+if USE_DIRECTSHOW
+DIRECTSHOW_DIR=winks
+else
+DIRECTSHOW_DIR=
+endif
+
if USE_DIRECTSOUND
DIRECTSOUND_DIR=directsound
else
@@ -120,7 +126,7 @@
PVR_DIR=
endif
-SUBDIRS = $(ACM_DIR) $(APPLE_MEDIA_DIR) $(AVC_DIR) $(D3DVIDEOSINK_DIR) $(DECKLINK_DIR) $(DIRECTDRAW_DIR) $(DIRECTSOUND_DIR) $(DVB_DIR) $(FBDEV_DIR) $(LINSYS_DIR) $(OSX_VIDEO_DIR) $(QT_DIR) $(SHM_DIR) $(VCD_DIR) $(VDPAU_DIR) $(WININET_DIR) $(PVR_DIR)
+SUBDIRS = $(ACM_DIR) $(APPLE_MEDIA_DIR) $(AVC_DIR) $(D3DVIDEOSINK_DIR) $(DECKLINK_DIR) $(DIRECTDRAW_DIR) $(DIRECTSOUND_DIR) $(DIRECTSHOW_DIR) $(DVB_DIR) $(FBDEV_DIR) $(LINSYS_DIR) $(OSX_VIDEO_DIR) $(QT_DIR) $(SHM_DIR) $(VCD_DIR) $(VDPAU_DIR) $(WININET_DIR) $(PVR_DIR)
DIST_SUBDIRS = acmenc acmmp3dec applemedia avc d3dvideosink decklink directdraw directsound dvb linsys fbdev dshowdecwrapper dshowsrcwrapper dshowvideosink \
osxvideo qtwrapper shm vcd vdpau wasapi wininet winks winscreencap pvr2d
--- sys/winks/gstksclock.c 0.10.23
+++ sys/winks/gstksclock.c git
@@ -99,10 +99,7 @@
static void
gst_ks_clock_dispose (GObject * object)
{
- GstKsClock *self = GST_KS_CLOCK (object);
- GstKsClockPrivate *priv = GST_KS_CLOCK_GET_PRIVATE (self);
-
- g_assert (!priv->open);
+ g_assert (!GST_KS_CLOCK_GET_PRIVATE (GST_KS_CLOCK (object))->open);
G_OBJECT_CLASS (parent_class)->dispose (object);
}
@@ -126,7 +123,6 @@
gst_ks_clock_open (GstKsClock * self)
{
GstKsClockPrivate *priv = GST_KS_CLOCK_GET_PRIVATE (self);
- gboolean ret = FALSE;
GList *devices;
KsDeviceEntry *device;
KSSTATE state;
--- sys/winks/gstksvideodevice.c 0.10.23
+++ sys/winks/gstksvideodevice.c git
@@ -228,13 +228,13 @@
FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error_code, 0, buf, sizeof (buf),
NULL);
if (result != 0) {
- g_string_append_printf (message, "0x%08x: %s", error_code,
+ g_string_append_printf (message, "0x%08x: %s", (guint) error_code,
g_strchomp (buf));
} else {
DWORD format_error_code = GetLastError ();
g_string_append_printf (message,
- "<0x%08x (FormatMessage error code: %s)>", error_code,
+ "<0x%08x (FormatMessage error code: %s)>", (guint) error_code,
(format_error_code == ERROR_MR_MID_NOT_FOUND)
? "no system error message found"
: "failed to retrieve system error message");
@@ -340,7 +340,7 @@
{
guint i;
- GST_DEBUG ("%s supports %d property set%s", obj_name, propsets_len,
+ GST_DEBUG ("%s supports %lu property set%s", obj_name, propsets_len,
(propsets_len != 1) ? "s" : "");
for (i = 0; i < propsets_len; i++) {
@@ -589,7 +589,7 @@
}
}
- GST_DEBUG ("num_outstanding: %d alignment: 0x%08x", *num_outstanding,
+ GST_DEBUG ("num_outstanding: %lu alignment: 0x%08x", *num_outstanding,
alignment);
if (*num_outstanding == 0 || *num_outstanding > MAX_OUTSTANDING_FRAMES) {
@@ -713,7 +713,7 @@
/* State to be committed on success */
KsVideoMediaType *media_type = NULL;
- guint width, height, fps_n, fps_d;
+ gint width, height, fps_n, fps_d;
HANDLE pin_handle = INVALID_HANDLE_VALUE;
/* Reset? */
@@ -1080,7 +1080,7 @@
GST_DEBUG ("PictureNumber=%" G_GUINT64_FORMAT ", DropCount=%"
G_GUINT64_FORMAT ", PresentationTime=%" GST_TIME_FORMAT
- ", Duration=%" GST_TIME_FORMAT ", OptionsFlags=%s: %d bytes",
+ ", Duration=%" GST_TIME_FORMAT ", OptionsFlags=%s: %lu bytes",
frame_info->PictureNumber, frame_info->DropCount,
GST_TIME_ARGS (timestamp), GST_TIME_ARGS (duration),
options_flags_str, hdr->DataUsed);
--- sys/winks/gstksvideosrc.c 0.10.23
+++ sys/winks/gstksvideosrc.c git
@@ -368,7 +368,6 @@
static void
gst_ks_video_src_apply_driver_quirks (GstKsVideoSrc * self)
{
- GstKsVideoSrcPrivate *priv = GST_KS_VIDEO_SRC_GET_PRIVATE (self);
HMODULE mod;
/*
@@ -725,6 +724,8 @@
if (!gst_ks_video_src_start_worker (self))
goto open_failed;
break;
+ default:
+ break;
}
ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
@@ -733,6 +734,8 @@
case GST_STATE_CHANGE_READY_TO_NULL:
gst_ks_video_src_stop_worker (self);
break;
+ default:
+ break;
}
return ret;
--- sys/winks/kshelpers.c 0.10.23
+++ sys/winks/kshelpers.c git
@@ -25,6 +25,12 @@
GST_DEBUG_CATEGORY_EXTERN (gst_ks_debug);
#define GST_CAT_DEFAULT gst_ks_debug
+#ifndef STATIC_KSPROPSETID_Wave_Queued
+#define STATIC_KSPROPSETID_Wave_Queued \
+ 0x16a15b10L,0x16f0,0x11d0,0xa1,0x95,0x00,0x20,0xaf,0xd1,0x56,0xe4
+DEFINE_GUIDSTRUCT("16a15b10-16f0-11d0-a195-0020afd156e4", KSPROPSETID_Wave_Queued);
+#endif
+
gboolean
ks_is_valid_handle (HANDLE h)
{
--- sys/winks/ksvideohelpers.c 0.10.23
+++ sys/winks/ksvideohelpers.c git
@@ -33,11 +33,6 @@
0x38, 0x9B, 0x71}
};
-extern const GUID MEDIASUBTYPE_I420 =
- { 0x30323449, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B,
- 0x71}
-};
-
typedef struct _KsVideoDeviceEntry KsVideoDeviceEntry;
struct _KsVideoDeviceEntry
@@ -472,7 +467,7 @@
KSPROPERTY_PIN_CTYPES, &pin_count, sizeof (pin_count), NULL))
goto beach;
- GST_DEBUG ("pin_count = %d", pin_count);
+ GST_DEBUG ("pin_count = %lu", pin_count);
for (pin_id = 0; pin_id < pin_count; pin_id++) {
KSPIN_COMMUNICATION pin_comm;
--- sys/winks/Makefile.am 0.10.23
+++ sys/winks/Makefile.am git
@@ -1,9 +1,17 @@
-# This plugin isn't buildable with autotools at this point in time, so just
-# ensure everything's listed in EXTRA_DIST
+plugin_LTLIBRARIES = libgstwinks.la
-EXTRA_DIST = \
- gstksclock.c gstksclock.h \
- gstksvideodevice.c gstksvideodevice.h \
- gstksvideosrc.c gstksvideosrc.h \
+libgstwinks_la_SOURCES = gstksclock.c \
+ gstksvideodevice.c \
+ gstksvideosrc.c \
kshelpers.c kshelpers.h \
- ksvideohelpers.c ksvideohelpers.h
+ ksvideohelpers.c
+libgstwinks_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS) \
+ $(GST_PLUGINS_BASE_CFLAGS) $(DIRECTX_CFLAGS)
+libgstwinks_la_LIBADD = $(DIRECTSHOW_LIBS) \
+ $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \
+ -lgstinterfaces-$(GST_MAJORMINOR)
+libgstwinks_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(DIRECTX_LDFLAGS)
+libgstwinks_la_LIBTOOLFLAGS = --tag=disable-static
+
+noinst_HEADERS= gstksclock.h
+