summaryrefslogtreecommitdiff
path: root/src/gstscsrc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gstscsrc.c')
-rw-r--r--src/gstscsrc.c218
1 files changed, 109 insertions, 109 deletions
diff --git a/src/gstscsrc.c b/src/gstscsrc.c
index 49787c0..0817cf9 100644
--- a/src/gstscsrc.c
+++ b/src/gstscsrc.c
@@ -46,7 +46,7 @@
GST_DEBUG_CATEGORY_STATIC (scsrc_debug);
#define GST_CAT_DEFAULT scsrc_debug
-static const GstElementDetails gst_sc_src_details =
+static const GstElementDetails gst_sopcast_src_details =
GST_ELEMENT_DETAILS ("Sopcast stream source",
"Source/Network",
"Receive data as a client over the network via sopcast",
@@ -65,44 +65,44 @@ enum
PROP_PASSWORD
};
-static void gst_sc_src_uri_handler_init (gpointer g_iface,
+static void gst_sopcast_src_uri_handler_init (gpointer g_iface,
gpointer iface_data);
-static void gst_sc_src_init (GstScSrc * src,
- GstScSrcClass * g_class);
-static void gst_sc_src_dispose (GObject * gobject);
+static void gst_sopcast_src_init (GstSopcastSrc * src,
+ GstSopcastSrcClass * g_class);
+static void gst_sopcast_src_dispose (GObject * gobject);
-static void gst_sc_src_set_property (GObject * object, guint prop_id,
+static void gst_sopcast_src_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec);
-static void gst_sc_src_get_property (GObject * object, guint prop_id,
+static void gst_sopcast_src_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
-static GstFlowReturn gst_sc_src_create (GstPushSrc * src, GstBuffer ** buffer);
+static GstFlowReturn gst_sopcast_src_create (GstPushSrc * src, GstBuffer ** buffer);
-static gboolean gst_sc_src_start (GstBaseSrc * bsrc);
+static gboolean gst_sopcast_src_start (GstBaseSrc * bsrc);
-static gboolean gst_sc_src_stop (GstBaseSrc * bsrc);
+static gboolean gst_sopcast_src_stop (GstBaseSrc * bsrc);
-static gboolean gst_sc_src_get_size (GstBaseSrc * bsrc, guint64 * size);
+static gboolean gst_sopcast_src_get_size (GstBaseSrc * bsrc, guint64 * size);
-static gboolean gst_sc_src_is_seekable (GstBaseSrc * bsrc);
+static gboolean gst_sopcast_src_is_seekable (GstBaseSrc * bsrc);
-static gboolean gst_sc_src_do_seek (GstBaseSrc * bsrc,
+static gboolean gst_sopcast_src_do_seek (GstBaseSrc * bsrc,
GstSegment * segment);
-static gboolean gst_sc_src_unlock (GstBaseSrc * bsrc);
+static gboolean gst_sopcast_src_unlock (GstBaseSrc * bsrc);
-static gboolean gst_sc_src_unlock_stop (GstBaseSrc * bsrc);
+static gboolean gst_sopcast_src_unlock_stop (GstBaseSrc * bsrc);
-static gboolean gst_sc_src_set_location (GstScSrc * src,
+static gboolean gst_sopcast_src_set_location (GstSopcastSrc * src,
const gchar * uri);
static GstStateChangeReturn
-gst_sc_src_change_state (GstElement * element, GstStateChange transition);
+gst_sopcast_src_change_state (GstElement * element, GstStateChange transition);
static void
_do_init (GType type)
{
static const GInterfaceInfo urihandler_info = {
- gst_sc_src_uri_handler_init,
+ gst_sopcast_src_uri_handler_init,
NULL,
NULL
};
@@ -113,22 +113,22 @@ _do_init (GType type)
"SCtream src");
}
-GST_BOILERPLATE_FULL (GstScSrc, gst_sc_src, GstPushSrc,
+GST_BOILERPLATE_FULL (GstSopcastSrc, gst_sopcast_src, GstPushSrc,
GST_TYPE_PUSH_SRC, _do_init);
static void
-gst_sc_src_base_init (gpointer g_class)
+gst_sopcast_src_base_init (gpointer g_class)
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
gst_element_class_add_pad_template (element_class,
gst_static_pad_template_get (&srctemplate));
- gst_element_class_set_details (element_class, &gst_sc_src_details);
+ gst_element_class_set_details (element_class, &gst_sopcast_src_details);
}
static void
-gst_sc_src_class_init (GstScSrcClass * klass)
+gst_sopcast_src_class_init (GstSopcastSrcClass * klass)
{
GObjectClass *gobject_class;
GstElementClass *gstelement_class;
@@ -140,34 +140,34 @@ gst_sc_src_class_init (GstScSrcClass * klass)
gstelement_class = (GstElementClass *) klass;
gstpushsrc_class = (GstPushSrcClass *) klass;
- gobject_class->set_property = gst_sc_src_set_property;
- gobject_class->get_property = gst_sc_src_get_property;
- gobject_class->dispose = gst_sc_src_dispose;
+ gobject_class->set_property = gst_sopcast_src_set_property;
+ gobject_class->get_property = gst_sopcast_src_get_property;
+ gobject_class->dispose = gst_sopcast_src_dispose;
g_object_class_install_property (gobject_class,
PROP_LOCATION,
g_param_spec_string ("location", "Location",
"Location to read from", "", G_PARAM_READWRITE));
- gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_sc_src_start);
- gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_sc_src_stop);
- gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_sc_src_unlock);
+ gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_sopcast_src_start);
+ gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_sopcast_src_stop);
+ gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_sopcast_src_unlock);
gstbasesrc_class->unlock_stop =
- GST_DEBUG_FUNCPTR (gst_sc_src_unlock_stop);
- gstbasesrc_class->get_size = GST_DEBUG_FUNCPTR (gst_sc_src_get_size);
+ GST_DEBUG_FUNCPTR (gst_sopcast_src_unlock_stop);
+ gstbasesrc_class->get_size = GST_DEBUG_FUNCPTR (gst_sopcast_src_get_size);
gstbasesrc_class->is_seekable =
- GST_DEBUG_FUNCPTR (gst_sc_src_is_seekable);
- gstbasesrc_class->do_seek = GST_DEBUG_FUNCPTR (gst_sc_src_do_seek);
+ GST_DEBUG_FUNCPTR (gst_sopcast_src_is_seekable);
+ gstbasesrc_class->do_seek = GST_DEBUG_FUNCPTR (gst_sopcast_src_do_seek);
- gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_sc_src_create);
- gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_sc_src_change_state);
+ gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_sopcast_src_create);
+ gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_sopcast_src_change_state);
GST_DEBUG_CATEGORY_INIT (scsrc_debug, "scsrc", 0,
"SCtream Source");
}
static void
-gst_sc_src_init (GstScSrc * src, GstScSrcClass * g_class)
+gst_sopcast_src_init (GstSopcastSrc * src, GstSopcastSrcClass * g_class)
{
guint major, minor, micro, nano;
@@ -179,9 +179,9 @@ gst_sc_src_init (GstScSrc * src, GstScSrcClass * g_class)
}
static void
-gst_sc_src_dispose (GObject * gobject)
+gst_sopcast_src_dispose (GObject * gobject)
{
- GstScSrc *src = GST_SC_SRC (gobject);
+ GstSopcastSrc *src = GST_SOPCAST_SRC (gobject);
GST_DEBUG_OBJECT (src, "dispose");
@@ -192,10 +192,10 @@ gst_sc_src_dispose (GObject * gobject)
}
static void
-gst_sc_src_set_property (GObject * object, guint prop_id,
+gst_sopcast_src_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
{
- GstScSrc *src = GST_SC_SRC (object);
+ GstSopcastSrc *src = GST_SOPCAST_SRC (object);
switch (prop_id) {
case PROP_LOCATION:
@@ -208,7 +208,7 @@ gst_sc_src_set_property (GObject * object, guint prop_id,
GST_WARNING ("location property cannot be NULL");
goto done;
}
- if (!gst_sc_src_set_location (src, location)) {
+ if (!gst_sopcast_src_set_location (src, location)) {
GST_WARNING ("badly formatted location");
goto done;
}
@@ -223,10 +223,10 @@ done:
}
static void
-gst_sc_src_get_property (GObject * object, guint prop_id,
+gst_sopcast_src_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec)
{
- GstScSrc *src = GST_SC_SRC (object);
+ GstSopcastSrc *src = GST_SOPCAST_SRC (object);
switch (prop_id) {
case PROP_LOCATION:
@@ -239,7 +239,7 @@ gst_sc_src_get_property (GObject * object, guint prop_id,
}
static gboolean
-gst_sc_src_connect_server (GstScSrc *src)
+gst_sopcast_src_connect_server (GstSopcastSrc *src)
{
struct sockaddr_in sockaddr;
int sock;
@@ -273,7 +273,7 @@ gst_sc_src_connect_server (GstScSrc *src)
}
static gboolean
-gst_sc_src_send_first_request (GstScSrc *src)
+gst_sopcast_src_send_first_request (GstSopcastSrc *src)
{
gchar request[1024];
gchar reply[1024];
@@ -313,7 +313,7 @@ gst_sc_src_send_first_request (GstScSrc *src)
}
static gchar*
-gst_sc_src_get_stats (GstScSrc *src)
+gst_sopcast_src_get_stats (GstSopcastSrc *src)
{
struct sockaddr_in sockaddr;
gchar request[] = "state\ns\n";
@@ -393,7 +393,7 @@ failed:
}
static gboolean
-gst_sc_src_helper_is_running (GstScSrc *src)
+gst_sopcast_src_helper_is_running (GstSopcastSrc *src)
{
if (kill (src->helper_pid, 0) == 0)
return TRUE;
@@ -403,12 +403,12 @@ gst_sc_src_helper_is_running (GstScSrc *src)
}
static int
-gst_src_src_get_buffering_level (GstScSrc *src)
+gst_src_src_get_buffering_level (GstSopcastSrc *src)
{
gchar *stats;
gint percent = 0;
- stats = gst_sc_src_get_stats (src);
+ stats = gst_sopcast_src_get_stats (src);
if (stats) {
gchar **values;
@@ -425,7 +425,7 @@ gst_src_src_get_buffering_level (GstScSrc *src)
}
static void
-gst_sc_src_update_buffering_progress (GstScSrc *src, gint percent)
+gst_sopcast_src_update_buffering_progress (GstSopcastSrc *src, gint percent)
{
GstMessage *message;
@@ -441,14 +441,14 @@ gst_sc_src_update_buffering_progress (GstScSrc *src, gint percent)
}
static GstFlowReturn
-gst_sc_src_create (GstPushSrc * psrc, GstBuffer ** buffer)
+gst_sopcast_src_create (GstPushSrc * psrc, GstBuffer ** buffer)
{
int ret;
time_t now;
int percent;
guint blocksize;
GstBuffer *buf = NULL;
- GstScSrc *src = GST_SC_SRC (psrc);
+ GstSopcastSrc *src = GST_SOPCAST_SRC (psrc);
if (src->first_request) {
int times = 0;
@@ -457,7 +457,7 @@ gst_sc_src_create (GstPushSrc * psrc, GstBuffer ** buffer)
do {
percent = gst_src_src_get_buffering_level (src);
- if (src->interrupted || !gst_sc_src_helper_is_running (src))
+ if (src->interrupted || !gst_sopcast_src_helper_is_running (src))
return GST_FLOW_ERROR;
if (percent > 65)
break;
@@ -469,21 +469,21 @@ gst_sc_src_create (GstPushSrc * psrc, GstBuffer ** buffer)
times = 0;
}
- gst_sc_src_update_buffering_progress (src, percent);
+ gst_sopcast_src_update_buffering_progress (src, percent);
g_usleep (100000);
} while (1);
GST_DEBUG_OBJECT (src, "Sending the GET request");
do {
- if (gst_sc_src_connect_server (src))
+ if (gst_sopcast_src_connect_server (src))
break;
- if (src->interrupted || !gst_sc_src_helper_is_running (src))
+ if (src->interrupted || !gst_sopcast_src_helper_is_running (src))
return GST_FLOW_ERROR;
g_usleep (500000);
} while (1);
GST_DEBUG_OBJECT (src, "Sending the GET request");
- if (!gst_sc_src_send_first_request (src)) {
+ if (!gst_sopcast_src_send_first_request (src)) {
GST_DEBUG_OBJECT (src, "Couldn't send the GET request");
goto open_error;
}
@@ -494,11 +494,11 @@ gst_sc_src_create (GstPushSrc * psrc, GstBuffer ** buffer)
now = time (NULL);
if (now - src->last_update > 1 || now - src->last_update < 0) {
percent = gst_src_src_get_buffering_level (src);
- gst_sc_src_update_buffering_progress (src, percent);
+ gst_sopcast_src_update_buffering_progress (src, percent);
src->last_update = now;
}
- if (!gst_sc_src_helper_is_running (src))
+ if (!gst_sopcast_src_helper_is_running (src))
return GST_FLOW_ERROR;
blocksize = GST_BASE_SRC (src)->blocksize;
@@ -514,7 +514,7 @@ gst_sc_src_create (GstPushSrc * psrc, GstBuffer ** buffer)
struct timeval tv;
int sock = src->socks[0];
- if (src->interrupted /* || !gst_sc_src_helper_is_running (src) */)
+ if (src->interrupted /* || !gst_sopcast_src_helper_is_running (src) */)
goto could_not_read;
FD_ZERO (&rfs);
@@ -576,7 +576,7 @@ eos:
}
static int
-gst_sc_src_allocate_port (void)
+gst_sopcast_src_allocate_port (void)
{
int port;
int sock;
@@ -602,18 +602,18 @@ gst_sc_src_allocate_port (void)
}
static gboolean
-gst_sc_src_allocate_ports (GstScSrc * src)
+gst_sopcast_src_allocate_ports (GstSopcastSrc * src)
{
- src->ports[0] = gst_sc_src_allocate_port ();
+ src->ports[0] = gst_sopcast_src_allocate_port ();
do {
- src->ports[1] = gst_sc_src_allocate_port ();
+ src->ports[1] = gst_sopcast_src_allocate_port ();
} while (src->ports[1] == src->ports[0]);
return src->ports[0] > 0 && src->ports[1] > 0;
}
static gboolean
-gst_sc_src_spawn_helper (GstScSrc * src)
+gst_sopcast_src_spawn_helper (GstSopcastSrc * src)
{
gchar* argv[12];
gchar ports[2][20];
@@ -645,14 +645,14 @@ gst_sc_src_spawn_helper (GstScSrc * src)
}
static void
-gst_sc_src_subproc_main (GstScSrc * src, int sock)
+gst_sopcast_src_subproc_main (GstSopcastSrc * src, int sock)
{
fd_set rfs;
fd_set efs;
struct timeval tv;
int i, max, ret;
- if (!gst_sc_src_spawn_helper (src))
+ if (!gst_sopcast_src_spawn_helper (src))
exit (-1);
max = sysconf(_SC_OPEN_MAX);
@@ -663,7 +663,7 @@ gst_sc_src_subproc_main (GstScSrc * src, int sock)
signal (SIGHUP, SIG_IGN);
signal (SIGINT, SIG_IGN);
while (1) {
- if (!gst_sc_src_helper_is_running (src))
+ if (!gst_sopcast_src_helper_is_running (src))
break;
errno = 0;
@@ -692,7 +692,7 @@ gst_sc_src_subproc_main (GstScSrc * src, int sock)
}
static gboolean
-gst_sc_src_spawn_sopcast (GstScSrc * src)
+gst_sopcast_src_spawn_sopcast (GstSopcastSrc * src)
{
pid_t pid;
int ret;
@@ -705,7 +705,7 @@ gst_sc_src_spawn_sopcast (GstScSrc * src)
pid = fork ();
if (pid == 0) {
/* fds[0] will be closed later */
- gst_sc_src_subproc_main (src, fds[1]);
+ gst_sopcast_src_subproc_main (src, fds[1]);
} else if (pid > 0) {
close (fds[1]);
src->heatebeat_fd = fds[0];
@@ -720,20 +720,20 @@ gst_sc_src_spawn_sopcast (GstScSrc * src)
}
static gboolean
-gst_sc_src_start (GstBaseSrc * bsrc)
+gst_sopcast_src_start (GstBaseSrc * bsrc)
{
- GstScSrc *src;
+ GstSopcastSrc *src;
- src = GST_SC_SRC (bsrc);
+ src = GST_SOPCAST_SRC (bsrc);
- if (!gst_sc_src_allocate_ports (src)) {
+ if (!gst_sopcast_src_allocate_ports (src)) {
GST_ERROR_OBJECT (src, "Coudn't allocate two ports.");
return FALSE;
}
GST_DEBUG_OBJECT (src, "localport: %d playerport: %d.", src->ports[0], src->ports[1]);
src->heatebeat_fd = -1;
- if (!gst_sc_src_spawn_sopcast (src)) {
+ if (!gst_sopcast_src_spawn_sopcast (src)) {
GST_ERROR_OBJECT (src, "Coudn't spawn the sp-sc.");
return FALSE;
}
@@ -745,12 +745,12 @@ gst_sc_src_start (GstBaseSrc * bsrc)
}
static gboolean
-gst_sc_src_stop (GstBaseSrc * bsrc)
+gst_sopcast_src_stop (GstBaseSrc * bsrc)
{
- GstScSrc *src;
+ GstSopcastSrc *src;
int status;
- src = GST_SC_SRC (bsrc);
+ src = GST_SOPCAST_SRC (bsrc);
GST_DEBUG_OBJECT (src, "stop()");
close (src->socks[0]);
@@ -774,11 +774,11 @@ gst_sc_src_stop (GstBaseSrc * bsrc)
/* Interrupt a blocking request. */
static gboolean
-gst_sc_src_unlock (GstBaseSrc * bsrc)
+gst_sopcast_src_unlock (GstBaseSrc * bsrc)
{
- GstScSrc *src;
+ GstSopcastSrc *src;
- src = GST_SC_SRC (bsrc);
+ src = GST_SOPCAST_SRC (bsrc);
GST_DEBUG_OBJECT (src, "unlock()");
src->interrupted = TRUE;
@@ -787,11 +787,11 @@ gst_sc_src_unlock (GstBaseSrc * bsrc)
/* Interrupt interrupt. */
static gboolean
-gst_sc_src_unlock_stop (GstBaseSrc * bsrc)
+gst_sopcast_src_unlock_stop (GstBaseSrc * bsrc)
{
- GstScSrc *src;
+ GstSopcastSrc *src;
- src = GST_SC_SRC (bsrc);
+ src = GST_SOPCAST_SRC (bsrc);
GST_DEBUG_OBJECT (src, "unlock_stop()");
src->interrupted = FALSE;
@@ -799,29 +799,29 @@ gst_sc_src_unlock_stop (GstBaseSrc * bsrc)
}
static gboolean
-gst_sc_src_get_size (GstBaseSrc * bsrc, guint64 * size)
+gst_sopcast_src_get_size (GstBaseSrc * bsrc, guint64 * size)
{
- GstScSrc *src;
+ GstSopcastSrc *src;
- src = GST_SC_SRC (bsrc);
+ src = GST_SOPCAST_SRC (bsrc);
GST_DEBUG_OBJECT (src, "get_size() = FALSE");
return FALSE;
}
static gboolean
-gst_sc_src_is_seekable (GstBaseSrc * bsrc)
+gst_sopcast_src_is_seekable (GstBaseSrc * bsrc)
{
- GstScSrc *src = GST_SC_SRC (bsrc);
+ GstSopcastSrc *src = GST_SOPCAST_SRC (bsrc);
GST_DEBUG_OBJECT (src, "seakable: %d", src->seekable);
return FALSE;
}
static gboolean
-gst_sc_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment)
+gst_sopcast_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment)
{
- GstScSrc *src = GST_SC_SRC (bsrc);
+ GstSopcastSrc *src = GST_SOPCAST_SRC (bsrc);
GST_DEBUG_OBJECT (src, "do_seek(%" G_GUINT64_FORMAT ")", segment->start);
@@ -832,12 +832,12 @@ gst_sc_src_do_seek (GstBaseSrc * bsrc, GstSegment * segment)
}
static GstStateChangeReturn
-gst_sc_src_change_state (GstElement * element, GstStateChange transition)
+gst_sopcast_src_change_state (GstElement * element, GstStateChange transition)
{
- GstScSrc *scsrc;
+ GstSopcastSrc *scsrc;
GstStateChangeReturn result;
- scsrc = GST_SC_SRC (element);
+ scsrc = GST_SOPCAST_SRC (element);
switch (transition) {
case GST_STATE_CHANGE_NULL_TO_READY:
@@ -883,7 +883,7 @@ failure:
}
static gboolean
-gst_sc_src_set_location (GstScSrc * src, const gchar * uri)
+gst_sopcast_src_set_location (GstSopcastSrc * src, const gchar * uri)
{
g_free (src->location);
src->location = g_strdup (uri);
@@ -892,54 +892,54 @@ gst_sc_src_set_location (GstScSrc * src, const gchar * uri)
}
static guint
-gst_sc_src_uri_get_type (void)
+gst_sopcast_src_uri_get_type (void)
{
return GST_URI_SRC;
}
static gchar **
-gst_sc_src_uri_get_protocols (void)
+gst_sopcast_src_uri_get_protocols (void)
{
static gchar *protocols[] = { "sop", NULL };
return protocols;
}
static const gchar *
-gst_sc_src_uri_get_uri (GstURIHandler * handler)
+gst_sopcast_src_uri_get_uri (GstURIHandler * handler)
{
- GstScSrc *src = GST_SC_SRC (handler);
+ GstSopcastSrc *src = GST_SOPCAST_SRC (handler);
return src->location;
}
static gboolean
-gst_sc_src_uri_set_uri (GstURIHandler * handler, const gchar * uri)
+gst_sopcast_src_uri_set_uri (GstURIHandler * handler, const gchar * uri)
{
- GstScSrc *src = GST_SC_SRC (handler);
+ GstSopcastSrc *src = GST_SOPCAST_SRC (handler);
- return gst_sc_src_set_location (src, uri);
+ return gst_sopcast_src_set_location (src, uri);
}
static void
-gst_sc_src_uri_handler_init (gpointer g_iface, gpointer iface_data)
+gst_sopcast_src_uri_handler_init (gpointer g_iface, gpointer iface_data)
{
GstURIHandlerInterface *iface = (GstURIHandlerInterface *) g_iface;
- iface->get_type = gst_sc_src_uri_get_type;
- iface->get_protocols = gst_sc_src_uri_get_protocols;
- iface->get_uri = gst_sc_src_uri_get_uri;
- iface->set_uri = gst_sc_src_uri_set_uri;
+ iface->get_type = gst_sopcast_src_uri_get_type;
+ iface->get_protocols = gst_sopcast_src_uri_get_protocols;
+ iface->get_uri = gst_sopcast_src_uri_get_uri;
+ iface->set_uri = gst_sopcast_src_uri_set_uri;
}
static gboolean
plugin_init (GstPlugin * plugin)
{
- return gst_element_register (plugin, "scsrc", GST_RANK_PRIMARY,
- GST_TYPE_SC_SRC);
+ return gst_element_register (plugin, "sopcastsrc", GST_RANK_PRIMARY,
+ GST_TYPE_SOPCAST_SRC);
}
GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
GST_VERSION_MINOR,
- "sc",
+ "sopcast",
"sopcast stream src",
plugin_init, VERSION, "LGPL", PACKAGE, "")