Video converter with several variants of caps on srcpad

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

Video converter with several variants of caps on srcpad

Слободенюк Александр Игоревич
Greetings!

I have an element, that is inherited from BaseTransform class.
 
It's sinkpad's template supports "x-mycaps" caps.
It's sourcepad's template supports "x-mycaps" (first) and "x-raw" caps.
 
The problem is that if I use it in decodebin2 , with xvimagesink on output:
 
filesrc location=~/file.mp4 ! qtdemux ! decodebin ! xvimagesink
 
When Decodebin2 is analyzing the pad in analyze_new_pad function, it checks if
myplugin's srcpad's caps are a subset of "final decodebin2 caps" (which is "video/x-raw", "audio/x-raw", etc).
 
So, because srcpad's caps contain "x-mycaps", it's not a subset of "raw caps collection". Decodebin2 decides that the autoplugging process is not finished, and trying to plug it again, and again in infinite autoplugging process.
 
---
Maybe you have any comment or advice for me?
Is it really impossible for Converter element to have not only the "raw caps" on srcpad?
---
Maybe you know some converter that supports several kinds of caps on srcpad?
 
Thanks for attention!
-- 
With respect,
Aleksandr Slobodeniuk
tel: +34 661 674 116
 
 
 

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

Re: Video converter with several variants of caps on srcpad

Слободенюк Александр Игоревич
Also:
 
totem player, that uses playbin with cluttervideosink works fine with it.
 
The difference I can see is that gst_base_transform_find_transform can sucessfully query caps from the peer of srcpad, and intersect them after it (which is a solution for such elements as my converter). But in case of manual decodebin pipeline (repeating:
 
filesrc location=~/file.mp4 ! qtdemux ! decodebin ! xvimagesink
 
) , srcpad has no peer at this moment.
 
 
-- 
Atentamente,
Aleksandr Slobodeniuk
tel: +34 661 674 116
 
 
 
 
 
08.03.2018, 18:32, "Aleksandr Slobodeniuk" <[hidden email]>:
Greetings!

I have an element, that is inherited from BaseTransform class.
 
It's sinkpad's template supports "x-mycaps" caps.
It's sourcepad's template supports "x-mycaps" (first) and "x-raw" caps.
 
The problem is that if I use it in decodebin2 , with xvimagesink on output:
 
filesrc location=~/file.mp4 ! qtdemux ! decodebin ! xvimagesink
 
When Decodebin2 is analyzing the pad in analyze_new_pad function, it checks if
myplugin's srcpad's caps are a subset of "final decodebin2 caps" (which is "video/x-raw", "audio/x-raw", etc).
 
So, because srcpad's caps contain "x-mycaps", it's not a subset of "raw caps collection". Decodebin2 decides that the autoplugging process is not finished, and trying to plug it again, and again in infinite autoplugging process.
 
---
Maybe you have any comment or advice for me?
Is it really impossible for Converter element to have not only the "raw caps" on srcpad?
---
Maybe you know some converter that supports several kinds of caps on srcpad?
 
Thanks for attention!
-- 
With respect,
Aleksandr Slobodeniuk
tel: +34 661 674 116
 
 
 
,

_______________________________________________
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
Reply | Threaded
Open this post in threaded view
|

Re: Video converter with several variants of caps on srcpad

Nicolas Dufresne-5
Le jeudi 08 mars 2018 à 19:10 +0300, Aleksandr Slobodeniuk a écrit :

> totem player, that uses playbin with cluttervideosink works fine with
> it.
>  
> The difference I can see is that gst_base_transform_find_transform
> can sucessfully query caps from the peer of srcpad, and intersect
> them after it (which is a solution for such elements as my
> converter). But in case of manual decodebin pipeline (repeating:
>  
> filesrc location=~/file.mp4 ! qtdemux ! decodebin ! xvimagesink
>  
> ) , srcpad has no peer at this moment.
playbin will forward some of the signal to playsink, while
parse_launch() have no idea what decodebin signals are about.

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

signature.asc (201 bytes) Download Attachment