Rename pulsevideo to pinos

This commit is contained in:
Wim Taymans 2015-06-30 18:06:36 +02:00
parent b68b62740c
commit 4b72848a1a
47 changed files with 356 additions and 369 deletions

View file

@ -18,13 +18,13 @@
*/
/**
* SECTION:element-pulsevideosrc
* SECTION:element-pinossrc
*
* <refsect2>
* <title>Example launch line</title>
* |[
* gst-launch -v pulsevideosrc ! ximagesink
* ]| Shows pulsevideo output in an X window.
* gst-launch -v pinossrc ! ximagesink
* ]| Shows pinos output in an X window.
* </refsect2>
*/
@ -44,15 +44,15 @@ plugin_init (GstPlugin * plugin)
GST_TYPE_FDPAY);
gst_element_register (plugin, "pvfddepay", GST_RANK_NONE,
GST_TYPE_FDDEPAY);
gst_element_register (plugin, "pulsevideosrc", GST_RANK_PRIMARY + 1,
GST_TYPE_PULSEVIDEO_SRC);
gst_element_register (plugin, "pulsevideosink", GST_RANK_NONE,
GST_TYPE_PULSEVIDEO_SINK);
gst_element_register (plugin, "pinossrc", GST_RANK_PRIMARY + 1,
GST_TYPE_PINOS_SRC);
gst_element_register (plugin, "pinossink", GST_RANK_NONE,
GST_TYPE_PINOS_SINK);
return TRUE;
}
GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
GST_VERSION_MINOR,
pulsevideo,
"Uses pulsevideo to handle video streams",
plugin_init, VERSION, "LGPL", "pulsevideo", "pulsevideo.org")
pinos,
"Uses pinos to handle video streams",
plugin_init, VERSION, "LGPL", "pinos", "pinos.org")

View file

@ -18,13 +18,13 @@
*/
/**
* SECTION:element-pulsevideosink
* SECTION:element-pinossink
*
* <refsect2>
* <title>Example launch line</title>
* |[
* gst-launch -v videotestsrc ! pulsevideosink
* ]| Sends a test video source to pulsevideo
* gst-launch -v videotestsrc ! pinossink
* ]| Sends a test video source to pinos
* </refsect2>
*/
@ -45,8 +45,8 @@
#include "gsttmpfileallocator.h"
GST_DEBUG_CATEGORY_STATIC (pulsevideo_sink_debug);
#define GST_CAT_DEFAULT pulsevideo_sink_debug
GST_DEBUG_CATEGORY_STATIC (pinos_sink_debug);
#define GST_CAT_DEFAULT pinos_sink_debug
enum
{
@ -57,36 +57,36 @@ enum
#define PVS_VIDEO_CAPS GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL)
static GstStaticPadTemplate gst_pulsevideo_sink_template =
static GstStaticPadTemplate gst_pinos_sink_template =
GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
GST_STATIC_CAPS_ANY
);
#define gst_pulsevideo_sink_parent_class parent_class
G_DEFINE_TYPE (GstPulsevideoSink, gst_pulsevideo_sink, GST_TYPE_BASE_SINK);
#define gst_pinos_sink_parent_class parent_class
G_DEFINE_TYPE (GstPinosSink, gst_pinos_sink, GST_TYPE_BASE_SINK);
static void gst_pulsevideo_sink_set_property (GObject * object, guint prop_id,
static void gst_pinos_sink_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec);
static void gst_pulsevideo_sink_get_property (GObject * object, guint prop_id,
static void gst_pinos_sink_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
static GstStateChangeReturn
gst_pulsevideo_sink_change_state (GstElement * element, GstStateChange transition);
gst_pinos_sink_change_state (GstElement * element, GstStateChange transition);
static GstCaps *gst_pulsevideo_sink_getcaps (GstBaseSink * bsink, GstCaps * filter);
static gboolean gst_pulsevideo_sink_setcaps (GstBaseSink * bsink, GstCaps * caps);
static GstCaps *gst_pulsevideo_sink_sink_fixate (GstBaseSink * bsink,
static GstCaps *gst_pinos_sink_getcaps (GstBaseSink * bsink, GstCaps * filter);
static gboolean gst_pinos_sink_setcaps (GstBaseSink * bsink, GstCaps * caps);
static GstCaps *gst_pinos_sink_sink_fixate (GstBaseSink * bsink,
GstCaps * caps);
static GstFlowReturn gst_pulsevideo_sink_render (GstBaseSink * psink,
static GstFlowReturn gst_pinos_sink_render (GstBaseSink * psink,
GstBuffer * buffer);
static gboolean gst_pulsevideo_sink_start (GstBaseSink * basesink);
static gboolean gst_pulsevideo_sink_stop (GstBaseSink * basesink);
static gboolean gst_pinos_sink_start (GstBaseSink * basesink);
static gboolean gst_pinos_sink_stop (GstBaseSink * basesink);
static void
gst_pulsevideo_sink_class_init (GstPulsevideoSinkClass * klass)
gst_pinos_sink_class_init (GstPinosSinkClass * klass)
{
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
@ -96,31 +96,31 @@ gst_pulsevideo_sink_class_init (GstPulsevideoSinkClass * klass)
gstelement_class = (GstElementClass *) klass;
gstbasesink_class = (GstBaseSinkClass *) klass;
gobject_class->set_property = gst_pulsevideo_sink_set_property;
gobject_class->get_property = gst_pulsevideo_sink_get_property;
gobject_class->set_property = gst_pinos_sink_set_property;
gobject_class->get_property = gst_pinos_sink_get_property;
gstelement_class->change_state = gst_pulsevideo_sink_change_state;
gstelement_class->change_state = gst_pinos_sink_change_state;
gst_element_class_set_static_metadata (gstelement_class,
"Pulsevideo sink", "Sink/Video",
"Send video to pulsevideo", "Wim Taymans <wim.taymans@gmail.com>");
"Pinos sink", "Sink/Video",
"Send video to pinos", "Wim Taymans <wim.taymans@gmail.com>");
gst_element_class_add_pad_template (gstelement_class,
gst_static_pad_template_get (&gst_pulsevideo_sink_template));
gst_static_pad_template_get (&gst_pinos_sink_template));
gstbasesink_class->get_caps = gst_pulsevideo_sink_getcaps;
gstbasesink_class->set_caps = gst_pulsevideo_sink_setcaps;
gstbasesink_class->fixate = gst_pulsevideo_sink_sink_fixate;
gstbasesink_class->start = gst_pulsevideo_sink_start;
gstbasesink_class->stop = gst_pulsevideo_sink_stop;
gstbasesink_class->render = gst_pulsevideo_sink_render;
gstbasesink_class->get_caps = gst_pinos_sink_getcaps;
gstbasesink_class->set_caps = gst_pinos_sink_setcaps;
gstbasesink_class->fixate = gst_pinos_sink_sink_fixate;
gstbasesink_class->start = gst_pinos_sink_start;
gstbasesink_class->stop = gst_pinos_sink_stop;
gstbasesink_class->render = gst_pinos_sink_render;
GST_DEBUG_CATEGORY_INIT (pulsevideo_sink_debug, "pulsevideosink", 0,
"Pulsevideo Sink");
GST_DEBUG_CATEGORY_INIT (pinos_sink_debug, "pinossink", 0,
"Pinos Sink");
}
static void
gst_pulsevideo_sink_init (GstPulsevideoSink * sink)
gst_pinos_sink_init (GstPinosSink * sink)
{
sink->allocator = gst_tmpfile_allocator_new ();
g_mutex_init (&sink->lock);
@ -128,7 +128,7 @@ gst_pulsevideo_sink_init (GstPulsevideoSink * sink)
}
static GstCaps *
gst_pulsevideo_sink_sink_fixate (GstBaseSink * bsink, GstCaps * caps)
gst_pinos_sink_sink_fixate (GstBaseSink * bsink, GstCaps * caps)
{
GstStructure *structure;
@ -165,7 +165,7 @@ gst_pulsevideo_sink_sink_fixate (GstBaseSink * bsink, GstCaps * caps)
}
static void
gst_pulsevideo_sink_set_property (GObject * object, guint prop_id,
gst_pinos_sink_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
{
switch (prop_id) {
@ -176,7 +176,7 @@ gst_pulsevideo_sink_set_property (GObject * object, guint prop_id,
}
static void
gst_pulsevideo_sink_get_property (GObject * object, guint prop_id,
gst_pinos_sink_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec)
{
switch (prop_id) {
@ -190,7 +190,7 @@ static void
on_new_buffer (GObject *gobject,
gpointer user_data)
{
GstPulsevideoSink *pvsink = user_data;
GstPinosSink *pvsink = user_data;
g_cond_signal (&pvsink->cond);
}
@ -201,7 +201,7 @@ on_stream_notify (GObject *gobject,
gpointer user_data)
{
PvStreamState state;
GstPulsevideoSink *pvsink = user_data;
GstPinosSink *pvsink = user_data;
state = pv_stream_get_state (pvsink->stream);
g_print ("got stream state %d\n", state);
@ -215,19 +215,19 @@ on_stream_notify (GObject *gobject,
}
static GstCaps *
gst_pulsevideo_sink_getcaps (GstBaseSink * bsink, GstCaps * filter)
gst_pinos_sink_getcaps (GstBaseSink * bsink, GstCaps * filter)
{
return GST_BASE_SINK_CLASS (parent_class)->get_caps (bsink, filter);
}
static gboolean
gst_pulsevideo_sink_setcaps (GstBaseSink * bsink, GstCaps * caps)
gst_pinos_sink_setcaps (GstBaseSink * bsink, GstCaps * caps)
{
GstPulsevideoSink *pvsink;
GstPinosSink *pvsink;
gchar *str;
GBytes *format;
pvsink = GST_PULSEVIDEO_SINK (bsink);
pvsink = GST_PINOS_SINK (bsink);
str = gst_caps_to_string (caps);
format = g_bytes_new_take (str, strlen (str) + 1);
@ -278,14 +278,14 @@ connect_error:
}
static GstFlowReturn
gst_pulsevideo_sink_render (GstBaseSink * bsink, GstBuffer * buffer)
gst_pinos_sink_render (GstBaseSink * bsink, GstBuffer * buffer)
{
GstPulsevideoSink *pvsink;
GstPinosSink *pvsink;
PvBufferInfo info;
GSocketControlMessage *mesg;
GstMemory *mem = NULL;
pvsink = GST_PULSEVIDEO_SINK (bsink);
pvsink = GST_PINOS_SINK (bsink);
if (!pvsink->negotiated)
goto not_negotiated;
@ -341,9 +341,9 @@ streaming_error:
}
static gboolean
gst_pulsevideo_sink_start (GstBaseSink * basesink)
gst_pinos_sink_start (GstBaseSink * basesink)
{
GstPulsevideoSink *sink = GST_PULSEVIDEO_SINK (basesink);
GstPinosSink *sink = GST_PINOS_SINK (basesink);
sink->negotiated = FALSE;
@ -351,9 +351,9 @@ gst_pulsevideo_sink_start (GstBaseSink * basesink)
}
static gboolean
gst_pulsevideo_sink_stop (GstBaseSink * basesink)
gst_pinos_sink_stop (GstBaseSink * basesink)
{
GstPulsevideoSink *sink = GST_PULSEVIDEO_SINK (basesink);
GstPinosSink *sink = GST_PINOS_SINK (basesink);
sink->negotiated = FALSE;
@ -366,7 +366,7 @@ static gint
do_poll (GPollFD *ufds, guint nfsd, gint timeout_)
{
gint res;
GstPulsevideoSink *this = g_private_get (&sink_key);
GstPinosSink *this = g_private_get (&sink_key);
g_mutex_unlock (&this->lock);
res = this->poll_func (ufds, nfsd, timeout_);
@ -376,7 +376,7 @@ do_poll (GPollFD *ufds, guint nfsd, gint timeout_)
}
static gpointer
handle_mainloop (GstPulsevideoSink *this)
handle_mainloop (GstPinosSink *this)
{
g_mutex_lock (&this->lock);
g_private_set (&sink_key, this);
@ -397,7 +397,7 @@ on_state_notify (GObject *gobject,
GParamSpec *pspec,
gpointer user_data)
{
GstPulsevideoSink *pvsink = user_data;
GstPinosSink *pvsink = user_data;
PvContextState state;
state = pv_context_get_state (pvsink->ctx);
@ -412,7 +412,7 @@ on_state_notify (GObject *gobject,
}
static gboolean
gst_pulsevideo_sink_open (GstPulsevideoSink * pvsink)
gst_pinos_sink_open (GstPinosSink * pvsink)
{
g_mutex_lock (&pvsink->lock);
pvsink->ctx = pv_context_new (pvsink->context, "test-client", NULL);
@ -444,7 +444,7 @@ connect_error:
}
static gboolean
gst_pulsevideo_sink_close (GstPulsevideoSink * pvsink)
gst_pinos_sink_close (GstPinosSink * pvsink)
{
g_mutex_lock (&pvsink->lock);
@ -472,18 +472,18 @@ gst_pulsevideo_sink_close (GstPulsevideoSink * pvsink)
}
static GstStateChangeReturn
gst_pulsevideo_sink_change_state (GstElement * element, GstStateChange transition)
gst_pinos_sink_change_state (GstElement * element, GstStateChange transition)
{
GstStateChangeReturn ret;
GstPulsevideoSink *this = GST_PULSEVIDEO_SINK_CAST (element);
GstPinosSink *this = GST_PINOS_SINK_CAST (element);
switch (transition) {
case GST_STATE_CHANGE_NULL_TO_READY:
this->context = g_main_context_new ();
g_print ("context %p\n", this->context);
this->loop = g_main_loop_new (this->context, FALSE);
this->thread = g_thread_new ("pulsevideo", (GThreadFunc) handle_mainloop, this);
if (!gst_pulsevideo_sink_open (this)) {
this->thread = g_thread_new ("pinos", (GThreadFunc) handle_mainloop, this);
if (!gst_pinos_sink_open (this)) {
ret = GST_STATE_CHANGE_FAILURE;
goto exit;
}
@ -508,7 +508,7 @@ gst_pulsevideo_sink_change_state (GstElement * element, GstStateChange transitio
case GST_STATE_CHANGE_PAUSED_TO_READY:
break;
case GST_STATE_CHANGE_READY_TO_NULL:
gst_pulsevideo_sink_close (this);
gst_pinos_sink_close (this);
g_main_loop_quit (this->loop);
g_thread_join (this->thread);
g_main_loop_unref (this->loop);

View file

@ -17,8 +17,8 @@
* Boston, MA 02110-1301, USA.
*/
#ifndef __GST_PULSEVIDEO_SINK_H__
#define __GST_PULSEVIDEO_SINK_H__
#ifndef __GST_PINOS_SINK_H__
#define __GST_PINOS_SINK_H__
#include <gst/gst.h>
#include <gst/base/gstbasesink.h>
@ -29,28 +29,28 @@
G_BEGIN_DECLS
#define GST_TYPE_PULSEVIDEO_SINK \
(gst_pulsevideo_sink_get_type())
#define GST_PULSEVIDEO_SINK(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PULSEVIDEO_SINK,GstPulsevideoSink))
#define GST_PULSEVIDEO_SINK_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PULSEVIDEO_SINK,GstPulsevideoSinkClass))
#define GST_IS_PULSEVIDEO_SINK(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PULSEVIDEO_SINK))
#define GST_IS_PULSEVIDEO_SINK_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PULSEVIDEO_SINK))
#define GST_PULSEVIDEO_SINK_CAST(obj) \
((GstPulsevideoSink *) (obj))
#define GST_TYPE_PINOS_SINK \
(gst_pinos_sink_get_type())
#define GST_PINOS_SINK(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PINOS_SINK,GstPinosSink))
#define GST_PINOS_SINK_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PINOS_SINK,GstPinosSinkClass))
#define GST_IS_PINOS_SINK(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PINOS_SINK))
#define GST_IS_PINOS_SINK_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PINOS_SINK))
#define GST_PINOS_SINK_CAST(obj) \
((GstPinosSink *) (obj))
typedef struct _GstPulsevideoSink GstPulsevideoSink;
typedef struct _GstPulsevideoSinkClass GstPulsevideoSinkClass;
typedef struct _GstPinosSink GstPinosSink;
typedef struct _GstPinosSinkClass GstPinosSinkClass;
/**
* GstPulsevideoSink:
* GstPinosSink:
*
* Opaque data structure.
*/
struct _GstPulsevideoSink {
struct _GstPinosSink {
GstBaseSink element;
/*< private >*/
@ -70,12 +70,12 @@ struct _GstPulsevideoSink {
GCond cond;
};
struct _GstPulsevideoSinkClass {
struct _GstPinosSinkClass {
GstBaseSinkClass parent_class;
};
GType gst_pulsevideo_sink_get_type (void);
GType gst_pinos_sink_get_type (void);
G_END_DECLS
#endif /* __GST_PULSEVIDEO_SINK_H__ */
#endif /* __GST_PINOS_SINK_H__ */

View file

@ -18,13 +18,13 @@
*/
/**
* SECTION:element-pulsevideosrc
* SECTION:element-pinossrc
*
* <refsect2>
* <title>Example launch line</title>
* |[
* gst-launch -v pulsevideosrc ! videoconvert ! ximagesink
* ]| Shows pulsevideo output in an X window.
* gst-launch -v pinossrc ! videoconvert ! ximagesink
* ]| Shows pinos output in an X window.
* </refsect2>
*/
@ -44,8 +44,8 @@
GST_DEBUG_CATEGORY_STATIC (pulsevideo_src_debug);
#define GST_CAT_DEFAULT pulsevideo_src_debug
GST_DEBUG_CATEGORY_STATIC (pinos_src_debug);
#define GST_CAT_DEFAULT pinos_src_debug
enum
{
@ -56,35 +56,35 @@ enum
#define PVS_VIDEO_CAPS GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL)
static GstStaticPadTemplate gst_pulsevideo_src_template =
static GstStaticPadTemplate gst_pinos_src_template =
GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
GST_STATIC_CAPS_ANY
);
#define gst_pulsevideo_src_parent_class parent_class
G_DEFINE_TYPE (GstPulsevideoSrc, gst_pulsevideo_src, GST_TYPE_PUSH_SRC);
#define gst_pinos_src_parent_class parent_class
G_DEFINE_TYPE (GstPinosSrc, gst_pinos_src, GST_TYPE_PUSH_SRC);
static GstStateChangeReturn
gst_pulsevideo_src_change_state (GstElement * element, GstStateChange transition);
gst_pinos_src_change_state (GstElement * element, GstStateChange transition);
static gboolean gst_pulsevideo_src_negotiate (GstBaseSrc * basesrc);
static GstCaps *gst_pulsevideo_src_getcaps (GstBaseSrc * bsrc, GstCaps * filter);
static gboolean gst_pulsevideo_src_setcaps (GstBaseSrc * bsrc, GstCaps * caps);
static GstCaps *gst_pulsevideo_src_src_fixate (GstBaseSrc * bsrc,
static gboolean gst_pinos_src_negotiate (GstBaseSrc * basesrc);
static GstCaps *gst_pinos_src_getcaps (GstBaseSrc * bsrc, GstCaps * filter);
static gboolean gst_pinos_src_setcaps (GstBaseSrc * bsrc, GstCaps * caps);
static GstCaps *gst_pinos_src_src_fixate (GstBaseSrc * bsrc,
GstCaps * caps);
static GstFlowReturn gst_pulsevideo_src_create (GstPushSrc * psrc,
static GstFlowReturn gst_pinos_src_create (GstPushSrc * psrc,
GstBuffer ** buffer);
static gboolean gst_pulsevideo_src_start (GstBaseSrc * basesrc);
static gboolean gst_pulsevideo_src_stop (GstBaseSrc * basesrc);
static gboolean gst_pinos_src_start (GstBaseSrc * basesrc);
static gboolean gst_pinos_src_stop (GstBaseSrc * basesrc);
static void
gst_pulsevideo_src_set_property (GObject * object, guint prop_id,
gst_pinos_src_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
{
GstPulsevideoSrc *pvsrc = GST_PULSEVIDEO_SRC (object);
GstPinosSrc *pvsrc = GST_PINOS_SRC (object);
switch (prop_id) {
case PROP_SOURCE:
@ -99,10 +99,10 @@ gst_pulsevideo_src_set_property (GObject * object, guint prop_id,
}
static void
gst_pulsevideo_src_get_property (GObject * object, guint prop_id,
gst_pinos_src_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec)
{
GstPulsevideoSrc *pvsrc = GST_PULSEVIDEO_SRC (object);
GstPinosSrc *pvsrc = GST_PINOS_SRC (object);
switch (prop_id) {
case PROP_SOURCE:
@ -116,9 +116,9 @@ gst_pulsevideo_src_get_property (GObject * object, guint prop_id,
}
static void
gst_pulsevideo_src_finalize (GObject * object)
gst_pinos_src_finalize (GObject * object)
{
GstPulsevideoSrc *pvsrc = GST_PULSEVIDEO_SRC (object);
GstPinosSrc *pvsrc = GST_PINOS_SRC (object);
g_object_unref (pvsrc->fd_allocator);
g_mutex_clear (&pvsrc->lock);
@ -129,7 +129,7 @@ gst_pulsevideo_src_finalize (GObject * object)
}
static void
gst_pulsevideo_src_class_init (GstPulsevideoSrcClass * klass)
gst_pinos_src_class_init (GstPinosSrcClass * klass)
{
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
@ -141,9 +141,9 @@ gst_pulsevideo_src_class_init (GstPulsevideoSrcClass * klass)
gstbasesrc_class = (GstBaseSrcClass *) klass;
gstpushsrc_class = (GstPushSrcClass *) klass;
gobject_class->finalize = gst_pulsevideo_src_finalize;
gobject_class->set_property = gst_pulsevideo_src_set_property;
gobject_class->get_property = gst_pulsevideo_src_get_property;
gobject_class->finalize = gst_pinos_src_finalize;
gobject_class->set_property = gst_pinos_src_set_property;
gobject_class->get_property = gst_pinos_src_get_property;
g_object_class_install_property (gobject_class,
PROP_SOURCE,
@ -155,30 +155,30 @@ gst_pulsevideo_src_class_init (GstPulsevideoSrcClass * klass)
G_PARAM_STATIC_STRINGS));
gstelement_class->change_state = gst_pulsevideo_src_change_state;
gstelement_class->change_state = gst_pinos_src_change_state;
gst_element_class_set_static_metadata (gstelement_class,
"Pulsevideo source", "Source/Video",
"Uses pulsevideo to create video", "Wim Taymans <wim.taymans@gmail.com>");
"Pinos source", "Source/Video",
"Uses pinos to create video", "Wim Taymans <wim.taymans@gmail.com>");
gst_element_class_add_pad_template (gstelement_class,
gst_static_pad_template_get (&gst_pulsevideo_src_template));
gst_static_pad_template_get (&gst_pinos_src_template));
gstbasesrc_class->negotiate = gst_pulsevideo_src_negotiate;
gstbasesrc_class->get_caps = gst_pulsevideo_src_getcaps;
gstbasesrc_class->set_caps = gst_pulsevideo_src_setcaps;
gstbasesrc_class->fixate = gst_pulsevideo_src_src_fixate;
gstbasesrc_class->start = gst_pulsevideo_src_start;
gstbasesrc_class->stop = gst_pulsevideo_src_stop;
gstbasesrc_class->negotiate = gst_pinos_src_negotiate;
gstbasesrc_class->get_caps = gst_pinos_src_getcaps;
gstbasesrc_class->set_caps = gst_pinos_src_setcaps;
gstbasesrc_class->fixate = gst_pinos_src_src_fixate;
gstbasesrc_class->start = gst_pinos_src_start;
gstbasesrc_class->stop = gst_pinos_src_stop;
gstpushsrc_class->create = gst_pulsevideo_src_create;
gstpushsrc_class->create = gst_pinos_src_create;
GST_DEBUG_CATEGORY_INIT (pulsevideo_src_debug, "pulsevideosrc", 0,
"Pulsevideo Source");
GST_DEBUG_CATEGORY_INIT (pinos_src_debug, "pinossrc", 0,
"Pinos Source");
}
static void
gst_pulsevideo_src_init (GstPulsevideoSrc * src)
gst_pinos_src_init (GstPinosSrc * src)
{
/* we operate in time */
gst_base_src_set_format (GST_BASE_SRC (src), GST_FORMAT_TIME);
@ -191,7 +191,7 @@ gst_pulsevideo_src_init (GstPulsevideoSrc * src)
}
static GstCaps *
gst_pulsevideo_src_src_fixate (GstBaseSrc * bsrc, GstCaps * caps)
gst_pinos_src_src_fixate (GstBaseSrc * bsrc, GstCaps * caps)
{
GstStructure *structure;
@ -231,7 +231,7 @@ static void
on_new_buffer (GObject *gobject,
gpointer user_data)
{
GstPulsevideoSrc *pvsrc = user_data;
GstPinosSrc *pvsrc = user_data;
g_cond_signal (&pvsrc->cond);
}
@ -242,7 +242,7 @@ on_stream_notify (GObject *gobject,
gpointer user_data)
{
PvStreamState state;
GstPulsevideoSrc *pvsrc = user_data;
GstPinosSrc *pvsrc = user_data;
state = pv_stream_get_state (pvsrc->stream);
g_print ("got stream state %d\n", state);
@ -256,9 +256,9 @@ on_stream_notify (GObject *gobject,
}
static gboolean
gst_pulsevideo_src_negotiate (GstBaseSrc * basesrc)
gst_pinos_src_negotiate (GstBaseSrc * basesrc)
{
GstPulsevideoSrc *pvsrc = GST_PULSEVIDEO_SRC (basesrc);
GstPinosSrc *pvsrc = GST_PINOS_SRC (basesrc);
GstCaps *thiscaps;
GstCaps *caps = NULL;
GstCaps *peercaps = NULL;
@ -326,7 +326,7 @@ gst_pulsevideo_src_negotiate (GstBaseSrc * basesrc)
* nego is not needed */
result = TRUE;
} else {
caps = gst_pulsevideo_src_src_fixate (basesrc, caps);
caps = gst_pinos_src_src_fixate (basesrc, caps);
GST_DEBUG_OBJECT (basesrc, "fixated to: %" GST_PTR_FORMAT, caps);
if (gst_caps_is_fixed (caps)) {
/* yay, fixed caps, use those then, it's possible that the subclass does
@ -367,20 +367,20 @@ connect_error:
}
static GstCaps *
gst_pulsevideo_src_getcaps (GstBaseSrc * bsrc, GstCaps * filter)
gst_pinos_src_getcaps (GstBaseSrc * bsrc, GstCaps * filter)
{
return GST_BASE_SRC_CLASS (parent_class)->get_caps (bsrc, filter);
}
static gboolean
gst_pulsevideo_src_setcaps (GstBaseSrc * bsrc, GstCaps * caps)
gst_pinos_src_setcaps (GstBaseSrc * bsrc, GstCaps * caps)
{
GstPulsevideoSrc *pvsrc;
GstPinosSrc *pvsrc;
gchar *str;
GBytes *format;
gboolean res;
pvsrc = GST_PULSEVIDEO_SRC (bsrc);
pvsrc = GST_PINOS_SRC (bsrc);
str = gst_caps_to_string (caps);
format = g_bytes_new_take (str, strlen (str) + 1);
@ -393,14 +393,14 @@ gst_pulsevideo_src_setcaps (GstBaseSrc * bsrc, GstCaps * caps)
}
static GstFlowReturn
gst_pulsevideo_src_create (GstPushSrc * psrc, GstBuffer ** buffer)
gst_pinos_src_create (GstPushSrc * psrc, GstBuffer ** buffer)
{
GstPulsevideoSrc *pvsrc;
GstPinosSrc *pvsrc;
PvBufferInfo info;
gint *fds, n_fds;
GstMemory *fdmem = NULL;
pvsrc = GST_PULSEVIDEO_SRC (psrc);
pvsrc = GST_PINOS_SRC (psrc);
if (!pvsrc->negotiated)
goto not_negotiated;
@ -458,13 +458,13 @@ streaming_stopped:
}
static gboolean
gst_pulsevideo_src_start (GstBaseSrc * basesrc)
gst_pinos_src_start (GstBaseSrc * basesrc)
{
return TRUE;
}
static gboolean
gst_pulsevideo_src_stop (GstBaseSrc * basesrc)
gst_pinos_src_stop (GstBaseSrc * basesrc)
{
return TRUE;
}
@ -475,7 +475,7 @@ static gint
do_poll (GPollFD *ufds, guint nfsd, gint timeout_)
{
gint res;
GstPulsevideoSrc *this = g_private_get (&src_key);
GstPinosSrc *this = g_private_get (&src_key);
g_mutex_unlock (&this->lock);
res = this->poll_func (ufds, nfsd, timeout_);
@ -485,7 +485,7 @@ do_poll (GPollFD *ufds, guint nfsd, gint timeout_)
}
static gpointer
handle_mainloop (GstPulsevideoSrc *this)
handle_mainloop (GstPinosSrc *this)
{
g_mutex_lock (&this->lock);
g_private_set (&src_key, this);
@ -506,7 +506,7 @@ on_state_notify (GObject *gobject,
GParamSpec *pspec,
gpointer user_data)
{
GstPulsevideoSrc *pvsrc = user_data;
GstPinosSrc *pvsrc = user_data;
PvContextState state;
state = pv_context_get_state (pvsrc->ctx);
@ -521,7 +521,7 @@ on_state_notify (GObject *gobject,
}
static gboolean
gst_pulsevideo_src_open (GstPulsevideoSrc * pvsrc)
gst_pinos_src_open (GstPinosSrc * pvsrc)
{
g_mutex_lock (&pvsrc->lock);
@ -558,18 +558,18 @@ connect_error:
}
static GstStateChangeReturn
gst_pulsevideo_src_change_state (GstElement * element, GstStateChange transition)
gst_pinos_src_change_state (GstElement * element, GstStateChange transition)
{
GstStateChangeReturn ret;
GstPulsevideoSrc *this = GST_PULSEVIDEO_SRC_CAST (element);
GstPinosSrc *this = GST_PINOS_SRC_CAST (element);
switch (transition) {
case GST_STATE_CHANGE_NULL_TO_READY:
this->context = g_main_context_new ();
g_print ("context %p\n", this->context);
this->loop = g_main_loop_new (this->context, FALSE);
this->thread = g_thread_new ("pulsevideo", (GThreadFunc) handle_mainloop, this);
if (!gst_pulsevideo_src_open (this)) {
this->thread = g_thread_new ("pinos", (GThreadFunc) handle_mainloop, this);
if (!gst_pinos_src_open (this)) {
ret = GST_STATE_CHANGE_FAILURE;
goto exit;
}

View file

@ -17,8 +17,8 @@
* Boston, MA 02110-1301, USA.
*/
#ifndef __GST_PULSEVIDEO_SRC_H__
#define __GST_PULSEVIDEO_SRC_H__
#ifndef __GST_PINOS_SRC_H__
#define __GST_PINOS_SRC_H__
#include <gst/gst.h>
#include <gst/base/gstpushsrc.h>
@ -29,28 +29,28 @@
G_BEGIN_DECLS
#define GST_TYPE_PULSEVIDEO_SRC \
(gst_pulsevideo_src_get_type())
#define GST_PULSEVIDEO_SRC(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PULSEVIDEO_SRC,GstPulsevideoSrc))
#define GST_PULSEVIDEO_SRC_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PULSEVIDEO_SRC,GstPulsevideoSrcClass))
#define GST_IS_PULSEVIDEO_SRC(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PULSEVIDEO_SRC))
#define GST_IS_PULSEVIDEO_SRC_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PULSEVIDEO_SRC))
#define GST_PULSEVIDEO_SRC_CAST(obj) \
((GstPulsevideoSrc *) (obj))
#define GST_TYPE_PINOS_SRC \
(gst_pinos_src_get_type())
#define GST_PINOS_SRC(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PINOS_SRC,GstPinosSrc))
#define GST_PINOS_SRC_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PINOS_SRC,GstPinosSrcClass))
#define GST_IS_PINOS_SRC(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PINOS_SRC))
#define GST_IS_PINOS_SRC_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PINOS_SRC))
#define GST_PINOS_SRC_CAST(obj) \
((GstPinosSrc *) (obj))
typedef struct _GstPulsevideoSrc GstPulsevideoSrc;
typedef struct _GstPulsevideoSrcClass GstPulsevideoSrcClass;
typedef struct _GstPinosSrc GstPinosSrc;
typedef struct _GstPinosSrcClass GstPinosSrcClass;
/**
* GstPulsevideoSrc:
* GstPinosSrc:
*
* Opaque data structure.
*/
struct _GstPulsevideoSrc {
struct _GstPinosSrc {
GstPushSrc element;
/*< private >*/
@ -70,12 +70,12 @@ struct _GstPulsevideoSrc {
GCond cond;
};
struct _GstPulsevideoSrcClass {
struct _GstPinosSrcClass {
GstPushSrcClass parent_class;
};
GType gst_pulsevideo_src_get_type (void);
GType gst_pinos_src_get_type (void);
G_END_DECLS
#endif /* __GST_PULSEVIDEO_SRC_H__ */
#endif /* __GST_PINOS_SRC_H__ */