gst/videoscale/gstvideoscale.c (gst_videoscale_get_size): gst/ffmpegcolorspace/gstffm...
authorAndy Wingo <wingo@pobox.com>
Thu, 4 Aug 2005 19:52:32 +0000 (19:52 +0000)
committerAndy Wingo <wingo@pobox.com>
Thu, 4 Aug 2005 19:52:32 +0000 (19:52 +0000)
Original commit message from CVS:
2005-08-04  Andy Wingo  <wingo@pobox.com>

* gst/videoscale/gstvideoscale.c (gst_videoscale_get_size):
* gst/ffmpegcolorspace/gstffmpegcolorspace.c
(gst_ffmpegcsp_get_size): Adapt to API changes.

* gst/videoscale/gstvideoscale.c (gst_videoscale_transform_ip):
Implement an in-place do-nothing transform.

ChangeLog
docs/libs/tmpl/gstcolorbalance.sgml
docs/libs/tmpl/gstmixer.sgml
gst/ffmpegcolorspace/gstffmpegcolorspace.c
gst/videoscale/gstvideoscale.c

index 019c89eecb6561f46f0cc7f75a5e8edb1c7bf807..73eb6b0fb9595a6b9f6f6f0d63f47d060861879d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-08-04  Andy Wingo  <wingo@pobox.com>
+
+       * gst/videoscale/gstvideoscale.c (gst_videoscale_get_size):
+       * gst/ffmpegcolorspace/gstffmpegcolorspace.c
+       (gst_ffmpegcsp_get_size): Adapt to API changes.
+
+       * gst/videoscale/gstvideoscale.c (gst_videoscale_transform_ip):
+       Implement an in-place do-nothing transform.
+
 2005-08-04  Ronald S. Bultje  <rbultje@ronald.bitfreak.net>
 
        * sys/ximage/ximagesink.c: (gst_ximagesink_ximage_put),
index 6190e66544cad7f051fee12b6ea5afc9f3498636..59fb98aa53fd571d09fb92c2f9bdd3de8e3b60de 100644 (file)
@@ -23,6 +23,15 @@ interface for elements that provide color balance operations
 </para>
 
 
+<!-- ##### SIGNAL GstColorBalance::value-changed ##### -->
+<para>
+
+</para>
+
+@gstcolorbalance: the object which received the signal.
+@arg1: 
+@arg2: 
+
 <!-- ##### STRUCT GstColorBalanceClass ##### -->
 <para>
 
index 8c2e0e2ab994dd0150280d607088e8ae765b68a4..126028378118a607615fc0aa63a71022400dff36 100644 (file)
@@ -48,18 +48,12 @@ gstmixer
 
 </para>
 
-@parent: 
-@values: 
-@_gst_reserved: 
 
 <!-- ##### STRUCT GstMixerTrack ##### -->
 <para>
 
 </para>
 
-@parent: 
-@label: 
-@flags: 
 
 <!-- ##### FUNCTION gst_mixer_list_tracks ##### -->
 <para>
index 383be879324e475abadbcc5d4a96116ad14bc4fb..266b8d16b62e6f505b9ccce1abdd4b877b760bf0 100644 (file)
@@ -91,7 +91,7 @@ static void gst_ffmpegcsp_init (GstFFMpegCsp * space);
 
 static gboolean gst_ffmpegcsp_set_caps (GstBaseTransform * btrans,
     GstCaps * incaps, GstCaps * outcaps);
-static guint gst_ffmpegcsp_get_size (GstBaseTransform * btrans);
+static guint gst_ffmpegcsp_get_size (GstBaseTransform * btrans, GstCaps * caps);
 static GstFlowReturn gst_ffmpegcsp_transform
     (GstBaseTransform * btrans, GstBuffer * inbuf, GstBuffer * outbuf);
 static GstFlowReturn gst_ffmpegcsp_transform_ip
@@ -311,13 +311,17 @@ gst_ffmpegcsp_init (GstFFMpegCsp * space)
 }
 
 static guint
-gst_ffmpegcsp_get_size (GstBaseTransform * btrans)
+gst_ffmpegcsp_get_size (GstBaseTransform * btrans, GstCaps * caps)
 {
   GstFFMpegCsp *space;
-  guint size;
+  guint size = -1;
 
   space = GST_FFMPEGCSP (btrans);
-  size = avpicture_get_size (space->to_pixfmt, space->width, space->height);
+  if (gst_caps_is_equal (caps, GST_PAD_CAPS (btrans->srcpad))) {
+    size = avpicture_get_size (space->to_pixfmt, space->width, space->height);
+  } else if (gst_caps_is_equal (caps, GST_PAD_CAPS (btrans->sinkpad))) {
+    size = avpicture_get_size (space->from_pixfmt, space->width, space->height);
+  }
 
   return size;
 }
index a08e5568a9e8b151ea6099062fcef908c40c671c..1d11f26d7c1fa62f8dccc5def6600e25632677a3 100644 (file)
@@ -149,7 +149,9 @@ static GstCaps *gst_videoscale_transform_caps (GstBaseTransform * trans,
     GstPad * pad, GstCaps * caps);
 static gboolean gst_videoscale_set_caps (GstBaseTransform * trans,
     GstCaps * in, GstCaps * out);
-static guint gst_videoscale_get_size (GstBaseTransform * trans);
+static guint gst_videoscale_get_size (GstBaseTransform * trans, GstCaps * caps);
+static GstFlowReturn gst_videoscale_transform_ip (GstBaseTransform * trans,
+    GstBuffer * in);
 static GstFlowReturn gst_videoscale_transform (GstBaseTransform * trans,
     GstBuffer * in, GstBuffer * out);
 
@@ -218,6 +220,7 @@ gst_videoscale_class_init (GstVideoscaleClass * klass)
   trans_class->transform_caps = gst_videoscale_transform_caps;
   trans_class->set_caps = gst_videoscale_set_caps;
   trans_class->get_size = gst_videoscale_get_size;
+  trans_class->transform_ip = gst_videoscale_transform_ip;
   trans_class->transform = gst_videoscale_transform;
 
   parent_class = g_type_class_peek_parent (klass);
@@ -421,15 +424,20 @@ gst_videoscale_prepare_sizes (GstVideoscale * videoscale, VSImage * src,
 }
 
 static guint
-gst_videoscale_get_size (GstBaseTransform * trans)
+gst_videoscale_get_size (GstBaseTransform * trans, GstCaps * caps)
 {
   GstVideoscale *videoscale;
   VSImage dest;
   VSImage src;
+  guint size = -1;
 
   videoscale = GST_VIDEOSCALE (trans);
 
-  return (guint) gst_videoscale_prepare_sizes (videoscale, &src, &dest, TRUE);
+  if (gst_caps_is_equal (caps, GST_PAD_CAPS (trans->srcpad)))
+    size = gst_videoscale_prepare_sizes (videoscale, &src, &dest, TRUE);
+  /* don't have an easy way of getting the size on the sink side for now... */
+
+  return size;
 }
 
 static void
@@ -462,6 +470,12 @@ gst_videoscale_prepare_images (GstVideoscale * videoscale, GstBuffer * in,
   }
 }
 
+static GstFlowReturn
+gst_videoscale_transform_ip (GstBaseTransform * trans, GstBuffer * in)
+{
+  return GST_FLOW_OK;
+}
+
 static GstFlowReturn
 gst_videoscale_transform (GstBaseTransform * trans, GstBuffer * in,
     GstBuffer * out)