[gst-devel] Fwd: Re: Internal data flow error

Stefan Kost ensonic at hora-obscura.de
Thu Mar 29 11:12:12 CEST 2007


Riccardo,

please write to the list :)

Stefan

----- Weitergeleitete Nachricht von coronariccardo at gmail.com -----
      Datum: Tue, 27 Mar 2007 12:13:33 +0200
        Von: Riccardo Corona <coronariccardo at gmail.com>
Antwort an: Riccardo Corona <coronariccardo at gmail.com>
    Betreff: Re: [gst-devel] Internal data flow error
         An: Stefan Kost <ensonic at hora-obscura.de>

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.
  I'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 created\n");
         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 <ensonic at hora-obscura.de >:
>
> Hi Riccardo,
>
> you need to start you app using
> GST_DEBUG="*:3" ./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
> >
> >
> > ------------------------------------------------------------------------
> >
> >
> -------------------------------------------------------------------------
> > 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&p=sourceforge&CID=DEVDEV
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>


-- 
Riccardo Corona


----- Ende der weitergeleiteten Nachricht -----

-------------- next part --------------
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.
 I'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 created\n");
        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 <ensonic at hora-obscura.de >:
>
> Hi Riccardo,
>
> you need to start you app using
> GST_DEBUG="*:3" ./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
> >
> >
> > ------------------------------------------------------------------------
> >
> >
> -------------------------------------------------------------------------
> > 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&p=sourceforge&CID=DEVDEV
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
>


-- 
Riccardo Corona
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20070329/7653ccc9/attachment.htm>


More information about the gstreamer-devel mailing list