playing and parsing mpeg2ts file

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

playing and parsing mpeg2ts file

Duchassin Frederic

Hello,

If i want to parse a stream while playing.

this pipeline should do this :

                                             / videoqueue | kmssink /  [ decodebin           (playing_branch) \ audioqueue | alsasink filesrc | queue | typefind | tee                                              \  [ queue | tsparse | filesink ]                  (parsing_branch)

My problem is that my pipeline doesn't want to start like if a queue reach his limit.

If i remove the parsing branch, all is playing correctly.

So i try to debug reading the queue size/level :

m_pVideoqueue maxbuffers= 200 maxbytes= 10485760 maxtime= 1000000000 ns

m_pVideoqueue currentbuffers= 0 currentbytes= 0 currenttime= 0 ns

m_pAudioqueue maxbuffers= 200 maxbytes= 10485760 maxtime= 1000000000 ns

m_pAudioqueue currentbuffers= 0 currentbytes= 0 currenttime= 0 ns

m_pQueueTsParse maxbuffers= 2000 maxbytes= 100000000 maxtime= 0 ns

m_pQueueTsParse currentbuffers= 201 currentbytes= 823296 currenttime= 0 ns

But i don't know how to analyze correctly the problem even with the level/size ! Is someone could explain me the problem ?

Attached you can find the dot file with all the pipeline.

Thanks in advance for your help

Frédéric


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

debugqueue.dot (25K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: playing and parsing mpeg2ts file

Tim Müller
On Fri, 2019-03-29 at 11:00 +0100, Duchassin Frederic wrote:

Hi Frederic,

Not entirely sure what's going on here. You dot file and mail says that
the queue in front of the tsparse has 201 buffers and max-size-
buffers=2000 (two thousand).

The dot file also doesn't show links from decodebin to your audio/video
sink branches. Unclear if that's because of the timing of the dot file
snapshot or because that's your problem (then the audio/video sinks
never get any data and the pipeline won't preroll). If the decodebin
was unliked I would suspect the tsparse queue to be fuller though.

It's a bit suspicious that the queue in front of the tsparse is at 201
buffers, which is just above the default max-size-buffers limit of 200.
Did you increase the max-size-buffers limit after pipeline startup?

So my best guess is that the queue in front of the tsparse runs full,
and then blocks the filesrc ! tee upstream, and then decodebin etc.
don't get more data and can't finish their preroll and the pipeline is
stuck.

GST_DEBUG=queue:6 might help confirm whether this is the case or not.

Cheers
 Tim

--
Tim Müller, Centricular Ltd - http://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: playing and parsing mpeg2ts file

Duchassin Frederic
Hi Tim,


I played with the size of the queue in front of tsparse but not during
playing.

In all case, My dot file is created later after the pipeline was playing.

You're right : my main problem is that decodebin is not completely
linked (no audiodecoder beepdec linked) and i don't know why.

My though were like you : that's why I increase the tsparsequeue but
without any success : no video+audio.


Just one test I have make  : attached the same pipeline but i change the
order of the link : i begin by linking decodebin branch ,.... and it
works... i really understand nothing !!!!


BR

Frédéric

Le 29/03/2019 à 11:35, Tim Müller a écrit :

> On Fri, 2019-03-29 at 11:00 +0100, Duchassin Frederic wrote:
>
> Hi Frederic,
>
> Not entirely sure what's going on here. You dot file and mail says that
> the queue in front of the tsparse has 201 buffers and max-size-
> buffers=2000 (two thousand).
>
> The dot file also doesn't show links from decodebin to your audio/video
> sink branches. Unclear if that's because of the timing of the dot file
> snapshot or because that's your problem (then the audio/video sinks
> never get any data and the pipeline won't preroll). If the decodebin
> was unliked I would suspect the tsparse queue to be fuller though.
>
> It's a bit suspicious that the queue in front of the tsparse is at 201
> buffers, which is just above the default max-size-buffers limit of 200.
> Did you increase the max-size-buffers limit after pipeline startup?
>
> So my best guess is that the queue in front of the tsparse runs full,
> and then blocks the filesrc ! tee upstream, and then decodebin etc.
> don't get more data and can't finish their preroll and the pipeline is
> stuck.
>
> GST_DEBUG=queue:6 might help confirm whether this is the case or not.
>
> Cheers
>   Tim
>

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

debugqueue2.dot (28K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: playing and parsing mpeg2ts file

Duchassin Frederic
: 	Sorry Tim,

I was too fast for may answer. Next time, i'll be carefull to answer to the list.
Even with max-size-bytes=0 max-size-buffers=0 max-size-time=0 for tsparsequeue it doesn't work.
Attached the dot file.

BR
Frédéric



On Fri, 2019-03-29 at 12:00 +0100, Duchassin Frederic wrote:

Hi,

Please reply to the list next time 

What I forgot to write was: you can just unset all the limits on the
queue in front of tsparse, that should be fine (so max-size-bytes=0
max-size-buffers=0 max-size-time=0).

Cheers
 Tim
Le 29/03/2019 à 12:11, Duchassin Frederic a écrit :
Hi Tim,


I played with the size of the queue in front of tsparse but not during playing.

In all case, My dot file is created later after the pipeline was playing.

You're right : my main problem is that decodebin is not completely linked (no audiodecoder beepdec linked) and i don't know why.

My though were like you : that's why I increase the tsparsequeue but without any success : no video+audio.


Just one test I have make  : attached the same pipeline but i change the order of the link : i begin by linking decodebin branch ,.... and it works... i really understand nothing !!!!


BR

Frédéric

Le 29/03/2019 à 11:35, Tim Müller a écrit :
On Fri, 2019-03-29 at 11:00 +0100, Duchassin Frederic wrote:

Hi Frederic,

Not entirely sure what's going on here. You dot file and mail says that
the queue in front of the tsparse has 201 buffers and max-size-
buffers=2000 (two thousand).

The dot file also doesn't show links from decodebin to your audio/video
sink branches. Unclear if that's because of the timing of the dot file
snapshot or because that's your problem (then the audio/video sinks
never get any data and the pipeline won't preroll). If the decodebin
was unliked I would suspect the tsparse queue to be fuller though.

It's a bit suspicious that the queue in front of the tsparse is at 201
buffers, which is just above the default max-size-buffers limit of 200.
Did you increase the max-size-buffers limit after pipeline startup?

So my best guess is that the queue in front of the tsparse runs full,
and then blocks the filesrc ! tee upstream, and then decodebin etc.
don't get more data and can't finish their preroll and the pipeline is
stuck.

GST_DEBUG=queue:6 might help confirm whether this is the case or not.

Cheers
  Tim


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

debugqueue3.dot (25K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: playing and parsing mpeg2ts file

Duchassin Frederic

Hello All,

Just one step i have done today : I have the problem with gstreamer 1.14.0 whereas it was working correctly with version 1.12.2.

I don't really know how i can get in tsparse branch :

GstQueueTsParse

parent=(GstPipeline) Gstreamer player

current-level-buffers=201

current-level-bytes=823296

max-size-buffers=0

max-size-bytes=

max-size-time=0";

How i can get a current-level > max-level ???? This is the problem which lead to a blocking state.

BR

Frédéric





Le 29/03/2019 à 12:21, Duchassin Frederic a écrit :
: 	Sorry Tim,

I was too fast for may answer. Next time, i'll be carefull to answer to the list.
Even with max-size-bytes=0 max-size-buffers=0 max-size-time=0 for tsparsequeue it doesn't work.
Attached the dot file.

BR
Frédéric



On Fri, 2019-03-29 at 12:00 +0100, Duchassin Frederic wrote:

Hi,

Please reply to the list next time 

What I forgot to write was: you can just unset all the limits on the
queue in front of tsparse, that should be fine (so max-size-bytes=0
max-size-buffers=0 max-size-time=0).

Cheers
 Tim
Le 29/03/2019 à 12:11, Duchassin Frederic a écrit :
Hi Tim,


I played with the size of the queue in front of tsparse but not during playing.

In all case, My dot file is created later after the pipeline was playing.

You're right : my main problem is that decodebin is not completely linked (no audiodecoder beepdec linked) and i don't know why.

My though were like you : that's why I increase the tsparsequeue but without any success : no video+audio.


Just one test I have make  : attached the same pipeline but i change the order of the link : i begin by linking decodebin branch ,.... and it works... i really understand nothing !!!!


BR

Frédéric

Le 29/03/2019 à 11:35, Tim Müller a écrit :
On Fri, 2019-03-29 at 11:00 +0100, Duchassin Frederic wrote:

Hi Frederic,

Not entirely sure what's going on here. You dot file and mail says that
the queue in front of the tsparse has 201 buffers and max-size-
buffers=2000 (two thousand).

The dot file also doesn't show links from decodebin to your audio/video
sink branches. Unclear if that's because of the timing of the dot file
snapshot or because that's your problem (then the audio/video sinks
never get any data and the pipeline won't preroll). If the decodebin
was unliked I would suspect the tsparse queue to be fuller though.

It's a bit suspicious that the queue in front of the tsparse is at 201
buffers, which is just above the default max-size-buffers limit of 200.
Did you increase the max-size-buffers limit after pipeline startup?

So my best guess is that the queue in front of the tsparse runs full,
and then blocks the filesrc ! tee upstream, and then decodebin etc.
don't get more data and can't finish their preroll and the pipeline is
stuck.

GST_DEBUG=queue:6 might help confirm whether this is the case or not.

Cheers
  Tim


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel