summaryrefslogtreecommitdiff
path: root/ext/directfb/dfbvideosink.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/directfb/dfbvideosink.h')
-rw-r--r--ext/directfb/dfbvideosink.h44
1 files changed, 38 insertions, 6 deletions
diff --git a/ext/directfb/dfbvideosink.h b/ext/directfb/dfbvideosink.h
index 1e0943c14..69b32f4ff 100644
--- a/ext/directfb/dfbvideosink.h
+++ b/ext/directfb/dfbvideosink.h
@@ -1,5 +1,6 @@
/* GStreamer DirectFB plugin
* Copyright (C) 2005 Julien MOUTTE <julien@moutte.net>
+ * Copyright (C) 2013 Kazunori Kobayashi <kkobayas@igel.co.jp>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -23,6 +24,14 @@
#include <gst/video/gstvideosink.h>
#include <directfb.h>
+#include <directfb_version.h>
+
+#define GST_DFBVIDEOSINK_VER(a,b,c) (((a) << 16) | ((b) << 8) | (c))
+#define DIRECTFB_VER GST_DFBVIDEOSINK_VER(DIRECTFB_MAJOR_VERSION,DIRECTFB_MINOR_VERSION,DIRECTFB_MICRO_VERSION)
+
+#define LAYER_MODE_INVALID -1
+#define LAYER_MODE_EXCLUSIVE DLSCL_EXCLUSIVE
+#define LAYER_MODE_ADMINISTRATIVE DLSCL_ADMINISTRATIVE
G_BEGIN_DECLS
@@ -37,10 +46,13 @@ typedef struct _GstDfbVideoSinkClass GstDfbVideoSinkClass;
typedef struct _GstMetaDfbSurface GstMetaDfbSurface;
+GType gst_meta_dfbsurface_api_get_type (void);
const GstMetaInfo * gst_meta_dfbsurface_get_info (void);
-#define GST_META_DFBSURFACE_GET(buf) ((GstMetaDfbSurface *)gst_buffer_get_meta(buf,gst_meta_dfbsurface_get_info()))
+#define GST_TYPE_DFB_BUFFER_POOL (gst_dfb_buffer_pool_get_type())
+#define GST_META_DFBSURFACE_GET(buf) ((GstMetaDfbSurface *)gst_buffer_get_meta(buf,gst_meta_dfbsurface_api_get_type()))
#define GST_META_DFBSURFACE_ADD(buf) ((GstMetaDfbSurface *)gst_buffer_add_meta(buf,gst_meta_dfbsurface_get_info(),NULL))
+#define GST_DFB_BUFFER_POOL_CAST(obj) ((GstDfbBufferPool*)(obj))
struct _GstMetaDfbSurface {
GstMeta meta;
@@ -57,6 +69,24 @@ struct _GstMetaDfbSurface {
GstDfbVideoSink *dfbvideosink;
};
+typedef struct _GstDfbBufferPool GstDfbBufferPool;
+
+struct _GstDfbBufferPool
+{
+ GstBufferPool bufferpool;
+
+ GstDfbVideoSink *dfbvideosink;
+
+ GstCaps *caps;
+};
+
+typedef struct _GstDfbBufferPoolClass GstDfbBufferPoolClass;
+
+struct _GstDfbBufferPoolClass
+{
+ GstBufferPoolClass parent_class;
+};
+
typedef struct _GstDfbVMode GstDfbVMode;
struct _GstDfbVMode {
@@ -72,11 +102,10 @@ struct _GstDfbVMode {
*/
struct _GstDfbVideoSink {
GstVideoSink videosink;
-
- /* < private > */
- GMutex *pool_lock;
- GSList *buffer_pool;
-
+
+ /* for buffer pool */
+ GstBufferPool *pool;
+
/* Framerate numerator and denominator */
gint fps_n;
gint fps_d;
@@ -116,6 +145,8 @@ struct _GstDfbVideoSink {
/* object-set pixel aspect ratio */
GValue *par;
+
+ gint layer_mode;
};
struct _GstDfbVideoSinkClass {
@@ -123,6 +154,7 @@ struct _GstDfbVideoSinkClass {
};
GType gst_dfbvideosink_get_type (void);
+GType gst_dfb_buffer_pool_get_type (void);
G_END_DECLS