DirectShowと戦うスレ Part 4at TECH
DirectShowと戦うスレ Part 4 - 暇つぶし2ch574:デフォルトの名無しさん
09/09/18 22:24:21
cvAdaptiveThreshold()より改善するのは仕事でないと嫌だが、
まんま使うとかはダメなのか?

仕事として受けるなら設計書とソース提出するよ


575:デフォルトの名無しさん
09/09/19 17:35:55
自力で高速化してみます
ありがとうございました

576:デフォルトの名無しさん
09/09/22 14:06:10
Visual C++ 2008 を使用しています。

Microsoft SDKs\Windows\v6.1\Samples\multimedia\directshow\baseclasses
にある Streams.h をインクルードしたら
IReferenceClockTimerControl が定義されてないと出ました。
これはどういった対処をすれば良いのでしょうか?

577:デフォルトの名無しさん
09/09/22 14:10:05
まずはビルドしろよ糞が

578:デフォルトの名無しさん
09/09/22 16:46:07
基本的な事を知らずにDirectShowに手を出すと泣くよ。
俺が昔そうだったから保障するw

579:デフォルトの名無しさん
09/09/22 23:12:02
>>576
ヘッダー全部もってこい。
もしくはちゃんとパスを通せばおk

580:デフォルトの名無しさん
09/09/28 21:56:54
>>576
MicrosoftSDKや、DirectX SDKと、VC++のヘッダファイルで同名のがあるから
インクルードの順番も注意しろ。

581:デフォルトの名無しさん
09/10/09 14:15:28
TChartShapeでchasVertLineにしてマークを表示させてるのですが
マークが上と下(Y1とY0)に2つ表示されてしまいます
これを上1つ(Y1)だけ表示されるのにはどうしたらいいですか?

582:デフォルトの名無しさん
09/10/09 14:16:09
あ、すんません。
誤爆してしまいました

583:デフォルトの名無しさん
09/10/11 07:36:37
同機種のwebカメラを2つ繋げてもグラフエディットでは1つしか表示されない。

調べてみるとPCによってはちゃんと表示されるものもある(カメラのドライバーは同じ物を使用)
USBコントローラの数が関係してるのかと思うんだけどわからない。

ここには解説出来るような人いる?

584:デフォルトの名無しさん
09/10/11 07:47:51
いません

585:デフォルトの名無しさん
09/10/11 13:33:39
やっぱり難しいよね。ごめんなさい

586:デフォルトの名無しさん
09/10/11 14:14:54
態度が気に食わないので教えない

587:デフォルトの名無しさん
09/10/11 14:30:02
URLリンク(img.f.hatena.ne.jp)

588:デフォルトの名無しさん
09/10/12 21:08:27
>>586
>>587
態度を改めます。私程度の力ではわからないため
お願いします教えてください。
【質問】
同機種のカメラ複数台接続してGrapheditで1個しか表示されない
カメラドライバの問題でなく「PC側によって」使えるものと
使えないものがあるが、何が違うのかわかりません。

【現在わかっている事】
ノートPCの一部ではUSBコントローラが複数あり
別々のUSBポートにつないでいれば同機種のWebカメラでも
利用可能。

また、ググると下記の記述があり私が試してみた感じ同じ考えです。
・同じ型番でもドライバが対応していれば大丈夫
・同じメーカーでも型番が違えば大丈夫
・片方のカメラにUSBハブを挟めば大丈夫
・メーカーが違えば大丈夫

URLリンク(blogs.yahoo.co.jp)

よろしくお願いします。

589:デフォルトの名無しさん
09/10/16 21:17:21
>>578
よくあるパターンだがDirectShowに限らず初心者はその「基本的なこと」が何なのかすら判らないことが多い
で、ググってもそういう事が書いてあるページがなかなか見つからない罠。結果挫折する・・・

590:デフォルトの名無しさん
09/10/17 01:48:31
キャプチャーカードやカメラの画像サイズの設定で
入力1080と720などの切り替えをしたいのですが、
DirectShow では IAMStreamConfig を使ってできましたが、
WindowMediaEncoderSDK いわゆるWMEncoderLib.dll系を使って
できないでしょうか?


591:誰か助けて。
09/10/18 21:37:48
ISampleGrabberを利用して画面キャプチャを行っています。
mpeg2をビットマップにすることは出来ましたが、
Webカメラで撮影して保存したファイルでは失敗します。
Webカメラの設定ではYUV2で保存されるようで、そのファイルのプロパティーで見ると
MS-YUV(16ビット)と書かれていました。この場合、グラバのSetMediaType()には
一体何を与えればいいのでしょうか? なお、現状で、
media_type.majortype = MEDIATYPE_Video;
media_type.subtype = MEDIASUBTYPE_RGB24;
media_type.formattype = FORMAT_VideoInfo; を与えています。
これだと、GetCurrentBuffer()で失敗します。
そこまでは全部成功します。戻り値はVFW_E_WRONG_STATEでした。

592:誰か助けて。
09/10/18 21:40:53
なお、フレーム読み込み箇所は次の通りにしています。

this->seeking->SetPositions(&ulc,AM_SEEKING_AbsolutePositioning,&ulc,
AM_SEEKING_AbsolutePositioning );

// 1フレームレンダリング、完了を待つ
while(this->control->StopWhenReady() != S_OK){}

// レンダリング完了を待つ(不要か?)
OAFilterState fs;
this->control->GetState( INFINITE, &fs);

// バッファを取得
this->grabber->GetCurrentBuffer(
      (long*)&this->media_type.lSampleSize,
      (long*)**this->load_buffer);

593:デフォルトの名無しさん
09/10/18 22:53:11
>>591>>592です。
解決してないけど解決しました。
どうもよくわかりませんが、そのムービーファイルの数フレームだけ、
GetCurrentBuffer()でVFW_E_WRONG_STATEが返ってくるようです。
しょうもないので、GetCurrentBuffer()でエラーが返ってきても無視すると
うまく行くようになりました。こんなんでええんだろうか・・・


594:デフォルトの名無しさん
09/10/18 23:13:12
ピクセルフォーマットやメディアタイプを理解せずに、ISampleGrabberを使える事にびっくりした。

>Webカメラで撮影して保存したファイルでは失敗します。
このファイルがどんなファイルなのか、作っているGraphがどうなっているのか、等が分からないと、答える事は難しい。

よく分からないんだったら、IVMRWindowlessControl::GetCurrentImageあたりを使ったほうが無難だと思う。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch