GNOME Bugzilla – Bug 625190
Directshow decoders wrappers have COM initialization issues
Last modified: 2011-05-30 06:45:33 UTC
Currently these GSTreamer elements are almost unusable as they make applications crash. The COM initialization code seems to be wrong. As requested I am attaching here a proposed patch to improve those decoders that is currently being used on the Moovida and Moovida Pro softwares. This patch provides COM initialization/deinit from a thread created at object creation. The object instance will wait for COM to be initialized before starting any function call to the COM domain. This has been tested on Windows 2000, Windows XP, Vista and Windows 7 and works well. This patch also includes some fixes to add some codecs fourcc (MSS1, VC1) and fix Divx3.11 decoding. Another important problem fixed here is the registration of the elements as this done with a global codec_entry variable and it's completely racy making elements registered with wrong input caps.
You forgot to attach the actual patch (but please attach multiple patches, one for every change).
Created attachment 166493 [details] [review] Fix element registration using data in the type instead of a global.
Created attachment 166494 [details] [review] Fix COM initialization.
This bug may be blocking Bug #643123.
commit efd840bbb7e398d89ee9d4230e1f9c6250deee6b Author: Julien MOUTTE <julien@moutte.net> Date: Mon May 30 08:43:59 2011 +0200 dshowdecwrapper: Fix COM initialization Fixes bug #625190. commit 378a8d94dcfd0d1e9b19890a3c87622846d822d8 Author: Julien MOUTTE <julien@moutte.net> Date: Mon May 30 08:43:40 2011 +0200 dshowdecwrapper: Fix element registration using data in the type instead of a global