Index: video.c
===================================================================
RCS file: /cvsroot/gstreamer/gst-plugins/gst-libs/gst/video/video.c,v
retrieving revision 1.2
diff -u -r1.2 video.c
--- video.c	29 Sep 2002 17:16:40 -0000	1.2
+++ video.c	30 Jan 2003 20:39:41 -0000
@@ -33,20 +33,53 @@
 
   /* do a convert request on the source pad */
   if (!gst_pad_convert(pad,
-			GST_FORMAT_TIME, GST_SECOND * NUM_UNITS,
-			&dest_format, &dest_value))
+                       GST_FORMAT_TIME, GST_SECOND * NUM_UNITS,
+                       &dest_format, &dest_value))
   {
     g_warning("gstvideo: pad %s:%s failed to convert time to unit!\n",
-		GST_ELEMENT_NAME(gst_pad_get_parent (pad)), GST_PAD_NAME(pad));
+              GST_ELEMENT_NAME(gst_pad_get_parent (pad)), GST_PAD_NAME(pad));
     return 0.;
   }
 
   fps = ((gdouble) dest_value) / NUM_UNITS;
 
   GST_DEBUG(GST_CAT_ELEMENT_PADS, "Framerate request on pad %s:%s - %f fps",
-		GST_ELEMENT_NAME(gst_pad_get_parent (pad)), GST_PAD_NAME(pad), fps);
+            GST_ELEMENT_NAME(gst_pad_get_parent (pad)), GST_PAD_NAME(pad), fps);
 
   return fps;
+}
+
+gboolean
+gst_video_get_size (GstPad *pad,
+                    gint   *width,
+                    gint   *height)
+{
+  GstCaps *caps;
+
+  g_return_val_if_fail(pad != NULL, FALSE);
+
+  caps = GST_PAD_CAPS(pad);
+  if (!caps) {
+    g_warning("gstvideo: failed to get caps of pad %s:%s",
+              GST_ELEMENT_NAME(gst_pad_get_parent (pad)), GST_PAD_NAME(pad));
+    return FALSE;
+  }
+  if (!gst_caps_has_property(caps, "width") ||
+      !gst_caps_has_property(caps, "height")) {
+    g_warning("gstvideo: resulting caps doesn't have width/height properties");
+    return FALSE;
+  }
+
+  if (width)
+    gst_caps_get_int(caps, "width", width);
+  if (height)
+    gst_caps_get_int(caps, "height", height);
+
+  GST_DEBUG(GST_CAT_ELEMENT_PADS, "size request on pad %s:%s: %dx%d",
+	    GST_ELEMENT_NAME(gst_pad_get_parent (pad)), GST_PAD_NAME(pad),
+            width?*width:0, height?*height:0);
+
+  return TRUE;
 }
 
 static gboolean
Index: video.h
===================================================================
RCS file: /cvsroot/gstreamer/gst-plugins/gst-libs/gst/video/video.h,v
retrieving revision 1.2
diff -u -r1.2 video.h
--- video.h	9 Nov 2002 18:31:27 -0000	1.2
+++ video.h	30 Jan 2003 20:39:41 -0000
@@ -23,6 +23,9 @@
 
 #include <gst/gst.h>
 
-gdouble gst_video_frame_rate (GstPad *pad);
+gdouble  gst_video_frame_rate (GstPad *pad);
+gboolean gst_video_get_size   (GstPad *pad,
+                               gint   *width,
+                               gint   *height);
 
 #endif /* __GST_VIDEO_H__ */
