summaryrefslogtreecommitdiffstats
path: root/gst/rawparse/gstrawparse.h
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2007-12-23 06:22:32 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2007-12-23 06:22:32 +0000
commit96690aa992f0c0c81c542609d5a21facf72fc8d1 (patch)
tree73a41ea7669cb03c3e4884d349d0f8a98a10dd40 /gst/rawparse/gstrawparse.h
parent11b0b3dd23e7f44adeea7639a515f6d00f96df82 (diff)
downloadgst-plugins-bad-96690aa992f0c0c81c542609d5a21facf72fc8d1.tar.gz
gst-plugins-bad-96690aa992f0c0c81c542609d5a21facf72fc8d1.tar.bz2
gst-plugins-bad-96690aa992f0c0c81c542609d5a21facf72fc8d1.zip
Add new plugin rawparse that contains a base class for raw data parsers and the two elements audioparse and videopars...
Original commit message from CVS: * configure.ac: * gst/rawparse/Makefile.am: * gst/rawparse/README: * gst/rawparse/gstaudioparse.c: (gst_audio_parse_format_get_type), (gst_audio_parse_endianness_get_type), (gst_audio_parse_base_init), (gst_audio_parse_class_init), (gst_audio_parse_init), (gst_audio_parse_set_property), (gst_audio_parse_get_property), (gst_audio_parse_update_frame_size), (gst_audio_parse_get_caps): * gst/rawparse/gstaudioparse.h: * gst/rawparse/gstrawparse.c: (gst_raw_parse_base_init), (gst_raw_parse_class_init), (gst_raw_parse_init), (gst_raw_parse_dispose), (gst_raw_parse_class_set_src_pad_template), (gst_raw_parse_class_set_multiple_frames_per_buffer), (gst_raw_parse_reset), (gst_raw_parse_chain), (gst_raw_parse_convert), (gst_raw_parse_sink_event), (gst_raw_parse_src_event), (gst_raw_parse_src_query_type), (gst_raw_parse_src_query), (gst_raw_parse_set_framesize), (gst_raw_parse_set_fps), (gst_raw_parse_get_fps), (gst_raw_parse_is_negotiated): * gst/rawparse/gstrawparse.h: * gst/rawparse/gstvideoparse.c: (gst_video_parse_format_get_type), (gst_video_parse_endianness_get_type), (gst_video_parse_base_init), (gst_video_parse_class_init), (gst_video_parse_init), (gst_video_parse_set_property), (gst_video_parse_get_property), (gst_video_parse_format_to_fourcc), (gst_video_parse_update_frame_size), (gst_video_parse_get_caps): * gst/rawparse/gstvideoparse.h: * gst/rawparse/plugin.c: (plugin_init): Add new plugin rawparse that contains a base class for raw data parsers and the two elements audioparse and videoparse that can be used to parse raw audio and video. These are inspired by the old videoparse element which the new rawparse plugin deprecates.
Diffstat (limited to 'gst/rawparse/gstrawparse.h')
-rw-r--r--gst/rawparse/gstrawparse.h91
1 files changed, 91 insertions, 0 deletions
diff --git a/gst/rawparse/gstrawparse.h b/gst/rawparse/gstrawparse.h
new file mode 100644
index 00000000..dd486c34
--- /dev/null
+++ b/gst/rawparse/gstrawparse.h
@@ -0,0 +1,91 @@
+/* GStreamer
+ * Copyright (C) 2006 David A. Schleef <ds@schleef.org>
+ * Copyright (C) 2007 Sebastian Dröge <slomo@circular-chaos.org>
+ *
+ * gstrawparse.h:
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_RAW_PARSE_H__
+#define __GST_RAW_PARSE_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstbasetransform.h>
+#include <gst/base/gstadapter.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_RAW_PARSE \
+ (gst_raw_parse_get_type())
+#define GST_RAW_PARSE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RAW_PARSE,GstRawParse))
+#define GST_RAW_PARSE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RAW_PARSE,GstRawParseClass))
+#define GST_RAW_PARSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),GST_TYPE_RAW_PARSE,GstRawParseClass))
+#define GST_IS_RAW_PARSE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RAW_PARSE))
+#define GST_IS_RAW_PARSE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RAW_PARSE))
+
+typedef struct _GstRawParse GstRawParse;
+typedef struct _GstRawParseClass GstRawParseClass;
+
+struct _GstRawParse
+{
+ GstElement parent;
+
+ /* private */
+ GstPad *sinkpad;
+ GstPad *srcpad;
+
+ GstAdapter *adapter;
+
+ int framesize;
+ int fps_d;
+ int fps_n;
+
+ gboolean discont;
+ guint64 n_frames;
+
+ GstSegment segment;
+
+ gboolean negotiated;
+ gboolean have_new_segment;
+};
+
+struct _GstRawParseClass
+{
+ GstElementClass parent_class;
+
+ GstCaps * (*get_caps) (GstRawParse *rp);
+
+ gboolean multiple_frames_per_buffer;
+};
+
+GType gst_raw_parse_get_type (void);
+
+void gst_raw_parse_class_set_src_pad_template (GstRawParseClass *klass, const GstCaps * allowed_caps);
+void gst_raw_parse_class_set_multiple_frames_per_buffer (GstRawParseClass *klass, gboolean multiple_frames);
+
+void gst_raw_parse_set_framesize (GstRawParse *rp, int framesize);
+void gst_raw_parse_set_fps (GstRawParse *rp, int fps_n, int fps_d);
+void gst_raw_parse_get_fps (GstRawParse *rp, int *fps_n, int *fps_d);
+gboolean gst_raw_parse_is_negotiated (GstRawParse *rp);
+
+G_END_DECLS
+
+#endif /* __GST_RAW_PARSE_H__ */