insubaruのブログ

ソフトウェアに関する質問は最新記事にコメントする形で尋ねてください.

EWCLIB 2.8(更新)

ewclibを更新しました.v.2.7やv.2.8のいくつかはユーザの方々から頂いた質問・報告を受けて修正・改良しました.今後ともよろしくお願いします.

---

主な変更点(v2.7→v2.8)は次の通りです.詳細はヘルプの方をご参照ください.

  • EWC_IsCaptured()およびEWC_GetImage()の引数仕様を変更し,取得画像に関する情報はすべてEWC_IsCaptured()で把握するように変更.
  • MJPGをrawモードで取り込む目的のため,EWC_IsCaptured()で毎回のデータサイズを把握できるようにした.
  • カメラごとにrawモードを設定できるようにするため,ewc_rawを廃止し,EWC_RawMode()を追加.
  • EWC_SetBuffer()により格納先が変更されていてEWC_GetImage()を使わないプログラムの場合,EWC_IsCaptured()の戻り値が正しくない問題を解決するため,EWC_BufferLock(),EWC_BufferUnlock()を追加.
  • リングバッファの枚数が2以上のとき1枚あたりのサイズはRGB32相当(固定)とした.
  • MJPGデータをそのまま取得するサンプルプログラムを2つを追加.
  • 1番目のサンプルプログラムを一部修正.
  • カメラが0台(未接続)の場合,EWC_GetCameraName()の戻り値が非0(エラー)となっていた問題を修正.

---

主な変更点(v2.6→v2.7)は次の通りです.詳細はヘルプの方をご参照ください.

  • EWC_PropertyPage()を別スレッドから起動するよう変更.
  • サンプルされたデータをそのまま格納するオプションのためにewc_rawの追加.←v2.8で更に変更
  • EWC_GetCamera()を単独で使用できるように変更.
  • EWC_GetCameraName()および構造体ewc_cameraの追加.
  • EWC_GUIDtoTEXT()に対応フォーマットを追加.
  • EWC_CnvNV12toRGB32(),EWC_CnvY16toRGB32(),
  • EWC_CnvY800toRGB32()の各変換関数の追加.
  • サンプルプログラム「対応フォーマットの一覧を表示する例」,「NV12出力のカメラを使う例」を追加.

---

 

ESPLIBのライブラリモードについてコメントを頂きました

ある方からESPLIBのライブラリモードについて以下のコメントを頂きました.原因はまだ分かりませんが,同じ問題でお困りの方があれば参考になるかもしれませんので,とりあえず掲載させて頂きます.

不具合と解消法の報告ありがとうございます.

ESPLIB、EVFLIB、EWCLIBを使用してプログラムを書いています。 ESPLIBのアプリケーションモードで動作するプログラムをMFCで使える環境で動作させたいと思い、MFCのダイアログボックスアプリをAPPWizardで作成して、ESPLIBをライブラリモードで動かして概ねアプレケーションモードと同等の動きをするプログラムが出来ました。移植に要した時間も半日ほどで改めて使いやすいライブラリを提供していただきありがたく思います。 この移植作業の中で気になる点があったのでご報告させていただきます。 プログラムの中でテキストウインドウを何度か生成消滅させるのですが、同じ関数の中で生成と消滅を行えば問題ありません。しかし、生成と消滅を別の関数で行うとウインドウの消滅時に失敗します。具体的にはメインの処理の中でウインドウの位置を計算させてESP_OpenTextWindowでウインドウを開くところまでを関数化してメインの処理から呼び出します。消滅はメイン処理の中でESP_CloseTextWindowを呼び出してウインドウを消滅させています。 アプリケーションモードでは問題なく動いていましたが、MFCアプリでライブラリモードを使うとエラーになります。一応、関数をinline関数にすることでエラー回避が出来ていますので、私的には解決していますが、イメージウインドウなど他のウインドウでも同様なのか、MFCが悪さしているのか、ライブラリモードでの仕様なのかバグなのか不明なため報告させていただきました。

 独り言: MFCでのアプリの動作が関係してそう.テキストウィンドウの動作には自分でも怪しいと思われるところが実はまだ残ってる(複数ウィンドウ生成時に画面にゴミが残ったりする).別スレッドから関数が呼ばれたときの処理に原因があるような気がする.

EWCLIB 2.6(更新)

EWCLIBを更新しました. 
 
主な変更点(ver.8.4→ver.8.5)
  • リングバッファ機能の追加
  • EWC_IsCaptured(), EWC_GetImage()の仕様変更
  • ewc_s[].stimeの廃止,サンプルプログラムの修正
 リングバッファを追加したきっかけ
 ノートPCで動作するプログラムの開発中,ある問題の発生がコマ落ちに因るものと判明しました.その原因の1つはLCD表示が一定時間後にオフになる際,メインのスレッドが1秒ほど止められることでしたが,これは自動オフをしない設定にすると解消しました.また別の原因もあり,それはCPU温度が上昇して冷却ファンの回転数が切り替わる際,割り込みが入ってメインのスレッドが十数ミリ秒くらい止められるというものでした.電源管理オプションの変更やWindowsの様々な設定の変更では解消できず,最終的にはフレームレートを80 fpsから60 fpsへ下げ,今回のリングバッファを追加することでコマ落ちの問題がなくなりました.

ESLIB 8.5(更新)

ESLIB更新しました.
 
変更点(ver.8.4→ver.8.5)
  • Windowsシャットダウン(WM_QUERYENDSESSIONが来た)時は自動的にExit処理する機能の追加.これにより,ログ処理をしていた場合,データが最後まで記録される.
  • 手動でログデータをフラッシュするためのESP_FlushLog(),ESP_FlushAllLog()を追加.

geocitiesからxreaへ引っ越し

Yahoo!ジオシティーズのホームページサービスが終了するため,
から
へ引っ越ししました.今後も引き続きよろしくお願いします.