ZXing has Java and C ++ ports. If you need to call it from C, you can always write a pad in C ++ that displays normal C calls.
ZXing is used a lot on mobile platforms, but there is nothing truly mobile in the kernel. You will need to provide the appropriate interfaces for the platform, which capture the video stream and call the ZXing functions. Not quite what you need, but see, for example, ZXing.app .
The C ++ port for ZXing has some support for 1D barcodes and is reliable for QR codes. (1D codes are also harder to scan using webcams, which often have fairly fixed focus and low resolution.)
source share