0

Windows Mobile プラットフォーム用のカメラ ドライバー ドライバーを作成しています。

プレビューを正しく表示するアプリケーションに問題がありますが、レートが非常に低くなります (おそらく 1 または 2 フレーム/秒)。

調査の結果、フレームがセンサーから (45 ミリ秒ごとに) 正常に送信されていることがわかりましたが、そのフレームを保存するためのハードウェア イベントが発生すると、使用可能なバッファーがなく、フレームがドロップされます。

この場合、バッファーは IOCTL_CS_BUFFERS/CS_ENQUEUE API を介してアプリケーションによって提供されます。問題は、バッファが非常に低いレートで提供されることであり、これがプレビューが正常に機能しない理由です。

問題は、PIN_IOControl が Directshow ファームウェアから呼び出されるため、この API がこのレートで提供される理由を調査できないことです。

以前に説明した問題は、テスト アプリケーションに関するものです。

Windows Mobile カメラ アプリケーションを使用している場合、プレビューは画像モード (約 15 フレーム/秒) で問題ありません。しかし、ビデオ モードをオンにすると、プレビューには 1 秒あたり約 2 フレームしか表示されません (使用しているテスト アプリケーションのように)。

これら 2 つのモードの唯一の違いは、ビデオ モードのプレビューでは QCIF 形式が使用されているのに対し、キャプチャ モード (画像) のプレビューでは QVGA 形式が使用されていることです。

お手伝いありがとう。

ファブリス。

4

1 に答える 1

1

Directshow は、ダウンストリーム フィルターがバッファーの処理を完了すると、バッファーをプールに返します。directshow 自体ではなく、下流のバッファを使用しているものによって、あなたは足止めされています。

2 fps しか管理できないエンコーダーがダウンストリームにあるように聞こえます。これは、キャプチャ バッファーがプールに解放されるレートです。ドライバーで出力バッファーパラメーターを制御できる場合は、プールのサイズを増やすことができますが、それは一時的なものを除いて役に立ちません。ディスクへの直接書き込みなど、別のフィルター グラフを調査することもできます。

G

于 2009-12-10T12:13:35.207 に答える