Hello. <br>I created ghostpad for bin..and connected other elements.<br>but I met the error...<br><br>Error: Internal data flow error. (gstbasesrc.c(2234): gst_base_src_loop (): /GstPipeline:pipeline0/GstAudioTestSrc:audiotestsrc0:<br>
streaming task paused, reason not-linked (-1))<br><br>My code is below...<br><br>static GstElement *make_encoder (void)<br>{<br> GstElement *result;<br> GstElement *aconv;<br> GstElement *codec;<br> GstElement *mux;<br>
GstPad *pad;<br> GstCaps *caps;<br><br> /* create result bin */<br> result = gst_bin_new("encoder");<br> g_assert(result);<br><br> aconv = gst_element_factory_make("audioconvert", NULL);<br>
g_assert(aconv);<br><br> /* create elements */<br> codec = gst_element_factory_make("vorbisenc", NULL);<br> g_assert(codec);<br><br> mux = gst_element_factory_make("oggmux", NULL);<br>
g_assert(mux);<br><br> /* add elements to result bin */<br> gst_bin_add(GST_BIN(result), aconv);<br> gst_bin_add(GST_BIN(result), codec);<br> gst_bin_add(GST_BIN(result), mux);<br><br> /* link elements */<br>
gst_element_link_pads(aconv, "src", codec, "sink");<br> gst_element_link_pads(codec, "src", mux, "sink");<br><br> /* ghost src and sink pads */<br> pad = gst_element_get_static_pad(aconv, "sink");<br>
gst_element_add_pad(result, gst_ghost_pad_new("sink", pad));<br> gst_object_unref(pad);<br><br> pad = gst_element_get_static_pad(mux, "src");<br> gst_element_add_pad(result, gst_ghost_pad_new("src", pad));<br>
gst_object_unref(pad);<br><br> return result;<br>}<br><br>static GstElement *make_pipeline(void)<br>{<br> GstElement *result;<br> GstElement *audiosrc;<br> GstElement *audiocaps;<br> GstCaps *caps;<br>
GstElement *aconv;<br> GstElement *queue;<br> GstElement *sink;<br> GstElement *encoder;<br><br> result = gst_pipeline_new(NULL);<br> g_assert(result);<br><br> /* create various elements */<br>
audiosrc = gst_element_factory_make("audiotestsrc", NULL);<br> g_object_set(audiosrc, "num-buffers", 1000, NULL);<br> g_assert(audiosrc);<br><br> audiocaps = gst_element_factory_make("capsfilter", NULL);<br>
g_assert(audiocaps);<br><br> caps = gst_caps_from_string<br> ("audio/x-raw-int,signed=true,width=16,depth=16,rate=48000,channels=1");<br> g_object_set(audiocaps, "caps", caps, NULL);<br>
gst_caps_unref(caps);<br><br><br> queue = gst_element_factory_make("queue", NULL);<br> g_assert(queue);<br><br> sink = gst_element_factory_make("filesink", NULL);<br> g_object_set(sink, "location", "audio.ogg", NULL);<br>
g_assert(sink);<br><br> /* add elements */<br> gst_bin_add(GST_BIN(result), audiosrc);<br> gst_bin_add(GST_BIN(result), audiocaps);<br> gst_bin_add(GST_BIN(result), queue);<br> gst_bin_add(GST_BIN(result), sink);<br>
<br> encoder = make_encoder();<br> gst_bin_add(GST_BIN(result), encoder);<br><br> /* link elements */<br> gst_element_link_pads(audiosrc, "src", audiocaps, "sink");<br> gst_element_link_pads(audiocaps, "src", queue, "sink");<br>
gst_element_link_pads(queue, "src", encoder, "sink");<br> gst_element_link_pads(encoder, "src", sink, "sink");<br><br> gst_element_set_state(result, GST_STATE_READY);<br>
<br> return result;<br>}<br><br>Please explain the incorrect point..<br>Thank you<br><br><br>