<!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>