List Info

Thread: Fwd: Re: Internal data flow error




Fwd: Re: Internal data flow error
country flaguser name
Finland
2007-03-29 04:12:12
I've solved the internal data flow error, it was a stupid mistake : simply miss an element into the "gst_element_link_many"; function.
But now I've a nother problem.
I'm writing a gst application in which I'm trying to decode mpeg4 packet received from a net source, I've already done the methods to connect to the mpe4 source and get the compressed data, now I'm only find a way to decode this stream with gst.
 I9;ve the function to obtain a mpeg4 packet and I would use it into the fakesrc callback.
Here some snippet of code, note that the callback actually do nothing;

............................

pipeline = gst_pipeline_new ("pipeline");
    fakesrc = gst_element_factory_make ("fakesrc", "source");
    decoder = gst_element_factory_make ("ffdec_mpeg4","mpeg4-decoder"
);/*(";theoradec", "theora-decoder");*/
    videoscale = gst_element_factory_make ("videoscale", "scaling-video");
    par = gst_element_factory_make ("capsfilter", "dimens");

    g_object_set (G_OBJECT(par), "caps",
      gst_caps_new_simple( "video/x-raw-yuv",
        "width", G_TYPE_INT, 720,
        "height", G_TYPE_INT, 576,NULL),
      NULL );

   ; conv = gst_element_factory_make ("ffmpegcolorspace", "converter");
    videosink = gst_element_factory_make ("directdrawsink", "directdraw";);
 ;   if (!pipeline || !fakesrc || !decoder || !videoscale || !par || !conv || !videosink) {
        g_print ("One element could not be createdn");
        return -1;
   ; }

    /* put all elements in a bin */
 ;   gst_bin_add_many (GST_BIN (pipeline),
            fakesrc, decoder,videoscale ,par, conv, videosink, NULL);

    /* link together */
    gst_element_link_many (fakesrc,decoder,videoscale, par, conv, videosink, NULL);

//this's for information message about errors
    bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
    gst_bus_add_watch (bus, bus_call, loop);
    gst_object_unref (bus);

    g_object_set (G_OBJECT (fakesrc),
        "signal-handoffs", TRUE,
        "sizemax", 720 * 288 * 2,
        "sizetype", 2, NULL);

//cb_handoff is my callback
    g_signal_connect (fakesrc, "handoff", G_CALLBACK (cb_handoff), pParam);

............................

When I execute this code gst return this message "Internal GStreamer Error: negotiation problem".


2007/3/19, Stefan Kost < ensonichora-obscura.de" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">ensonichora-obscura.de >;:
Hi Riccardo,

you need to start you app using
GST_DEBUG="*:3&quot; ./app

then it look for lines with WARN. A bit above should be the cause. If it does
not show anything you can raise the log level ("*:4", it goes up to 5). The
reason can be anything from missing conversion elements, to real bugs. It would
help if you can tell what you are doing.

Stefan

Riccardo Corona wrote:
>; Hi,
> someone knows the most common sources for the error "Internal data flow
> error";?
>
>; --
> Riccardo Corona
>;
>
> ------------------------------------------------------------------------
>;
> -------------------------------------------------------------------------
&gt; Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys-and earn cash
> http://www.techsay.com/default.php?page=join.php&amp;p=sourceforge&CID=DEVDEV
>
>
&gt; ------------------------------------------------------------------------
>;
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devellists.sourceforge.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">gstreamer-devellists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel




--
Riccardo Corona
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )