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 765428 - dshowsrcwrapper: Work around bugs in IDS Imaging camera drivers
dshowsrcwrapper: Work around bugs in IDS Imaging camera drivers
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Windows
: Normal enhancement
: 1.9.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-04-22 13:08 UTC by Jérôme Laheurte
Modified: 2016-04-23 14:23 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch (2.54 KB, patch)
2016-04-22 13:08 UTC, Jérôme Laheurte
committed Details | Review

Description Jérôme Laheurte 2016-04-22 13:08:38 UTC
Created attachment 326550 [details] [review]
Patch

I spent a significant time analysing the behavior the the DirectShow driver for an IDS camera (https://en.ids-imaging.com/). Those are the necessary workarounds to make it work: only compare "significant" fields when comparing media types during pin connection, and explicitely set the capture pin's format before trying to connect it.
Comment 1 Tim-Philipp Müller 2016-04-23 14:23:25 UTC
commit c7e0e8d6ab59fc410a7e9dcdfdacfbc26f6949d7
Author: Jerome Laheurte <jlaheurte@quividi.com>
Date:   Fri Apr 22 14:51:31 2016 +0200

    dshowsrcwrapper: fix DirectShow caps negotiation and set capture pin caps
    
    Some cameras (IDS) have broken DirectShow drivers which incorrectly fill some
    fields in the VIDEOINFOHEADER structure; comparison between suggested and
    supported media types in CBaseRenderer should ignore deprecated and/or not
    essential fields; additionaly explicitely setting the mediatype for the capture
    pin before trying to connect it works around another IDS driver bug, and
    should have been already done anyway.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=765428