[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