summaryrefslogtreecommitdiff
path: root/src/sydra.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sydra.c')
-rw-r--r--src/sydra.c82
1 files changed, 1 insertions, 81 deletions
diff --git a/src/sydra.c b/src/sydra.c
index bb55c97..c7503b6 100644
--- a/src/sydra.c
+++ b/src/sydra.c
@@ -52,6 +52,7 @@
#include "string_list.h"
#include "log.h"
#include "daemon.h"
+#include "utils.h"
static gboolean sig_handler_terminate(gpointer user_data)
{
@@ -162,88 +163,7 @@ static gboolean bus_call(GstBus *bus, GstMessage *msg, gpointer data)
return TRUE;
}
-static GstElement* sydra_create_bin_from_desc(const char* type, const char* desc)
-{
- GError *error = NULL;
- GstElement *bin = gst_parse_bin_from_description(desc, TRUE, &error);
- if(!bin) {
- log_printf(ERROR, "Bin description for %s parser error: %s", type, error ? error->message : "unknown");
- g_error_free(error);
- return NULL;
- }
- if(error) {
- log_printf(WARNING, "Bin description for %s parser warning: %s", type, error ? error->message : "unknown");
- g_error_free(error);
- }
- return bin;
-}
-
-static GstElement* sydra_create_element(const char* type, const char* name)
-{
- GstElement *e = gst_element_factory_make (type, name);
- if(!e) {
- log_printf(ERROR, "Error creating element %s%sof type %s", name ? name : "", name ? " " : "", type);
- return NULL;
- }
- return e;
-}
-
-static gboolean sydra_link_pads(GstElement* src, GstPad* src_pad, const char* src_pad_name, GstElement* sink, GstPad* sink_pad, const char* sink_pad_name)
-{
- if(!src_pad || !sink_pad)
- return FALSE;
-
- GstPadLinkReturn ret = gst_pad_link(src_pad, sink_pad);
- gst_object_unref(GST_OBJECT(src_pad));
- gst_object_unref(GST_OBJECT(sink_pad));
-
- if(GST_PAD_LINK_FAILED(ret)) {
- gchar* src_name = gst_element_get_name(src);
- gchar* sink_name = gst_element_get_name(sink);
- log_printf(ERROR, "Error linking pad '%s' of '%s' with pad '%s' of '%s'",
- src_pad_name, src_name, sink_pad_name, sink_name);
- g_free(src_name);
- g_free(sink_name);
- return FALSE;
- }
- return TRUE;
-}
-
-static gboolean sydra_link_request_static(GstElement* src, const char* src_pad_name, GstElement* sink, const char* sink_pad_name)
-{
- GstPad *src_pad = gst_element_get_request_pad(src, src_pad_name);
- GstPad *sink_pad = gst_element_get_static_pad(sink, sink_pad_name);
- return sydra_link_pads(src, src_pad, src_pad_name, sink, sink_pad, sink_pad_name);
-}
-
-static gboolean sydra_link_static_request(GstElement* src, const char* src_pad_name, GstElement* sink, const char* sink_pad_name)
-{
- GstPad *src_pad = gst_element_get_static_pad(src, src_pad_name);
- GstPad *sink_pad = gst_element_get_request_pad(sink, sink_pad_name);
- return sydra_link_pads(src, src_pad, src_pad_name, sink, sink_pad, sink_pad_name);
-}
-static gboolean sydra_link_static_static(GstElement* src, const char* src_pad_name, GstElement* sink, const char* sink_pad_name)
-{
- GstPad *src_pad = gst_element_get_static_pad(src, src_pad_name);
- GstPad *sink_pad = gst_element_get_static_pad(sink, sink_pad_name);
- return sydra_link_pads(src, src_pad, src_pad_name, sink, sink_pad, sink_pad_name);
-}
-
-static gboolean sydra_link_static_compatible(GstElement* src, const char* src_pad_name, GstElement* sink)
-{
- GstPad *src_pad = gst_element_get_static_pad(src, src_pad_name);
- if(!src_pad) return FALSE;
-
- GstPad *sink_pad = gst_element_get_compatible_pad(sink, src_pad, NULL);
- if(!sink_pad) return FALSE;
-
- gchar* sink_pad_name = gst_pad_get_name(sink_pad);
- gboolean res = sydra_link_pads(src, src_pad, src_pad_name, sink, sink_pad, sink_pad_name);
- g_free(sink_pad_name);
-
- return res;
-}
struct media_elements {
const char* name_;