Q on tee: keep working one branch, even has a error on other branch

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

Q on tee: keep working one branch, even has a error on other branch

Makoto Harada
Dear Expert,

I'm now debugging the certain error of a gstreamer plugin.

In order to make sure that input stream has no problem,
I modified the original pipeline using tee as shown below so that input stream is saved to the local file
while original pipeline is executed.

- original pipeline
hogesrc ! hoge_dec ! hoge_sink

- pipeline with tee
hogesrc ! tee name = t  \
t. ! queue ! hoge_dec ! hoge_sink \            
t. ! queue ! filesrc location=/tmp/dump.ts

This works fine.
However, when an error happen at a plugin (for example at hoge_dec) ,
whole pipeline stopped, therefore dump.ts can will not be saved.

Is there any way to make one thread of "tee" keep working, even though other thread has a error ?
Or is there any idea to keep dumping the input stream on such a situation ?

Any comments are highly appreciated.

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

Re: Q on tee: keep working one branch, even has a error on other branch

Nicolas Dufresne-5
Le mercredi 08 mars 2017 à 15:54 +0900, Makoto Harada a écrit :

> Dear Expert,
>
> I'm now debugging the certain error of a gstreamer plugin.
>
> In order to make sure that input stream has no problem,
> I modified the original pipeline using tee as shown below so that
> input stream is saved to the local file
> while original pipeline is executed.
>
> - original pipeline
> hogesrc ! hoge_dec ! hoge_sink
>
> - pipeline with tee
> hogesrc ! tee name = t  \
> t. ! queue ! hoge_dec ! hoge_sink \             
> t. ! queue ! filesrc location=/tmp/dump.ts
>
> This works fine.
> However, when an error happen at a plugin (for example at hoge_dec) ,
> whole pipeline stopped, therefore dump.ts can will not be saved.
Use "ignoreerror" element for that. You will still get an error message
on the bus, which you need to ignore, but the flow won't be affected.
The default for ignoreerror is to convert errors to no-linked, which
will tell the tee to ignore this branch from now-on. Exactly what you
need here.

>
> Is there any way to make one thread of "tee" keep working, even
> though other thread has a error ?
> Or is there any idea to keep dumping the input stream on such a
> situation ?

Tee is not threaded. It will ignore "not-linked" pads though.

>
> Any comments are highly appreciated.
>
> Kind Regards,
> Makoto
> _______________________________________________
> 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

signature.asc (188 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Q on tee: keep working one branch, even has a error on other branch

Makoto Harada
Thanks, Nicolas
> Use "ignoreerror" element for that.
I did not know this element. Thanks.

Makoto

On 2017/03/09 10:53, Nicolas Dufresne wrote:

> Le mercredi 08 mars 2017 à 15:54 +0900, Makoto Harada a écrit :
>> Dear Expert,
>>
>> I'm now debugging the certain error of a gstreamer plugin.
>>
>> In order to make sure that input stream has no problem,
>> I modified the original pipeline using tee as shown below so that
>> input stream is saved to the local file
>> while original pipeline is executed.
>>
>> - original pipeline
>> hogesrc ! hoge_dec ! hoge_sink
>>
>> - pipeline with tee
>> hogesrc ! tee name = t  \
>> t. ! queue ! hoge_dec ! hoge_sink \            
>> t. ! queue ! filesrc location=/tmp/dump.ts
>>
>> This works fine.
>> However, when an error happen at a plugin (for example at hoge_dec) ,
>> whole pipeline stopped, therefore dump.ts can will not be saved.
> Use "ignoreerror" element for that. You will still get an error message
> on the bus, which you need to ignore, but the flow won't be affected.
> The default for ignoreerror is to convert errors to no-linked, which
> will tell the tee to ignore this branch from now-on. Exactly what you
> need here.
>
>> Is there any way to make one thread of "tee" keep working, even
>> though other thread has a error ?
>> Or is there any idea to keep dumping the input stream on such a
>> situation ?
> Tee is not threaded. It will ignore "not-linked" pads though.
>
>> Any comments are highly appreciated.
>>
>> Kind Regards,
>> Makoto
>> _______________________________________________
>> 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