Why does my pipeline block on preroll?

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Why does my pipeline block on preroll?

wl2776
Administrator
I have the pipeline:

filesrc ! typefind ! mpegpsdemux name=demux multiqueue max-size-bytes=2097152 name=mq demux.audio_c0 ! mq.sink0 mq.src0 ! mp3parse ! flump3dec ! input-selector ! tee ! audioconvert ! audioresample ! pulsesink  demux.video_e0 ! mq.sink1 mq.src1 ! mpegvideoparse ! mpeg2dec ! input-selector ! queue max-size-buffers=3 max-size-bytes=0 max-size-time=0 ! ffmpegcolorspace ! videoscale ! xvimagesink


Here is the dot file: player.dot (30kb), and produced PNG: player.png (850kb)

Looks like there is no negotiation between multiqueue and mpegvideoparse.
Why an it be?

I tried using seek example with this pipeline ($GST_PLUGINS_BASE/test/examples/seek/seek.c)
It begins playing only after seek command.
Reply | Threaded
Open this post in threaded view
|

Re: Why does my pipeline block on preroll?

Tiago Katcipis
try to put async=false on xvimagesink or on the pulsesink. I don't remember it on details...but when you have to sinks on the same pipe one keeps waiting for the other to be ready...something like that...so you get blocked, if one of the sinks are set with async=false this will not happen ...at least with me it worked :-)

best regards,
Katcipis

On Wed, Jul 21, 2010 at 12:46 PM, wl2776 <[hidden email]> wrote:

I have the pipeline:

filesrc ! typefind ! mpegpsdemux name=demux multiqueue
max-size-bytes=2097152 name=mq demux.audio_c0 ! mq.sink0 mq.src0 ! mp3parse
! flump3dec ! input-selector ! tee ! audioconvert ! audioresample !
pulsesink  demux.video_e0 ! mq.sink1 mq.src1 ! mpegvideoparse ! mpeg2dec !
input-selector ! queue max-size-buffers=3 max-size-bytes=0 max-size-time=0 !
ffmpegcolorspace ! videoscale ! xvimagesink


Here is the dot file:
http://gstreamer-devel.966125.n4.nabble.com/file/n2297314/player.dot
player.dot  (30kb), and produced PNG:
http://gstreamer-devel.966125.n4.nabble.com/file/n2297314/player.png
player.png  (850kb)

Looks like there is no negotiation between multiqueue and mpegvideoparse.
Why an it be?

I tried using seek example with this pipeline
($GST_PLUGINS_BASE/test/examples/seek/seek.c)
It begins playing only after seek command.
--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Why-does-my-pipeline-block-on-preroll-tp2297314p2297314.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel



--
http://www.getgnulinux.org/windows

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Why does my pipeline block on preroll?

wl2776
Administrator
Tried setting async=false.
1. If on xvimagesink, then the pipeline got to playing, but I didn't see a picture, only sound.
The picture appeared again after seek event.

2. If on pulsesink, nothing changed.

I have studied the debug output from --gst-debug=seek:5,mpeg2dec:9,mpegvideoparse:9 and have found that the gst_mpegvideoparse_chain_forward function is not called, if no seek event is issued.

However, if I use playbin2 instead of that pipeline, then this function is called.
Reply | Threaded
Open this post in threaded view
|

Re: Why does my pipeline block on preroll?

Nathanael D. Noblet
In reply to this post by wl2776
On 07/21/2010 09:46 AM, wl2776 wrote:

>
> I have the pipeline:
>
> filesrc ! typefind ! mpegpsdemux name=demux multiqueue
> max-size-bytes=2097152 name=mq demux.audio_c0 ! mq.sink0 mq.src0 ! mp3parse
> ! flump3dec ! input-selector ! tee ! audioconvert ! audioresample !
> pulsesink  demux.video_e0 ! mq.sink1 mq.src1 ! mpegvideoparse ! mpeg2dec !
> input-selector ! queue max-size-buffers=3 max-size-bytes=0 max-size-time=0 !
> ffmpegcolorspace ! videoscale ! xvimagesink
>
>
> Here is the dot file:
> http://gstreamer-devel.966125.n4.nabble.com/file/n2297314/player.dot
> player.dot  (30kb), and produced PNG:
> http://gstreamer-devel.966125.n4.nabble.com/file/n2297314/player.png
> player.png  (850kb)
>
> Looks like there is no negotiation between multiqueue and mpegvideoparse.
> Why an it be?
>
> I tried using seek example with this pipeline
> ($GST_PLUGINS_BASE/test/examples/seek/seek.c)
> It begins playing only after seek command.


I am by no means an expert as I just started playing with gstreamer as a
developer last week, however yesterday I read this:


http://www.gstreamer.net/wiki/FAQ#MypipelinewithmultiplesinksneverreachesthePAUSEDstate.2CwhatamIdoingwrong.3F

Maybe the same/related issue?

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Why does my pipeline block on preroll?

wl2776
Administrator
My pipeline has queues after the demuxer.
Added one more after the tee - doesn't help.
Reply | Threaded
Open this post in threaded view
|

Re: Why does my pipeline block on preroll?

Nathanael D. Noblet
On 07/22/2010 09:31 AM, wl2776 wrote:
>
> My pipeline has queues after the demuxer.
> Added one more after the tee - doesn't help.

Yeah, sorry, like I said, just started using it last week.

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Why does my pipeline block on preroll?

Stefan Sauer
In reply to this post by wl2776
On 21.07.2010 18:46, wl2776 wrote:
> I have the pipeline:
>
> filesrc ! typefind ! mpegpsdemux name=demux multiqueue
> max-size-bytes=2097152 name=mq demux.audio_c0 ! mq.sink0 mq.src0 ! mp3parse
> ! flump3dec ! input-selector ! tee ! audioconvert ! audioresample !
> pulsesink  demux.video_e0 ! mq.sink1 mq.src1 ! mpegvideoparse ! mpeg2dec !
> input-selector ! queue max-size-buffers=3 max-size-bytes=0 max-size-time=0 !
> ffmpegcolorspace ! videoscale ! xvimagesink
>  

Try to reduce the pipeline one by one. E.g. remove input-selector, or
remove the "queue max-size-buffers=3 max-size-bytes=0 max-size-time=0".
Try a value >3 here.

Stefan

>
> Here is the dot file:
> http://gstreamer-devel.966125.n4.nabble.com/file/n2297314/player.dot
> player.dot  (30kb), and produced PNG:
> http://gstreamer-devel.966125.n4.nabble.com/file/n2297314/player.png
> player.png  (850kb)
>
> Looks like there is no negotiation between multiqueue and mpegvideoparse.
> Why an it be?
>
> I tried using seek example with this pipeline
> ($GST_PLUGINS_BASE/test/examples/seek/seek.c)
> It begins playing only after seek command.
>  


------------------------------------------------------------------------------
This SF.net email is sponsored by

Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://p.sf.net/sfu/RIM-dev2dev 
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Why does my pipeline block on preroll?

wl2776
Administrator
Stefan Kost wrote
Try to reduce the pipeline one by one. E.g. remove input-selector, or
remove the "queue max-size-buffers=3 max-size-bytes=0 max-size-time=0".
Try a value >3 here.
The goal I was trying to achieve was to mimic playbin2's behavior, to find the source of its errors.
I've copied these values from it.