diff options
author | Luo Jinghua <sunmoon1997@gmail.com> | 2009-09-12 23:42:39 +0800 |
---|---|---|
committer | Luo Jinghua <sunmoon1997@gmail.com> | 2009-09-12 23:42:39 +0800 |
commit | be659670cd160b0e8eb4fe604b38be3ad2c47c7f (patch) | |
tree | 795301d05639a12ae10ed2d343861609caef8ad1 /src/gstscsrc.c | |
parent | de3d5a1972af36c2ae792290585a9e2e2f4b445b (diff) |
s/sc/sopcast/
Diffstat (limited to 'src/gstscsrc.c')
-rw-r--r-- | src/gstscsrc.c | 218 |
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, "") |