gst-indent
[platform/upstream/gst-plugins-good.git] / gst / avi / gstavidecoder.c
index d0e33ba..d4cb493 100644 (file)
@@ -31,12 +31,11 @@ static GstElementDetails gst_avi_decoder_details = {
   "Decoder/Video",
   "Decodes a .avi file into audio and video",
   VERSION,
-  "Erik Walthinsen <omega@cse.ogi.edu>\n"
-  "Wim Taymans <wim.taymans@tvd.be>",
+  "Erik Walthinsen <omega@cse.ogi.edu>\n" "Wim Taymans <wim.taymans@tvd.be>",
   "(C) 1999",
 };
 
-static GstCaps* avi_typefind (GstBuffer *buf, gpointer private);
+static GstCaps *avi_typefind (GstBuffer * buf, gpointer private);
 
 /* typefactory for 'avi' */
 static GstTypeDefinition avidefinition = {
@@ -47,12 +46,14 @@ static GstTypeDefinition avidefinition = {
 };
 
 /* AviDecoder signals and args */
-enum {
+enum
+{
   /* FILL ME */
   LAST_SIGNAL
 };
 
-enum {
+enum
+{
   ARG_0,
   ARG_BITRATE,
   ARG_MEDIA_TIME,
@@ -61,118 +62,104 @@ enum {
 };
 
 GST_PADTEMPLATE_FACTORY (sink_templ,
-  "sink",
-  GST_PAD_SINK,
-  GST_PAD_ALWAYS,
-  GST_CAPS_NEW (
-    "avidecoder_sink",
-     "video/avi",
-       "RIFF",  GST_PROPS_STRING ("AVI")
-  )
-)
-
-GST_PADTEMPLATE_FACTORY (src_video_templ,
-  "video_src",
-  GST_PAD_SRC,
-  GST_PAD_ALWAYS,
-  GST_CAPS_NEW (
-    "wincodec_src",
-    "video/raw",
-      "format",         GST_PROPS_LIST (
-                          GST_PROPS_FOURCC (GST_MAKE_FOURCC ('Y','U','Y','2')),
-                          GST_PROPS_FOURCC (GST_MAKE_FOURCC ('I','4','2','0')),
-                          GST_PROPS_FOURCC (GST_MAKE_FOURCC ('R','G','B',' '))
-                        ),
-      "width",          GST_PROPS_INT_RANGE (16, 4096),
-      "height",         GST_PROPS_INT_RANGE (16, 4096)
-  )
-)
-
-GST_PADTEMPLATE_FACTORY (src_audio_templ,
-  "audio_src",
-  GST_PAD_SRC,
-  GST_PAD_ALWAYS,
-  GST_CAPS_NEW (
-    "src_audio",
-    "audio/raw",
-      "format",           GST_PROPS_STRING ("int"),
-      "law",              GST_PROPS_INT (0),
-      "endianness",       GST_PROPS_INT (G_BYTE_ORDER),
-      "signed",           GST_PROPS_LIST (
-                           GST_PROPS_BOOLEAN (TRUE),
-                           GST_PROPS_BOOLEAN (FALSE)
-                         ),
-      "width",            GST_PROPS_LIST (
-                           GST_PROPS_INT (8),
-                           GST_PROPS_INT (16)
-                         ),
-      "depth",            GST_PROPS_LIST (
-                           GST_PROPS_INT (8),
-                           GST_PROPS_INT (16)
-                         ),
-      "rate",             GST_PROPS_INT_RANGE (11025, 48000),
-      "channels",         GST_PROPS_INT_RANGE (1, 2)
-  )
-)
-
-static void    gst_avi_decoder_class_init      (GstAviDecoderClass *klass);
-static void    gst_avi_decoder_init            (GstAviDecoder *avi_decoder);
-
-static void     gst_avi_decoder_get_property    (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
-
-
-
-static GstElementClass *parent_class = NULL;
+    "sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_CAPS_NEW ("avidecoder_sink",
+       "video/avi", "RIFF", GST_PROPS_STRING ("AVI")
+    )
+    )
+
+    GST_PADTEMPLATE_FACTORY (src_video_templ,
+    "video_src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_CAPS_NEW ("wincodec_src",
+       "video/raw",
+       "format", GST_PROPS_LIST (GST_PROPS_FOURCC (GST_MAKE_FOURCC ('Y', 'U', 'Y',
+                   '2')), GST_PROPS_FOURCC (GST_MAKE_FOURCC ('I', '4', '2', '0')),
+           GST_PROPS_FOURCC (GST_MAKE_FOURCC ('R', 'G', 'B', ' '))
+       ), "width", GST_PROPS_INT_RANGE (16, 4096), "height",
+       GST_PROPS_INT_RANGE (16, 4096)
+    )
+    )
+
+    GST_PADTEMPLATE_FACTORY (src_audio_templ,
+    "audio_src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_CAPS_NEW ("src_audio",
+       "audio/raw",
+       "format", GST_PROPS_STRING ("int"),
+       "law", GST_PROPS_INT (0),
+       "endianness", GST_PROPS_INT (G_BYTE_ORDER),
+       "signed", GST_PROPS_LIST (GST_PROPS_BOOLEAN (TRUE),
+           GST_PROPS_BOOLEAN (FALSE)
+       ), "width", GST_PROPS_LIST (GST_PROPS_INT (8), GST_PROPS_INT (16)
+       ), "depth", GST_PROPS_LIST (GST_PROPS_INT (8), GST_PROPS_INT (16)
+       ),
+       "rate", GST_PROPS_INT_RANGE (11025, 48000),
+       "channels", GST_PROPS_INT_RANGE (1, 2)
+    )
+    )
+
+     static void gst_avi_decoder_class_init (GstAviDecoderClass * klass);
+     static void gst_avi_decoder_init (GstAviDecoder * avi_decoder);
+
+     static void gst_avi_decoder_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+
+
+
+     static GstElementClass *parent_class = NULL;
+
 /*static guint gst_avi_decoder_signals[LAST_SIGNAL] = { 0 }; */
 
 GType
-gst_avi_decoder_get_type(void) 
+gst_avi_decoder_get_type (void)
 {
   static GType avi_decoder_type = 0;
 
   if (!avi_decoder_type) {
     static const GTypeInfo avi_decoder_info = {
-      sizeof(GstAviDecoderClass),      
+      sizeof (GstAviDecoderClass),
       NULL,
       NULL,
-      (GClassInitFunc)gst_avi_decoder_class_init,
+      (GClassInitFunc) gst_avi_decoder_class_init,
       NULL,
       NULL,
-      sizeof(GstAviDecoder),
+      sizeof (GstAviDecoder),
       0,
-      (GInstanceInitFunc)gst_avi_decoder_init,
+      (GInstanceInitFunc) gst_avi_decoder_init,
     };
-    avi_decoder_type = g_type_register_static(GST_TYPE_BIN, "GstAviDecoder", &avi_decoder_info, 0);
+    avi_decoder_type =
+       g_type_register_static (GST_TYPE_BIN, "GstAviDecoder",
+       &avi_decoder_info, 0);
   }
   return avi_decoder_type;
 }
 
 static void
-gst_avi_decoder_class_init (GstAviDecoderClass *klass) 
+gst_avi_decoder_class_init (GstAviDecoderClass * klass)
 {
   GObjectClass *gobject_class;
   GstElementClass *gstelement_class;
 
-  gobject_class = (GObjectClass*)klass;
-  gstelement_class = (GstElementClass*)klass;
+  gobject_class = (GObjectClass *) klass;
+  gstelement_class = (GstElementClass *) klass;
 
-  g_object_class_install_property (G_OBJECT_CLASS(klass), ARG_BITRATE,
-    g_param_spec_long ("bitrate","bitrate","bitrate",
-                     G_MINLONG, G_MAXLONG, 0, G_PARAM_READABLE)); /* CHECKME */
-  g_object_class_install_property (G_OBJECT_CLASS(klass), ARG_MEDIA_TIME,
-    g_param_spec_long ("media_time","media_time","media_time",
-                     G_MINLONG, G_MAXLONG, 0, G_PARAM_READABLE)); /* CHECKME */
-  g_object_class_install_property (G_OBJECT_CLASS(klass), ARG_CURRENT_TIME,
-    g_param_spec_long ("current_time","current_time","current_time",
-                     G_MINLONG, G_MAXLONG, 0, G_PARAM_READABLE)); /* CHECKME */
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_BITRATE, g_param_spec_long ("bitrate", "bitrate", "bitrate", G_MINLONG, G_MAXLONG, 0, G_PARAM_READABLE));       /* CHECKME */
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MEDIA_TIME, g_param_spec_long ("media_time", "media_time", "media_time", G_MINLONG, G_MAXLONG, 0, G_PARAM_READABLE));   /* CHECKME */
+  g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_CURRENT_TIME, g_param_spec_long ("current_time", "current_time", "current_time", G_MINLONG, G_MAXLONG, 0, G_PARAM_READABLE));   /* CHECKME */
 
   parent_class = g_type_class_ref (GST_TYPE_BIN);
-  
+
   gobject_class->get_property = gst_avi_decoder_get_property;
 }
 
-static void 
-gst_avi_decoder_new_pad (GstElement *element, GstPad *pad, GstAviDecoder *avi_decoder) 
+static void
+gst_avi_decoder_new_pad (GstElement * element, GstPad * pad,
+    GstAviDecoder * avi_decoder)
 {
   GstCaps *caps;
   GstCaps *targetcaps = NULL;
@@ -182,38 +169,40 @@ gst_avi_decoder_new_pad (GstElement *element, GstPad *pad, GstAviDecoder *avi_de
   GstElement *new_element = NULL;
   gchar *padname = NULL;
   gchar *gpadname = NULL;
+
 #define AVI_TYPE_VIDEO  1
 #define AVI_TYPE_AUDIO  2
   gint media_type = 0;
-  
-  GST_DEBUG (0, "avidecoder: new pad for element \"%s\"\n", gst_element_get_name (element));
+
+  GST_DEBUG (0, "avidecoder: new pad for element \"%s\"",
+      gst_element_get_name (element));
 
   caps = gst_pad_get_caps (pad);
   format = gst_caps_get_string (caps, "format");
 
-  if (!strcmp (format, "strf_vids")) { 
-    targetcaps = gst_padtemplate_get_caps (GST_PADTEMPLATE_GET (src_video_templ));
+  if (!strcmp (format, "strf_vids")) {
+    targetcaps =
+       gst_padtemplate_get_caps (GST_PADTEMPLATE_GET (src_video_templ));
     media_type = AVI_TYPE_VIDEO;
     gpadname = g_strdup_printf ("video_%02d", avi_decoder->video_count++);
-  }
-  else if (!strcmp (format, "strf_auds")) {
-    targetcaps = gst_padtemplate_get_caps (GST_PADTEMPLATE_GET (src_audio_templ));
+  } else if (!strcmp (format, "strf_auds")) {
+    targetcaps =
+       gst_padtemplate_get_caps (GST_PADTEMPLATE_GET (src_audio_templ));
     media_type = AVI_TYPE_AUDIO;
     gpadname = g_strdup_printf ("audio_%02d", avi_decoder->audio_count++);
-  }
-  else if (!strcmp (format, "strf_iavs")) {
-    targetcaps = gst_padtemplate_get_caps (GST_PADTEMPLATE_GET (src_video_templ));
+  } else if (!strcmp (format, "strf_iavs")) {
+    targetcaps =
+       gst_padtemplate_get_caps (GST_PADTEMPLATE_GET (src_video_templ));
     media_type = AVI_TYPE_VIDEO;
     gpadname = g_strdup_printf ("video_%02d", avi_decoder->video_count++);
-  }
-  else {
+  } else {
     g_assert_not_reached ();
   }
 
   gst_element_set_state (GST_ELEMENT (avi_decoder), GST_STATE_PAUSED);
 
-  type = gst_elementfactory_make ("avitypes", 
-                 g_strdup_printf ("typeconvert%d", avi_decoder->count));
+  type = gst_elementfactory_make ("avitypes",
+      g_strdup_printf ("typeconvert%d", avi_decoder->count));
 
   /* brin the element to the READY state so it can do our caps negotiation */
   gst_element_set_state (type, GST_STATE_READY);
@@ -224,13 +213,13 @@ gst_avi_decoder_new_pad (GstElement *element, GstPad *pad, GstAviDecoder *avi_de
   if (type_found) {
 
     gst_bin_add (GST_BIN (avi_decoder), type);
-    
+
     pad = gst_element_get_pad (type, "src");
     caps = gst_pad_get_caps (pad);
 
-    if (gst_caps_check_compatibility (caps, targetcaps)) {
-      gst_element_add_ghost_pad (GST_ELEMENT (avi_decoder), 
-           gst_element_get_pad (type, "src"), gpadname);
+    if (gst_caps_is_always_compatible (caps, targetcaps)) {
+      gst_element_add_ghost_pad (GST_ELEMENT (avi_decoder),
+         gst_element_get_pad (type, "src"), gpadname);
 
       avi_decoder->count++;
       goto done;
@@ -238,7 +227,8 @@ gst_avi_decoder_new_pad (GstElement *element, GstPad *pad, GstAviDecoder *avi_de
 #ifndef GST_DISABLE_AUTOPLUG
     else {
       GstAutoplug *autoplug;
-      autoplug = gst_autoplugfactory_make("static");
+
+      autoplug = gst_autoplugfactory_make ("static");
 
       new_element = gst_autoplug_to_caps (autoplug, caps, targetcaps, NULL);
 
@@ -249,45 +239,43 @@ gst_avi_decoder_new_pad (GstElement *element, GstPad *pad, GstAviDecoder *avi_de
 
   if (!new_element && (media_type == AVI_TYPE_VIDEO)) {
     padname = "src";
-  }
-  else if (!new_element && (media_type == AVI_TYPE_AUDIO)) {
+  } else if (!new_element && (media_type == AVI_TYPE_AUDIO)) {
     /*FIXME */
     padname = "src";
   }
 
   if (new_element) {
     gst_pad_connect (pad, gst_element_get_pad (new_element, "sink"));
-    gst_element_set_name (new_element, g_strdup_printf ("element%d", avi_decoder->count));
+    gst_element_set_name (new_element, g_strdup_printf ("element%d",
+           avi_decoder->count));
     gst_bin_add (GST_BIN (avi_decoder), new_element);
 
-    gst_element_add_ghost_pad (GST_ELEMENT (avi_decoder), 
-           gst_element_get_pad (new_element, padname), gpadname);
+    gst_element_add_ghost_pad (GST_ELEMENT (avi_decoder),
+       gst_element_get_pad (new_element, padname), gpadname);
 
     avi_decoder->count++;
-  }
-  else {
+  } else {
     g_warning ("avidecoder: could not autoplug\n");
   }
 
-done: 
+done:
   gst_element_set_state (GST_ELEMENT (avi_decoder), GST_STATE_PLAYING);
 }
 
-static void 
-gst_avi_decoder_init (GstAviDecoder *avi_decoder) 
+static void
+gst_avi_decoder_init (GstAviDecoder * avi_decoder)
 {
   avi_decoder->demuxer = gst_elementfactory_make ("avidemux", "demux");
 
   if (avi_decoder->demuxer) {
     gst_bin_add (GST_BIN (avi_decoder), avi_decoder->demuxer);
 
-    gst_element_add_ghost_pad (GST_ELEMENT (avi_decoder), 
-                   gst_element_get_pad (avi_decoder->demuxer, "sink"), "sink");
+    gst_element_add_ghost_pad (GST_ELEMENT (avi_decoder),
+       gst_element_get_pad (avi_decoder->demuxer, "sink"), "sink");
 
-    g_signal_connect (G_OBJECT (avi_decoder->demuxer),"new_pad", G_CALLBACK (gst_avi_decoder_new_pad),
-                   avi_decoder);
-  }
-  else {
+    g_signal_connect (G_OBJECT (avi_decoder->demuxer), "new_pad",
+       G_CALLBACK (gst_avi_decoder_new_pad), avi_decoder);
+  } else {
     g_warning ("wow!, no avi demuxer found. help me\n");
   }
 
@@ -296,26 +284,27 @@ gst_avi_decoder_init (GstAviDecoder *avi_decoder)
   avi_decoder->video_count = 0;
 }
 
-static GstCaps*
-avi_typefind (GstBuffer *buf,
-              gpointer private)
+static GstCaps *
+avi_typefind (GstBuffer * buf, gpointer private)
 {
   gchar *data = GST_BUFFER_DATA (buf);
   GstCaps *new;
 
-  GST_DEBUG (0,"avi_decoder: typefind\n");
-  if (strncmp (&data[0], "RIFF", 4)) return NULL;
-  if (strncmp (&data[8], "AVI ", 4)) return NULL;
+  GST_DEBUG (0, "avi_decoder: typefind");
+  if (strncmp (&data[0], "RIFF", 4))
+    return NULL;
+  if (strncmp (&data[8], "AVI ", 4))
+    return NULL;
 
   new = GST_CAPS_NEW ("avi_typefind",
-                     "video/avi", 
-                       "RIFF", GST_PROPS_STRING ("AVI"));
+      "video/avi", "RIFF", GST_PROPS_STRING ("AVI"));
 
   return new;
 }
 
 static void
-gst_avi_decoder_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+gst_avi_decoder_get_property (GObject * object, guint prop_id, GValue * value,
+    GParamSpec * pspec)
 {
   GstAviDecoder *src;
 
@@ -323,14 +312,16 @@ gst_avi_decoder_get_property (GObject *object, guint prop_id, GValue *value, GPa
 
   src = GST_AVI_DECODER (object);
 
-  switch(prop_id) {
+  switch (prop_id) {
     case ARG_BITRATE:
       break;
     case ARG_MEDIA_TIME:
-      g_value_set_long (value, gst_util_get_long_arg (G_OBJECT (src->demuxer), "media_time"));
+      g_value_set_long (value, gst_util_get_long_arg (G_OBJECT (src->demuxer),
+             "media_time"));
       break;
     case ARG_CURRENT_TIME:
-      g_value_set_long (value, gst_util_get_long_arg (G_OBJECT (src->demuxer), "current_time"));
+      g_value_set_long (value, gst_util_get_long_arg (G_OBJECT (src->demuxer),
+             "current_time"));
       break;
     default:
       break;
@@ -339,19 +330,22 @@ gst_avi_decoder_get_property (GObject *object, guint prop_id, GValue *value, GPa
 
 
 static gboolean
-plugin_init (GModule *module, GstPlugin *plugin)
+plugin_init (GModule * module, GstPlugin * plugin)
 {
   GstElementFactory *factory;
   GstTypeFactory *type;
 
   /* create an elementfactory for the avi_decoder element */
   factory = gst_elementfactory_new ("avidecoder", GST_TYPE_AVI_DECODER,
-                                    &gst_avi_decoder_details);
+      &gst_avi_decoder_details);
   g_return_val_if_fail (factory != NULL, FALSE);
 
-  gst_elementfactory_add_padtemplate (factory, GST_PADTEMPLATE_GET (src_audio_templ));
-  gst_elementfactory_add_padtemplate (factory, GST_PADTEMPLATE_GET (src_video_templ));
-  gst_elementfactory_add_padtemplate (factory, GST_PADTEMPLATE_GET (sink_templ));
+  gst_elementfactory_add_padtemplate (factory,
+      GST_PADTEMPLATE_GET (src_audio_templ));
+  gst_elementfactory_add_padtemplate (factory,
+      GST_PADTEMPLATE_GET (src_video_templ));
+  gst_elementfactory_add_padtemplate (factory,
+      GST_PADTEMPLATE_GET (sink_templ));
 
   type = gst_typefactory_new (&avidefinition);
   gst_plugin_add_feature (plugin, GST_PLUGIN_FEATURE (type));
@@ -367,4 +361,3 @@ GstPluginDesc plugin_desc = {
   "avidecoder",
   plugin_init
 };
-