pipeline doesn't work

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

pipeline doesn't work

Jones
Hi,
I'm quite new to geastreamer and i have problem with build working pipeline. After launch that pipe i doesn't get any errors, just window is open and it's freezing.

Thanks for any suggestions.

pipeline = gst_pipeline_new("pipeline");
        src = gst_element_factory_make ("filesrc", "mysrc");
        g_object_set(src, "location", "D:\\file.avi", NULL);

    queue= gst_element_factory_make("queue", "vqueue");
        queue2 = gst_element_factory_make("queue", "queue1");
    flt = gst_element_factory_make("capsfilter", "vfilter");
    conv = gst_element_factory_make("ffmpegcolorspace", "vconv");
    scale= gst_element_factory_make("videoscale", "vscale");
    vsink= gst_element_factory_make("dshowvideosink", "vsink");
        decoder = gst_element_factory_make("ffdec_msmpeg4v2", "decoder");
        mp3parse = gst_element_factory_make("mp3parse", "parser");
        ffdec_mp3 = gst_element_factory_make("ffdec_mp3", "decodermp3");
        wavenc = gst_element_factory_make("wavenc", "wavenc");
        wavparse = gst_element_factory_make("wavparse", "wavparse");
        audioconvert = gst_element_factory_make("audioconvert", "audioconvert");
        audioresample = gst_element_factory_make("ffaudioresample", "audioresample");
        autoaudiosink = gst_element_factory_make("autoaudiosink", "autoaudiosink");
        scaletempo = gst_element_factory_make("scaletempo", "scaletempo");
        typefind = gst_element_factory_make("typefind", "typefind");
        tee1 = gst_element_factory_make("tee", "tee1");
        tee2 = gst_element_factory_make("tee", "tee2");

        bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
        gst_bus_add_watch (bus, bus_call, loop);
        gst_object_unref (bus);

        decodebin  = gst_element_factory_make("avidemux", "demux");

   gst_bin_add_many(GST_BIN(pipeline), src, decodebin, queue, decoder, scale, conv,
           flt, tee1, vsink, queue2, typefind, mp3parse, ffdec_mp3, wavenc, wavparse, audioconvert, audioresample, scaletempo, autoaudiosink, NULL);

   gst_element_link(src, decodebin);
   gst_element_link_many(queue, decoder, scale, conv,
           flt, tee1, vsink, queue2, typefind, mp3parse, ffdec_mp3, wavenc, wavparse, audioconvert, audioresample, scaletempo, autoaudiosink, NULL);

   g_signal_connect(decodebin, "pad-added", G_CALLBACK(new_decoded_pad_cb), NULL);
        g_signal_connect (typefind, "pad-added", G_CALLBACK (on_decpad_added), typefind);

   gst_element_set_state(pipeline, GST_STATE_PLAYING);
   g_timeout_add (200, (GSourceFunc) cb_print_position, pipeline);

g_main_loop_run(loop);
gst_element_set_state(GST_ELEMENT(pipeline), GST_STATE_NULL);
g_main_loop_unref(loop);