[gst-devel] gstbin test...

Yool-Je Cho revizes at yahoo.co.kr
Mon Dec 29 17:51:30 CET 2008


Hello...

I tested gstbin..

gst-launch-0.10 audiotestsrc ! queue ! audioconvert ! { vorbisenc ! oggmux } ! filesink location=audio.ogg
is successed...

but...below is 
Error: Internal data flow error. (gstbasesrc.c(2234): gst_base_src_loop (): /GstPipeline:pipeline0/GstAudioTestSrc:audiotestsrc0:
streaming task paused, reason not-linked (-1))



static GstElement *make_encoder (void)
{
    GstElement *result;
    GstElement *codec;
    GstElement *mux;
    GstPad *pad;
    GstCaps *caps;

    /* create result bin */
    result = gst_bin_new(NULL);
    g_assert(result);

    /* create elements */
    codec = gst_element_factory_make("vorbisenc", NULL);
    g_assert(codec);

    mux = gst_element_factory_make("oggmux", NULL);
    g_assert(mux);

    /* add elements to result bin */
    gst_bin_add(GST_BIN(result), codec);
    gst_bin_add(GST_BIN(result), mux);

    /* link elements */
    gst_element_link_pads(codec, "src", mux, "sink");

    /* ghost src and sink pads */
    pad = gst_element_get_static_pad(codec, "sink");
    gst_element_add_pad(result, gst_ghost_pad_new("sink", pad));
    gst_object_unref(pad);

    pad = gst_element_get_static_pad(mux, "src");
    gst_element_add_pad(result, gst_ghost_pad_new("src", pad));
    gst_object_unref(pad);

    return result;
}


static GstElement *make_pipeline(void)
{
    GstElement *result;
    GstElement *audiosrc;
    GstElement *queue;
    GstElement *aconv;
    GstElement *sink;
    GstElement *encoder;

    result = gst_pipeline_new(NULL);
    g_assert(result);

    /* create various elements */
    audiosrc = gst_element_factory_make("audiotestsrc", NULL);
    g_assert(audiosrc);

    queue = gst_element_factory_make("queue", NULL);
    g_assert(queue);

    aconv = gst_element_factory_make("audioconvert", NULL);
    g_assert(aconv);


    sink = gst_element_factory_make("filesink", NULL);
    g_object_set(sink, "location", "audio.ogg", NULL);
    g_assert(sink);

    /* add elements */
    gst_bin_add(GST_BIN(result), audiosrc);
    gst_bin_add(GST_BIN(result), queue);
    gst_bin_add(GST_BIN(result), aconv);
    gst_bin_add(GST_BIN(result), sink);

    encoder = make_encoder();

    gst_bin_add(GST_BIN(result), encoder);

    /* link elements */
    gst_element_link_pads(audiosrc, "src", queue, "sink");
    gst_element_link_pads(queue, "src", aconv, "sink");
    gst_element_link_pads(aconv, "src", encoder, "sink");
    gst_element_link_pads(encoder, "src", sink, "sink");

    gst_element_set_state(result, GST_STATE_READY);

    return result;
}


Where is incorrect?

Thanks..




      ________________________________________________________ 
180도 달라진 야후! 메일 - 알아서 척척! 새로운 야후! 메일은 10분에 한번 스스로 새 메시지를 받아온답니다.
http://kr.content.mail.yahoo.com/cgland
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20081230/c38e8c8b/attachment.htm>


More information about the gstreamer-devel mailing list