summaryrefslogtreecommitdiffstats
path: root/sys/ximage/gstximagesrc.h
diff options
context:
space:
mode:
authorJan Schmidt <thaytan@mad.scientist.com>2006-02-20 21:19:59 +0000
committerJan Schmidt <thaytan@mad.scientist.com>2006-02-20 21:19:59 +0000
commit2730137d28c8ed9933ec0014f0f00fcf5d9f900a (patch)
tree3fe01931a0499daee528a6d633ac761e1a7412c2 /sys/ximage/gstximagesrc.h
parent370d972c28c5640af4c0586771abadc73ad92901 (diff)
Port ximagesrc to 0.10 (Closes #304795)
Original commit message from CVS: * configure.ac: * sys/Makefile.am: * sys/ximagesrc/Makefile.am: * sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_return_buf), (gst_ximagesrc_open_display), (gst_ximagesrc_start), (gst_ximagesrc_stop), (gst_ximagesrc_unlock), (gst_ximagesrc_recalc), (composite_pixel), (gst_ximagesrc_ximage_get), (gst_ximagesrc_create), (gst_ximagesrc_set_property), (gst_ximagesrc_get_property), (gst_ximagesrc_clear_bufpool), (gst_ximagesrc_base_init), (gst_ximagesrc_dispose), (gst_ximagesrc_finalize), (gst_ximagesrc_get_caps), (gst_ximagesrc_set_caps), (gst_ximagesrc_fixate), (gst_ximagesrc_class_init), (gst_ximagesrc_init), (plugin_init): * sys/ximagesrc/ximagesrc.h: * sys/ximagesrc/ximageutil.c: (ximageutil_handle_xerror), (ximageutil_check_xshm_calls), (ximageutil_xcontext_get), (ximageutil_xcontext_clear), (ximageutil_calculate_pixel_aspect_ratio), (gst_ximagesrc_buffer_finalize), (gst_ximage_buffer_free), (gst_ximagesrc_buffer_init), (gst_ximagesrc_buffer_class_init), (gst_ximagesrc_buffer_get_type), (gst_ximageutil_ximage_new), (gst_ximageutil_ximage_destroy): * sys/ximagesrc/ximageutil.h: Port ximagesrc to 0.10 (Closes #304795)
Diffstat (limited to 'sys/ximage/gstximagesrc.h')
-rw-r--r--sys/ximage/gstximagesrc.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/sys/ximage/gstximagesrc.h b/sys/ximage/gstximagesrc.h
new file mode 100644
index 00000000..066521e9
--- /dev/null
+++ b/sys/ximage/gstximagesrc.h
@@ -0,0 +1,97 @@
+/* screenshotsrc: Screenshot plugin for GStreamer
+ *
+ * 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_XIMAGESRC_H__
+#define __GST_XIMAGESRC_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstpushsrc.h>
+#include "ximageutil.h"
+
+#ifdef HAVE_XFIXES
+#include <X11/extensions/Xfixes.h>
+#endif
+#ifdef HAVE_XDAMAGE
+#include <X11/extensions/Xdamage.h>
+#endif
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_XIMAGESRC (gst_ximagesrc_get_type())
+#define GST_XIMAGESRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_XIMAGESRC,GstXImageSrc))
+#define GST_XIMAGESRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_XIMAGESRC,GstXImageSrc))
+#define GST_IS_XIMAGESRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_XIMAGESRC))
+#define GST_IS_XIMAGESRC_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_XIMAGESRC))
+
+typedef struct _GstXImageSrc GstXImageSrc;
+typedef struct _GstXImageSrcClass GstXImageSrcClass;
+
+GType gst_ximagesrc_get_type (void) G_GNUC_CONST;
+
+struct _GstXImageSrc
+{
+ GstPushSrc parent;
+
+ /* Information on display */
+ GstXContext *xcontext;
+ gint width;
+ gint height;
+
+ Window xwindow;
+ gchar *display_name;
+ guint screen_num;
+
+ /* Desired output framerate */
+ gint fps_n;
+ gint fps_d;
+
+ /* for framerate sync */
+ GstClockID clock_id;
+ gint64 last_frame_no;
+
+ /* Protect X Windows calls */
+ GMutex *x_lock;
+
+ /* Gathered pool of emitted buffers */
+ GMutex *pool_lock;
+ GSList *buffer_pool;
+
+ /* XFixes and XDamage support */
+ gboolean have_xfixes;
+ gboolean have_xdamage;
+ gboolean show_pointer;
+#ifdef HAVE_XFIXES
+ int fixes_event_base;
+#endif
+#ifdef HAVE_XDAMAGE
+ Damage damage;
+ int damage_event_base;
+ XserverRegion damage_region;
+ GC damage_copy_gc;
+#endif
+
+};
+
+struct _GstXImageSrcClass
+{
+ GstPushSrcClass parent_class;
+};
+
+G_END_DECLS
+
+#endif /* __GST_XIMAGESRC_H__ */