summaryrefslogtreecommitdiffstats
path: root/gst/real/gstrealvideodec.h
diff options
context:
space:
mode:
authorEdward Hervey <bilboed@bilboed.com>2007-01-05 18:15:52 +0000
committerEdward Hervey <bilboed@bilboed.com>2007-01-05 18:15:52 +0000
commit5b4a32581104b18d084ff97c65fa91afc653c487 (patch)
tree1d165b9bfe69f2eff2100381f87cb6cba727d578 /gst/real/gstrealvideodec.h
parentaf11eaab0c290e0e85b8dc442690f17a1b696ad1 (diff)
downloadgst-plugins-bad-5b4a32581104b18d084ff97c65fa91afc653c487.tar.gz
gst-plugins-bad-5b4a32581104b18d084ff97c65fa91afc653c487.tar.bz2
gst-plugins-bad-5b4a32581104b18d084ff97c65fa91afc653c487.zip
configure.ac: Real video .so are now also available for x86_64, so we can build the
Original commit message from CVS: * configure.ac: Real video .so are now also available for x86_64, so we can build the Real plugin on i386 AND x86_64. * gst/real/Makefile.am: * gst/real/gstreal.c: (plugin_init): New plugin file for real .so wrapper plugins. * gst/real/gstrealvideodec.c: (gst_real_video_dec_alloc_buffer), (gst_real_video_dec_decode), (gst_real_video_dec_chain), (gst_real_video_dec_activate_push), (gst_real_video_dec_setcaps), (open_library), (close_library), (gst_real_video_dec_init), (gst_real_video_dec_base_init), (gst_real_video_dec_finalize), (gst_real_video_dec_set_property), (gst_real_video_dec_get_property), (gst_real_video_dec_class_init): * gst/real/gstrealvideodec.h: Moved RealVideo element to separate file Cleaned up code some more. Make it work on x86_64. Try several possible locations for .so Separate opening/closing libraries in separate functions.
Diffstat (limited to 'gst/real/gstrealvideodec.h')
-rw-r--r--gst/real/gstrealvideodec.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/gst/real/gstrealvideodec.h b/gst/real/gstrealvideodec.h
new file mode 100644
index 00000000..d4251223
--- /dev/null
+++ b/gst/real/gstrealvideodec.h
@@ -0,0 +1,90 @@
+/* GStreamer
+ *
+ * Copyright (C) 2006 Lutz Mueller <lutz@topfrose.de>
+ * 2006 Edward Hervey <bilboed@bilbod.com>
+ *
+ * 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_REAL_VIDEO_DEC_H__
+#define __GST_REAL_VIDEO_DEC_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstadapter.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_REAL_VIDEO_DEC (gst_real_video_dec_get_type())
+#define GST_REAL_VIDEO_DEC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_REAL_VIDEO_DEC,GstRealVideoDec))
+#define GST_REAL_VIDEO_DEC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_REAL_VIDEO_DEC,GstRealVideoDecClass))
+
+typedef struct _GstRealVideoDec GstRealVideoDec;
+typedef struct _GstRealVideoDecClass GstRealVideoDecClass;
+typedef enum _GstRealVideoDecVersion GstRealVideoDecVersion;
+
+enum _GstRealVideoDecVersion
+{
+ GST_REAL_VIDEO_DEC_VERSION_2 = 2,
+ GST_REAL_VIDEO_DEC_VERSION_3 = 3,
+ GST_REAL_VIDEO_DEC_VERSION_4 = 4
+};
+
+struct _GstRealVideoDec
+{
+ GstElement parent;
+
+ GstPad *src, *snk;
+
+ /* Caps */
+ GstRealVideoDecVersion version;
+ guint width, height;
+ gint format, subformat;
+ gint framerate_num, framerate_denom;
+
+ /* Variables needed for fixing timestamps. */
+ GstClockTime next_ts, last_ts;
+ guint16 next_seq, last_seq;
+
+ /* Hooks */
+ gpointer handle;
+ guint32 (*custom_message) (gpointer, gpointer);
+ guint32 (*free) (gpointer);
+ guint32 (*init) (gpointer, gpointer);
+ guint32 (*transform) (gchar *, gchar *, gpointer, gpointer, gpointer);
+
+ /* Used by the REAL library. */
+ gpointer context;
+
+ /* State */
+ GstAdapter *adapter;
+ guint8 seqnum, subseq;
+ guint16 length;
+ guint32 fragment_count;
+ guint32 fragments[256];
+
+ /* Properties */
+ gchar *path_rv20, *path_rv30, *path_rv40;
+};
+
+struct _GstRealVideoDecClass
+{
+ GstElementClass parent_class;
+};
+
+GType gst_real_video_dec_get_type (void);
+
+G_END_DECLS
+#endif /* __GST_REAL_VIDEO_DEC_H__ */