remove copyright field from plugins
[platform/upstream/gstreamer.git] / gst-libs / gst / video / video.c
1 /* GStreamer
2  * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
3  * Library       <2002> Ronald Bultje <rbultje@ronald.bitfreak.net>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public
16  * License along with this library; if not, write to the
17  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18  * Boston, MA 02111-1307, USA.
19  */
20
21 #ifdef HAVE_CONFIG_H
22 #  include "config.h"
23 #endif
24
25 #include "video.h"
26
27 /* This is simply a convenience function, nothing more or less */
28
29 gfloat
30 gst_video_frame_rate (GstPad *pad)
31 {
32   gfloat fps = 0.;
33   GstCaps *caps;
34
35   /* get pad caps */
36   caps = GST_PAD_CAPS (pad);
37   if (caps == NULL) {
38     g_warning ("gstvideo: failed to get caps of pad %s:%s",
39                GST_ELEMENT_NAME (gst_pad_get_parent (pad)),
40                GST_PAD_NAME(pad));
41     return 0.;
42   }
43
44   if (!gst_caps_has_property_typed (caps, "framerate",
45                                    GST_PROPS_FLOAT_TYPE)) {
46     g_warning ("gstvideo: failed to get framerate property of pad %s:%s",
47                GST_ELEMENT_NAME (gst_pad_get_parent (pad)),
48                GST_PAD_NAME (pad));
49     return 0.;
50   }
51
52   gst_caps_get_float (caps, "framerate", &fps);
53
54   GST_DEBUG ("Framerate request on pad %s:%s: %f",
55              GST_ELEMENT_NAME (gst_pad_get_parent (pad)),
56              GST_PAD_NAME(pad), fps);
57
58   return fps;
59 }
60
61 gboolean
62 gst_video_get_size (GstPad *pad,
63                     gint   *width,
64                     gint   *height)
65 {
66   GstCaps *caps;
67
68   g_return_val_if_fail (pad != NULL, FALSE);
69
70   caps = GST_PAD_CAPS (pad);
71
72   if (caps == NULL) {
73     g_warning ("gstvideo: failed to get caps of pad %s:%s",
74                GST_ELEMENT_NAME (gst_pad_get_parent (pad)),
75                GST_PAD_NAME(pad));
76     return FALSE;
77   }
78
79   if (!gst_caps_has_property_typed (caps, "width",
80                                     GST_PROPS_INT_TYPE) ||
81       !gst_caps_has_property_typed (caps, "height",
82                                     GST_PROPS_FLOAT_TYPE)) {
83     g_warning ("gstvideo: failed to get size properties on pad %s:%s",
84                GST_ELEMENT_NAME (gst_pad_get_parent (pad)),
85                GST_PAD_NAME(pad));
86     return FALSE;
87   }
88
89   if (width)
90     gst_caps_get_int (caps, "width", width);
91   if (height)
92     gst_caps_get_int (caps, "height", height);
93
94   GST_DEBUG ("size request on pad %s:%s: %dx%d",
95              GST_ELEMENT_NAME (gst_pad_get_parent (pad)),
96              GST_PAD_NAME (pad), 
97              width  ? *width  : -1,
98              height ? *height : -1);
99
100   return TRUE;
101 }
102
103 static gboolean
104 plugin_init (GstPlugin *plugin)
105 {
106   return TRUE;
107 }
108
109 GST_PLUGIN_DEFINE (
110   GST_VERSION_MAJOR,
111   GST_VERSION_MINOR,
112   "gstvideo",
113   "Convenience routines for video plugins",
114   plugin_init,
115   VERSION,
116   GST_LICENSE,
117   GST_PACKAGE,
118   GST_ORIGIN
119 )