autoplugging issue: typefinder swallows source caps

Christian Sell christian at gsvitec.com
Wed May 20 00:57:06 PDT 2015


Hello,
 
I have implemented a proprietary media format which consists of data files (raw
video) with accompanying metadata files. For this purpose I have implemented one
BaseSrc-derived reader element (modeled after filesrc). I also have a
BaseParse-derved element which pulls the frames. To operate correctly, the
latter needs information from the former (framesize, duration, etc.). I am
passing this information in the source caps of the reader, which are assigned to
the sink of the parser element and analyzed there.
 
I have defined a custom media type ("video/mytypre") that is assigned to the
source and sink pad.
 
This setup works well in a scenario where I put the parser element directly
behind the reader in my pipeline - the parser receives the caps in the setcaps
function and goes from there. However, in an autoplugging scenario (using
playbin/uridecodebin), the caps are NOT passed on to the parser element, which
is consequently not able to operate correctly. I have analyzed the pipeline and
found, that there is a typefinder element in front of the parser, which has the
correct caps on its sink side, but these caps have not been passed on to my
parser element. Graphically:
 
myreader [sourcepad: full caps] -> [sink pad: full caps] typefinder [source pad:
ANY caps] -> [sink pad: template caps] myparser
 
my question: if typefinder is to act as a transparent proxy, shouldn't it pass
on caps, too? Is there a better way to handle my problem (passing metadata to
downstream elements)  that would circumvent typefinder's secretiveness?
 
thanks,
Christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150520/74672ac6/attachment.html>


More information about the gstreamer-devel mailing list