File gst-plugins-bad-0.10.23-winks-fix.patch of Package mingw32-gst-0_10-plugins-bad

--- configure.ac	git
+++ configure.ac	fixed
@@ -553,15 +553,11 @@
 #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"])
--- sys/winks/ksvideohelpers.c	git
+++ sys/winks/ksvideohelpers.c	fixed
@@ -501,6 +501,7 @@
           if (IsEqualGUID (&range->MajorFormat, &KSDATAFORMAT_TYPE_VIDEO)) {
             KsVideoMediaType *entry;
             gpointer src_vscc, src_format;
+            guint src_width, src_height;
             GstStructure *media_structure;
 
             entry = g_new0 (KsVideoMediaType, 1);
@@ -514,6 +515,8 @@
 
               src_vscc = &vr->ConfigCaps;
               src_format = &vr->VideoInfoHeader;
+              src_width = vr->VideoInfoHeader.bmiHeader.biWidth;
+              src_height = vr->VideoInfoHeader.bmiHeader.biHeight;
 
               entry->format_size = sizeof (vr->VideoInfoHeader);
               entry->sample_size = vr->VideoInfoHeader.bmiHeader.biSizeImage;
@@ -522,6 +525,8 @@
 
               src_vscc = &vr->ConfigCaps;
               src_format = &vr->VideoInfoHeader;
+              src_width = vr->VideoInfoHeader.bmiHeader.biWidth;
+              src_height = vr->VideoInfoHeader.bmiHeader.biHeight;
 
               entry->format_size = sizeof (vr->VideoInfoHeader);
               entry->sample_size = vr->VideoInfoHeader.bmiHeader.biSizeImage;
@@ -532,6 +537,8 @@
 
               src_vscc = &vr->ConfigCaps;
               src_format = &vr->VideoInfoHeader;
+              src_width = vr->VideoInfoHeader.hdr.bmiHeader.biWidth;
+              src_height = vr->VideoInfoHeader.hdr.bmiHeader.biHeight;
 
               entry->format_size = sizeof (vr->VideoInfoHeader);
               entry->sample_size =
@@ -543,6 +550,8 @@
 
               src_vscc = &vr->ConfigCaps;
               src_format = &vr->VideoInfoHeader;
+              src_width = vr->VideoInfoHeader.hdr.bmiHeader.biWidth;
+              src_height = vr->VideoInfoHeader.hdr.bmiHeader.biHeight;
 
               entry->format_size = sizeof (vr->VideoInfoHeader);
               entry->sample_size =
@@ -560,9 +569,19 @@
             }
 
             if (entry != NULL) {
+              KS_VIDEO_STREAM_CONFIG_CAPS *dst_vscc =
+                  (KS_VIDEO_STREAM_CONFIG_CAPS*)&entry->vscc;
+
               g_assert (entry->sample_size != 0);
 
-              memcpy ((gpointer) & entry->vscc, src_vscc, sizeof (entry->vscc));
+              memcpy (dst_vscc, src_vscc, sizeof (entry->vscc));
+
+              /* see FIXME at ks_video_fixate_media_type */
+              GST_FIXME("output size ranges not supported");
+              dst_vscc->MinOutputSize.cx = dst_vscc->MaxOutputSize.cx =
+                  src_width;
+              dst_vscc->MinOutputSize.cy = dst_vscc->MaxOutputSize.cy =
+                  src_height;
 
               entry->format = g_malloc (entry->format_size);
               memcpy (entry->format, src_format, entry->format_size);
@@ -670,8 +689,10 @@
   vih = (KS_VIDEOINFOHEADER *) format;
 
   /* FIXME: Need to figure out how to properly handle ranges */
-  if (bih->biWidth != width || bih->biHeight != height)
+  if (bih->biWidth != width || bih->biHeight != height) {
+    GST_FIXME("Invalid media size (ranges are not supported)");
     return FALSE;
+  }
 
   /* Framerate, clamped because of fraction conversion rounding errors */
   vih->AvgTimePerFrame =
--- sys/winks/Makefile.am	git
+++ sys/winks/Makefile.am	fixed
@@ -13,5 +13,5 @@
 libgstwinks_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(DIRECTX_LDFLAGS)
 libgstwinks_la_LIBTOOLFLAGS = --tag=disable-static
 
-noinst_HEADERS= gstksclock.h
+noinst_HEADERS= gstksclock.h gstksvideodevice.h gstksvideosrc.h ksvideohelpers.h
 
openSUSE Build Service is sponsored by