videoparsers: adjust to modified baseparse API
[platform/upstream/gstreamer.git] / gst / videomeasure / gstvideomeasure_collector.h
1 /* GStreamer\r
2  * Copyright (C) <2009> Руслан Ижбулатов <lrn1986 _at_ gmail _dot_ com>\r
3  *\r
4  * This library is free software; you can redistribute it and/or\r
5  * modify it under the terms of the GNU Lesser General Public\r
6  * License as published by the Free Software Foundation; either\r
7  * version 2.1 of the License, or (at your option) any later version.\r
8  * \r
9  * This library is distributed in the hope that it will be useful,\r
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
12  * Lesser General Public License for more details.\r
13 \r
14  * You should have received a copy of the GNU Lesser General Public\r
15  * License along with this library; if not, write to the Free Software\r
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor,\r
17  * Boston, MA  02110-1301  USA\r
18  */\r
19 \r
20 #ifndef __GST_MEASURE_COLLECTOR_H__\r
21 #define __GST_MEASURE_COLLECTOR_H__\r
22 \r
23 #include "gstvideomeasure.h"\r
24 #include <gst/base/gstbasetransform.h>\r
25 \r
26 G_BEGIN_DECLS\r
27 \r
28 typedef struct _GstMeasureCollector GstMeasureCollector;\r
29 typedef struct _GstMeasureCollectorClass GstMeasureCollectorClass;\r
30 \r
31 #define GST_TYPE_MEASURE_COLLECTOR            (gst_measure_collector_get_type())\r
32 #define GST_MEASURE_COLLECTOR(obj)                                             \\r
33     (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MEASURE_COLLECTOR,              \\r
34     GstMeasureCollector))\r
35 #define GST_IS_MEASURE_COLLECTOR(obj)         \\r
36     (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_MEASURE_COLLECTOR))\r
37 #define GST_MEASURE_COLLECTOR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),\\r
38     GST_TYPE_MEASURE_COLLECTOR, GstMeasureCollectorClass))\r
39 #define GST_IS_MEASURE_COLLECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),\\r
40     GST_TYPE_MEASURE_COLLECTOR))\r
41 #define GST_MEASURE_COLLECTOR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),\\r
42     GST_TYPE_MEASURE_COLLECTOR, GstMeasureCollectorClass))\r
43 \r
44 typedef enum {\r
45   GST_MEASURE_COLLECTOR_0 = 0,\r
46   GST_MEASURE_COLLECTOR_WRITE_CSV = 0x1,\r
47   GST_MEASURE_COLLECTOR_EMIT_MESSAGE = 0x1 << 1,\r
48   GST_MEASURE_COLLECTOR_ALL =\r
49       GST_MEASURE_COLLECTOR_WRITE_CSV |\r
50       GST_MEASURE_COLLECTOR_EMIT_MESSAGE\r
51 } GstMeasureCollectorFlags;\r
52 \r
53 struct _GstMeasureCollector {\r
54   GstBaseTransform element;\r
55   \r
56   guint64 flags;\r
57 \r
58   gchar *filename;\r
59 \r
60   /* Array of pointers to GstStructure */\r
61   GPtrArray *measurements;\r
62 \r
63   GValue *result;\r
64 \r
65   guint64 nextoffset;\r
66   \r
67   gchar *metric;\r
68 \r
69   gboolean inited;\r
70 };\r
71 \r
72 struct _GstMeasureCollectorClass {\r
73   GstBaseTransformClass parent_class;\r
74 };\r
75 \r
76 GType gst_measure_collector_get_type (void);\r
77 \r
78 G_END_DECLS\r
79 \r
80 #endif /* __GST_MEASURE_COLLECTOR_H__ */\r