rendered paste body
cel->pipeline = gst_pipeline_new("pipeline");
g_assert (cel->pipeline);
cel->camera_src = gst_element_factory_make(VIDEO_SRC, "camera_src");
g_assert(cel->camera_src);
cel->tee = gst_element_factory_make("tee", "tee");
g_assert(cel->tee);
tee_pad = gst_element_get_request_pad (cel->tee, "src%d");
g_print ("new pad %s\n", gst_pad_get_name (tee_pad));
cel->bin = gst_bin_new("bin");
g_assert(cel->bin);
cel->screen_queue = gst_element_factory_make("queue", "screen_queue");
g_assert(cel->screen_queue);
cel->csp_filter = gst_element_factory_make("ffmpegcolorspace", "csp_filter");
g_assert(cel->csp_filter);
cel->screen_sink = gst_element_factory_make(VIDEO_SINK, "screen_sink");
g_assert(cel->screen_sink);
gst_bin_add_many (GST_BIN (cel->pipeline), cel->camera_src, cel->tee, NULL);
gst_bin_add_many (GST_BIN (cel->bin), cel->screen_queue, cel->csp_filter,cel->screen_sink, NULL);
gst_bin_add (GST_BIN (cel->pipeline), cel->bin);
ret = gst_element_link_many (cel->screen_queue, cel->csp_filter,cel->screen_sink, NULL);
ret = gst_element_link (cel->camera_src, cel->tee);
pad = gst_element_get_static_pad (cel->screen_queue, "sink");
gst_element_add_pad (cel->bin, gst_ghost_pad_new ("sink", pad));
ret = gst_pad_link (tee_pad, pad);
gst_object_unref (pad);
gst_element_set_state(cel->pipeline, GST_STATE_PLAYING);