After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 725415 - v4l2videodec: Check caps are subset of encode or raw when probing devices
v4l2videodec: Check caps are subset of encode or raw when probing devices
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 1.3.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-02-28 19:01 UTC by Nicolas Dufresne (ndufresne)
Modified: 2014-05-08 20:20 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Nicolas Dufresne (ndufresne) 2014-02-28 19:01:39 UTC
To probe v4l2 devices in the decoder, we enumerate the formats and intersect against a set of know Encoded, or Raw formats depending on input or output.

The problem is that some people have come up with multi-purpose encoding, decoding, color transform, scaler, transcoding magic driver that just can't be handled by VideoDecoder base class. These magic driver would better be accommodated by BaseTransform (acutally AsyncBaseTransform).

To avoid enabling these as decoders, I would suggest that instead of doing:

ret = gst_caps_intersect (filter, caps);

I would suggest to check if caps is a subset of filter, if not we'd return the empty caps (or NULL), if it is a subset, then we can return the caps. This way a driver with double function like being an encoder and a decoder would be skipped,
(e.g. input H264, YUV and output H264 YUV)
Comment 1 Nicolas Dufresne (ndufresne) 2014-05-08 20:20:19 UTC
This is fixed now.