Porting dshowvideosrc to 1.0

Jérôme Laheurte jerome-bugzilla at jeromelaheurte.net
Wed Sep 3 02:43:15 PDT 2014


Le 2 sept. 2014 à 15:57, Jérôme Laheurte <jerome-bugzilla at jeromelaheurte.net> a écrit :
> 
> 2. (video) I thought that set_caps() was discontinued in favor of a GST_EVENT_CAPS event on the source pad. But in practice the event is never fired, though set_caps is still invoked (if I override it of course). Quid ? The event function is set in the instance’s init(), using gst_pad_set_event_function(GST_BASE_SRC_PAD(src), xxx).
> 
> 3. (video) I removed get_caps() and implemented a query function. GST_QUERY_CAPS is fired, I list the supported caps using the old get_caps method and intersects them with the filter returned by gst_query_parse_caps. gst_base_src_default_negotiate logs a « fixated » set of caps which actually include pretty much every supported cap and the negotiation fails. If I explicitly set the caps (using « gst-launch-1.0 dshowvideosrc ! « video/x-raw, format=I420, width=640, height=480, framerate=30/1! videoconvert ! autovideosink » instead of « gst-launch-1.0 dshowvideosrc !  videoconvert ! autovideosink ») it works. Am I supposed to return only one cap from this query or what ?

Scratch those two, I missed a line in the doc.



More information about the gstreamer-devel mailing list