マイコン工作実験日記

Microcontroller を用いての工作、実験記録

UVCでJPEGを送ってみる

2016-11-28 12:41:30 | Weblog
UVCによる無圧縮での画像転送は、Macでうまく表示させることができずに断念したので、こんどはMJPEGで送るのを試してみました。最終的にはカメラからのJPEG画像を転送することが目標なのですが、まずはMJPEGでの転送動作を確認するために試験用の画像データをあらかじめ用意しておき、これを繰り返し送ってみることにします。

MJPEGへの対応作業は、基本的にはUSBのConfiguration Descriptorを変更するだけです。あとは、UVCのVideo StreamとしてJPEGデータをそのまま送りつけてやればいいだけです。

まずはMac OSで試験してみたものの、無圧縮の時とおなじようにカメラとしては認識されるものの、まったく画像を取得しようとする気配なし。

続いてUbuntuで動作確認してみると...



こちらはメデタク画像を表示できました。

そしてWindows 10も試してみたのですが...



なんと! カメラとして認識してくれません。Config descriptorはちゃんと読んでいるので、Mac OSとおなじようにその内容が気に入らずにカメラとして扱ってくれないように思われます。

けっきょく、MJPEGでつながるのはUbuntuだけという悲しい結果。なんか、大きくやる気を無くしました。

Mac対応はおあずけ

2016-11-18 21:05:57 | Weblog

気がつくと、1ヶ月近く記事書いてませんでした。

STM32L4を使ったUVC表示ですが、WindowsやLinuxで文字表示できるようになったものの、MacOSのPhotoBoothだと表示できない問題で足踏み状態です。Photo Boothでカメラを選択するとクラッシュしてしまう問題があったのですが、MacOSを 10.12.1にバージョンアップしたらクラッシュはしなくなりました。しかしながら、カメラのメニューには現れるものの、選択してもちっとも機能してくれません。USBの動きを調べてみると、Mac側からは何のUVCクラスのリクエストも出ていないようです。

想像するに、Device DescriptorとConfig Descriptorからカメラデバイスとしては認識してくれているものの、Config Descriptorの内容からPhoto Boothアプリで使用するには機能的に不十分とみなされているのではないでしょうか? そこで、Config Descriptorの内容を変更して画面サイズを変更してみたりとかしてみたのですが、一向に動いてくれません。うーん、どうしてだろう。いつまでもハマっていてもしょうがないので、Mac対応はしばらくオアズケということにします。