Do I need to do something special to "play" a pipeline with multiple filesrc's elements? I have a filesrc that loads an AVI file and another one that loads an SRT file (external subtitle). Let's say I decode the AVI file, plug a textoverlay before the videosink and then decode and plug the SRT file into the textoverlay. Should this be enough for the pipeline to start playing or do I need something that syncs the 2(or more) sources?
Note: I insert the appropriate 'queue' elements after the 'avidemux' element and after the 'subparse' element. ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
2010/9/26 sledge hammer <[hidden email]>
Seems like it should work. What's your exact pipeline? Can you post a launch line of it?
-- Thiago Sousa Santos ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
I was building an example program that did the bare minimum to test the situation and to post it here if it showed the same behavior as my other code.
My other code is part of a much larger project(a media player) which is yet to be released and it would be confusing for someone else to go through it in a few moments. Well, I was creating a **really** basic avi player to demonstrate my problem but for some reason I keep getting "Error: Internal data stream error.". I think I do everything right but I can't find the problem. Please take a look yourself. The code is here-> http://pastebin.com/YZs5garS After your answer, I thought that probably me and my code is at fault. I probably do something wrong somewhere. I thought that I forgot some element in the pipeline but no. I dumped the list of the elements in the pipeline and it looks right. Do you have any suggestions/directions for debugging? What should I look for? What could cause a stall like this? Notes: 1. Build it as c++ source(I use std::strings) 2. Update the 'avipath' global var to point to an AVI file with Xvid/Divx video and mp3 audio. 3. I didn't implement the loading of external subs yet, since I can't get it to load an avi file. 4. I didn't give much emphasis on memory management intentionally. To make it simpler. From: [hidden email] Date: Mon, 27 Sep 2010 11:17:33 -0300 To: [hidden email] Subject: Re: [gst-devel] Pipeline with multiple filesources is stalled. 2010/9/26 sledge hammer <[hidden email]>
Seems like it should work. What's your exact pipeline? Can you post a launch line of it?
-- Thiago Sousa Santos ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
2010/9/28 sledge hammer <[hidden email]>
When receiving the error on the bus callback, print the debug part of the error too, it is likely that it will help. Also try running the application with GST_DEBUG=2 (at a minimum), to have a little more information about the problem. If that doesn't solve, a full log (GST_DEBUG=5) will lead you to the cause. Search for the error and go up on the log until you find the reason for it to happen.
-- Thiago Sousa Santos ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by sledge hammer
Hi
One problem I found in the pad-added callback is: /*plug a queue in the pad and decided what to do according to the mimetype*/ queue = gst_element_factory_make("queue", NULL); sinkpad = gst_element_get_static_pad(queue, "sink"); gst_pad_link(pad, sinkpad); gst_object_unref(sinkpad); queue element has to be part of the bin for you to do a gst_pad_link. Here gst_pad_link will fail. /*plug a queue in the pad and decided what to do according to the mimetype*/ queue = gst_element_factory_make("queue", NULL); gst_bin_add(GST_BIN(pipeline), queue); sinkpad = gst_element_get_static_pad(queue, "sink"); gst_pad_link(pad, sinkpad); gst_object_unref(sinkpad); Next time better check all the return values. Regards, Sandeep Prakash http://sandeepprakash.homeip.net |
@Sandeep Prakash
Yes, that was the problem. And it was pretty stupid too. @thiago You were right, it works fine in my example code. So I definetely do something wrong in my code. I will have a closer look into it. For anyone else whose interested here is a link to example code that plays a DivX/XviD-mp3 AVI file with external SRT subs(compile as C++ source)-->http://pastebin.com/vTJh7FcM > Date: Tue, 28 Sep 2010 21:49:53 -0700 > From: [hidden email] > To: [hidden email] > Subject: Re: [gst-devel] Pipeline with multiple filesources is stalled. > > > Hi > > One problem I found in the pad-added callback is: > > /*plug a queue in the pad and decided what to do according to the mimetype*/ > queue = gst_element_factory_make("queue", NULL); > sinkpad = gst_element_get_static_pad(queue, "sink"); > gst_pad_link(pad, sinkpad); > gst_object_unref(sinkpad); > > queue element has to be part of the bin for you to do a gst_pad_link. Here > gst_pad_link will > fail. > > /*plug a queue in the pad and decided what to do according to the mimetype*/ > queue = gst_element_factory_make("queue", NULL); > gst_bin_add(GST_BIN(pipeline), queue); > sinkpad = gst_element_get_static_pad(queue, "sink"); > gst_pad_link(pad, sinkpad); > gst_object_unref(sinkpad); > > Next time better check all the return values. > > Regards, > Sandeep Prakash > http://sandeepprakash.homeip.net > -- > View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Pipeline-with-multiple-filesources-is-stalled-tp2714279p2718318.html > Sent from the GStreamer-devel mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > Start uncovering the many advantages of virtual appliances > and start using them to simplify application deployment and > accelerate your shift to cloud computing. > http://p.sf.net/sfu/novell-sfdev2dev > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
I actually made the code reproduce my problem. I don't add the textoverlay at the decoding of the video stream. I add it later on the decoding of the sub file and shove it between the ffmpegcolorspace and xvimagesink. I suppose this forceful unlinking has something to do with it. New code-> http://pastebin.com/ZPmj810S
What should I do? (I don't want to put unnecessary textoverlays if there's no subtitle file). From: [hidden email] To: [hidden email] Date: Wed, 29 Sep 2010 16:06:24 +0300 Subject: Re: [gst-devel] Pipeline with multiple filesources is stalled. @Sandeep Prakash Yes, that was the problem. And it was pretty stupid too. @thiago You were right, it works fine in my example code. So I definetely do something wrong in my code. I will have a closer look into it. For anyone else whose interested here is a link to example code that plays a DivX/XviD-mp3 AVI file with external SRT subs(compile as C++ source)-->http://pastebin.com/vTJh7FcM > Date: Tue, 28 Sep 2010 21:49:53 -0700 > From: [hidden email] > To: [hidden email] > Subject: Re: [gst-devel] Pipeline with multiple filesources is stalled. > > > Hi > > One problem I found in the pad-added callback is: > > /*plug a queue in the pad and decided what to do according to the mimetype*/ > queue = gst_element_factory_make("queue", NULL); > sinkpad = gst_element_get_static_pad(queue, "sink"); > gst_pad_link(pad, sinkpad); > gst_object_unref(sinkpad); > > queue element has to be part of the bin for you to do a gst_pad_link. Here > gst_pad_link will > fail. > > /*plug a queue in the pad and decided what to do according to the mimetype*/ > queue = gst_element_factory_make("queue", NULL); > gst_bin_add(GST_BIN(pipeline), queue); > sinkpad = gst_element_get_static_pad(queue, "sink"); > gst_pad_link(pad, sinkpad); > gst_object_unref(sinkpad); > > Next time better check all the return values. > > Regards, > Sandeep Prakash > http://sandeepprakash.homeip.net > -- > View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Pipeline-with-multiple-filesources-is-stalled-tp2714279p2718318.html > Sent from the GStreamer-devel mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > Start uncovering the many advantages of virtual appliances > and start using them to simplify application deployment and > accelerate your shift to cloud computing. > http://p.sf.net/sfu/novell-sfdev2dev > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |