My .NET application needs to decode 2D bar codes in DataMatrix format.
I originally used a commercial library called Tasman.Bars, which had great royalty-free licensing terms, awesome performance, and supported many different bar code types... except that on certain images it would crash. These images were very rare, but this was still a show-stopping bug. Unfortunately, by the time I ran into it, the library was no longer sold or supported, having been bought out by another company and replaced with a much more expensive product.
I've tried the open-source libdmtx, both the native version (via a wrapper) and the .NET port (DataMatrix.net), and its performance is disappointing. I have to give it a timeout value when it decodes, and 1 second isn't long enough to decode some images even on a 2.8 GHz quad-core. 4 seconds works better, but that's an irritating amount of time, and even 10 seconds is insufficient for one image I've tried - I suspect it's just failing completely on that one, even though it looks visually identical to another one that works.
So... any recommendations? Commercial libraries are fine as long as the royalties are low or nonexistent.