問題タブ [directshow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
63565 参照

c# - C#+ DirectShow.NET =単純なWebCamアクセス?

C#でWebカメラにアクセスするを見つけました。この例では、DirectShow.NETライブラリを使用しています。私はコードを理解しようとしましたが、これまでのところ私が理解できる唯一のことは、usercontrolがdirectshowを呼び出してユーザーコントロールの表面に直接描画することです。

各フレームにアクセスして、ビットマップオブジェクトに入れたいと思います。新しいフレームがいつ到着したかはどうすればわかりますか?この新しいフレームをビットマップオブジェクトにキャプチャするにはどうすればよいですか?

DirectShow.NETの使い方を知っていれば、これは簡単に答えられるかもしれません。

0 投票する
1 に答える
160 参照

windows - ハンドラー内のメッセージディスパッチをオフにする

私は完全にシングルスレッドであり、データ構造を保護していないWindowsプログラムに取り組んでいます。ただし、プログラムはDirectShow APIを使用して、独自の内部メッセージディスパッチ、たとえばIVideoWindow::put_Visibleを開きます。したがって、IVideoWindow :: put_Visibleメソッドを呼び出すイベント処理関数は、他のイベント処理関数にそのデータを台無しにする機会を与えます。

API内でそのようなメッセージディスパッチを防ぐ方法はありますか?

0 投票する
3 に答える
12568 参照

c# - DirectShow.NET C# を使用してオーディオ ストリームにアクセスする方法

私がやりたいことは、.NET 3.5 C# と DirectShow.NET を使用して、任意のオーディオ ファイルを DirectShow フィルターグラフに渡し、最後に (PCM オーディオ) ストリーム オブジェクトを受け取ることです。私はただ言うことができるポイントに到達したいと思います:

DirectShow について数日間読んでいて、フィルターとフィルターグラフの概念を理解し始めたと思います。オーディオを再生する方法やファイルに書き込む方法の例 (ファイル/デバイスへ) を見つけましたが、Stream オブジェクトの解決策を見つけることができないようです。これは可能ですか?何かを見逃した場合に備えて、正しい方向を教えていただけますか?

一番、

ハウケ

0 投票する
2 に答える
480 参照

windows - メッセージディスパッチで 2 番目のイベントループに対処するには?

私は本質的にシングルスレッドのプログラムに取り組んでおり、その唯一のスレッドはメインのイベントループスレッドです。したがって、そのすべてのデータ構造は、基本的にクリティカル リージョンのようなものによって保護されていません。

DirectShow API に基づくいくつかの新しい機能が最近統合されるまで、問題なく動作します。一部の DirectShow API は 2 番目のイベント ループを開き、その 2 番目のループ内でメッセージをディスパッチします (つまり、他のイベント処理コールバックを予期せずに呼び出します)。そのため、2 番目のイベント処理関数が呼び出されると、DirectShow API を呼び出す関数によってアクセスされているデータ構造体が破損する可能性があります。

カーネルプログラミングの経験があります。そして、私の頭に浮かぶのは、シングルスレッドプログラムの場合、データ構造を処理する方法は、カーネルが CPU ごとのデータ構造を処理する方法と非常に似ているということです。また、カーネルでは、関数が CPU ごとのデータにアクセスする場合、割り込みを無効にする必要があります (2 番目のイベントループでのメッセージディスパッチと非常に似ています)。ただし、DirectShow API の呼び出しを回避したり、それらの中で 2 番目のイベント ループが作成されないようにする簡単な方法はありません。何か方法はありますか?

0 投票する
1 に答える
1479 参照

directshow - directshow ランタイム ライブラリは DirectX ランタイムに含まれていますか?

Direct Show を使用して Web カメラ データをキャプチャおよび表示する ActiveX コントロールを作成しています。

DirectX ランタイムに directshow のすべてが含まれている場合は、それをコントロールにバンドルする必要はありません。

0 投票する
2 に答える
541 参照

c++ - IMovieControl::Run は Windows XP で失敗しますか?

実際には、2 回目に呼び出されたときにのみ失敗します。ウィンドウレス コントロールを使用してビデオ コンテンツを再生しています。コントロールがまだ画面上にある間に、再生中のビデオが変更される可能性があります。グラフが初めて作成されたら、再生を停止し、SOURCEフィルターを置き換えて、グラフを再度実行することでメディアを切り替えます。これは Vista では問題なく動作しますが、XP で実行している場合、2 回目の呼び出しで がRun()返されますE_UNEXPECTED

初期化は次のようになります。

そして、映画を再生することを決定したときに行うことは次のとおりです。はDirectShow サンプル エリアRenderFileToVideoRendererから借用しています。dshowutil.h

ここで何が起こっているか知っている人はいますか?

0 投票する
2 に答える
482 参照

.net - Gridview ドット ネット レイアウト

グリッドビューに 7 列あります。7 番目の列には、他の 6 つの項目の 50 語の説明が含まれています。6 つのフィールドが表示され、その下に 7 番目のフィールドが表示されるように行をレイアウトする方法を確認するには、どこでヘルプを見つけることができますか。それを適切にレイアウトする方法のサンプルを示すテンプレート サンプル、データリスト ビュー、またはグリッドビューを見つけるのに苦労しています。インテリセンスは私にはとても難解です。7 列のデータベースにリンクされた Visual Studio 2008 初心者。

0 投票する
1 に答える
580 参照

c# - C#でDirectShowAsyncReaderを使用する

AsyncReader別のアプリケーションによってダウンロードされている共有MPGファイルを開くためにを実行しています(プログレッシブダウンロード)。共有MPGファイルは、FILE-SHARE-READ | FILE-SHARE-DELETE | FILE-SHARE-WRITE共有アクセス許可で作成されます。私はそれらのフラグのすべての組み合わせを試しました。

問題は次のとおりです。C#内では、AsyncReader.Loadメソッドはエラーを返します。

使用中のファイル

C++内ではそうではありません。C++はファイルを問題なく開きます。

これがなぜなのか、何か考えはありますか?

0 投票する
1 に答える
7754 参照

c# - DirectShow.NET - Web カメラの解像度のプロパティ ページ

DirectShow.Net を使用して Web カメラにアクセスしています。Web カメラのプロパティ ページを表示して、ビデオ キャプチャの解像度と FPS レートを設定したいと考えています。DirectShow.NET サンプル (DxPropPages) のサンプル デモ コードを使用して、これを試します。これがコードです。ただし、プロパティ ウィンドウの 2 番目のタブは無効になっています。

ユーザーがキャプチャ解像度を設定できるように、このタブを有効にする必要があります。どうすればそれを達成できますか?私は DirecShow を初めて使用し、このデモ コードで何を変更すればよいかよくわかりません。

PS スクリーンショットを投稿して私の言いたいことをお見せしたかったのですが、私は新しいユーザーなのでできません。

0 投票する
2 に答える
648 参照

winapi - SetPosition の結果が間違っている

タスク: mpeg2 ビデオ ファイルから任意のフレームを取得します。現在、グラブにカスタムレンダーフィルターを使用していますが、必要なフレームにビデオを配置する際に問題があります。

グラフを介してフレームを渡すために Pause() の後に SetPosition() を使用し、フィルターが最初のフレームを受信するのを待ち、Stop() を使用します。

フレームごとに取得する場合、最初にこの時間フレームの正確な値を取得し、このフレームが何度か繰り返された後、再び正確なフレームを取得します。

SetPosition が間違った結果になるのはなぜですか?