<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head><body style="">
<div>
Hello,
</div>
<div>
</div>
<div>
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.
</div>
<div>
</div>
<div>
I have defined a custom media type ("video/mytypre") that is assigned to the source and sink pad.
</div>
<div>
</div>
<div>
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:
</div>
<div>
</div>
<div>
myreader [sourcepad: full caps] -> [sink pad: full caps] typefinder [source pad: ANY caps] -> [sink pad: template caps] myparser
</div>
<div>
</div>
<div>
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?
</div>
<div>
</div>
<div>
thanks,
</div>
<div>
Christian
</div>
</body></html>