2022年12月30日金曜日

libusbをなおす。

 USBのデバイスを制御するライブラリにlibusbというものがあります。

このライブラリを使うと、PCやスマホのUSBのカメラから動画をキャプチャーしたり、iphoneを制御したりできます。


AIの画像認識や組み込みとかでとっても使えるこのライブラリですが、バグでWindowsのコンポジットデバイスのアイソクロナス転送が動かない。

これだとUSBカメラとかUSBオーディオがおじさんの大好きなWindowsで使えないじゃないか。

そしてこのバグを誰も修正してくれない。


https://github.com/libuvc/libuvc/issues/12

このバグ、7年間も放置されています。

世界に80億人もいるのに。

もう誰もWindowsなんか使ってないのね。

最近いろいろなオープンソースでWindowsのバグが修正されていなくて困ります。


誰も修正してくれないので、おじさんが二週間ソースコードを解析してオープンソースを修正してみました。


ソースコードを直すときのメモリリークチェックとかリソースハンドルのクローズ忘れとかのチェックが大変ですね。

だけどとりあえずできた!

ライセンスがLGPLなので、ソースコードを修正すると公開しないといけないです。

https://github.com/yomei-o/libusb-1

これでWindowsでlibusbとlibuvcを使ってUSBカメラを制御できる!

おじさんもちょっと世の中の役に立ったかな。