[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 06/11 05:26 / Filesize : 109 KB / Number-of Response : 378
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

DirectShowと戦うスレ Part 4



1 名前:デフォルトの名無しさん [2008/06/22(日) 18:38:21 ]
DirectShowプログラマーのみなさん。
メソッドのデッドロックとか、わけわからん現象多くないすか。
このスレに怒りやテクをぶつけましょう。

関連スレ
Win32API質問箱 Build67
pc11.2ch.net/test/read.cgi/tech/1212931246/
くだすれDirectX(超初心者用) part.3
pc11.2ch.net/test/read.cgi/tech/1193605500/
【C++】 DirectX初心者質問スレ Part17 【C】
pc11.2ch.net/test/read.cgi/tech/1207702556/
DirectX総合スレ (Part8)
pc11.2ch.net/test/read.cgi/gamedev/1205306118/
【PureVideo】DirectX Video Acceleration【AVIVO】
pc11.2ch.net/test/read.cgi/tech/1178285897/

2 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 18:38:51 ]
関連サイト
MSDN Microsoft DirectX9.0 DirectShow
msdn.microsoft.com/library/ja/DirectX9_c/directx/htm/directshow.asp
DirectX ホームページ
www.microsoft.com/japan/windows/directx/
MSDN ホームページ
www.microsoft.com/japan/msdn/
MSDN ライブラリ
msdn.microsoft.com/library/ja/
MSDN 2 ライブラリ
msdn2.microsoft.com/ja-jp/library/
Geekなページ DirectShowプログラミング [VC++]
www.geekpage.jp/programming/directshow/
あひるのホームページ DirectShowをよりよく使いたい人たちのサイト
hammer.prohosting.com/%7Earabo/DirectShow.shtml
Windowsでビデオキャプチャを作るため参考資料まとめ
www1.bbiq.jp/kougaku/link_videocap.html
奈良高専 土井研究室  動画あれこれ
wwwdoi.elec.nara-k.ac.jp/html/jisyu/doga/index.html
東京理科大 Kato Laboratory プログラミングキャプチャ
www.katolab.ee.kagu.sut.ac.jp/programing/capture.htm
京大川嶋氏 DirectShowのビデオキャプチャプログラミング
vision.kuee.kyoto-u.ac.jp/~hiroaki/firewire/directshow.html
M.Oshikiri's HomePage
www.geocities.jp/konbiki/tips/index.html
DirectShowを利用した透明ウィンドウでのビデオ再生
codezine.jp/a/article/aid/322.aspx

3 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 20:40:35 ]
新スレたったんだ

4 名前:デフォルトの名無しさん [2008/06/28(土) 14:08:40 ]
初カキコ失礼します

今、DirectShowを使用して
画面の一部を切り出して表示する
システムを制作していまして
それでシステムの参考に

ship.nime.ac.jp/~osawa/focusShare/

このサイトの「Focus Share」で使用されている
DirectShowフィルターをGraphEditで動かしてみたいのですが
うまく動かすことが出来ずに困ってます

ちなみに開発環境は
Visual C++ 2008 EE、Platform SDK 2003 SP1、DirectX 9.0b SDK です

ご教授の程、よろしくお願いします。

5 名前:デフォルトの名無しさん [2008/06/29(日) 21:24:11 ]
過疎ってるなw

6 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 22:26:47 ]
1乙
ってか、自分でも立てようかと思ったけど、
すぐ落ちるとイヤなので様子見してた・・・

>>4
とりあえずどのフィルタを使ってどんな症状なのか
説明してくれないと困るぞ

ざっと試してみたけどVideo Extraction Filterを使おうとしてるのかな?
ソース見てないからよく分からないけど、確かにちょっとおかしい。
ffdshowで出力フォーマットをいろいろ変えてみたが、
入力可能な正しいフォーマットはなんじゃろな。
暇があったら後でソース見てみる

7 名前:デフォルトの名無しさん [2008/07/02(水) 22:53:12 ]
ageとくぜよ

8 名前:デフォルトの名無しさん [2008/07/05(土) 13:56:15 ]
hage

9 名前:デフォルトの名無しさん [2008/07/17(木) 21:43:58 ]
9

10 名前:デフォルトの名無しさん [2008/07/26(土) 18:42:31 ]
あへ



11 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 04:16:12 ]
過疎と戦うスレ

12 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 04:22:15 ]
DirectShowはもう終わりだというのか・・・!

13 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 11:30:33 ]
M$が何考えてるかわからん

14 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 19:32:10 ]
DirectShowを使って動画から映像だけ抜き出してwmvに変換するプログラムを作成しようと思ってます。
まずフィルタグラフをどう構築すればいいのかと思ってGraphEditで試しているのですが
WM ASF WriterのAUDIOピンを繋がないとエラーになってしまいます。
無音声のwmvファイルを作成する場合AUDIOピンに何をつっこめばいいのでしょうか?


15 名前:デフォルトの名無しさん [2008/07/31(木) 23:57:26 ]
cygwin上で,DirectShowを使う方法ご存知の方いらっしゃいますか?

DirectXに関しては以下のページの方法でcygwinから動かすことできました.
d.hatena.ne.jp/yanma_4/20080308/1204961113

しかし私の環境の場合,DirectShowは,DirectX SDK内でなく,Platform SDKに入っているためか,
大量のエラー(IID_ICreateDevEnumが定義されていない等,Directshowの変数が見えないというエラー)が出ました.

www.okisoft.co.jp/esc/vs-exp/index.html#Cygwin
上記のページを見たところ,
『.NET Framework 2.0 SDK をインストール してある場合,
Cygwin からも C# コンパイラや各種ツールを利用できます』
とあった為,これをインストールしたものの,エラーの数は減りませんでした.

どなたかわかる方いらっしゃいましたら,御教授宜しくお願いします.

16 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 03:55:12 ]
>>14
確かにエラーになるね。
適当なAudio Capture Sourceを突っ込めば無音のwmvを作ることはできるけど、
ビデオ終端で自動終了できない・・・。

>>15
SDLにDirectShowのラッパーはないんじゃない?

17 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 03:58:31 ]
あ、.NETがCygwinから使えるならRCW経由でDirectShowを使えるような気がするな。
誰か試してみない?

18 名前:15 [2008/08/01(金) 18:26:19 ]
>>16さん
>>17さん

レスポンスありがとうございます.
support.microsoft.com/kb/436361/ja
頂いたヒントを頼りに,このページを見つけました.
ありがとうございました.

19 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 22:15:35 ]
Windows SDK (Platform SDK)入れて、その中のVC++コンパイラ使えばいいだろって気もするが。

20 名前:15 [2008/08/01(金) 22:42:59 ]
>>19
正論です.

カメラを他の装置と同時に使う事情から,
cygwinで動かせたら嬉しいと考えてます.





21 名前:15 [2008/08/01(金) 22:49:04 ]
cygwin

.NET Framework 2.0 SDK

Directshow.NET 2.0(ラッパー)

Directshow

17さんの言うとおり,
上記の道が考えられますが…,難しいですね.
もう少し頑張ってみます.

22 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 23:35:21 ]
簡単にやるならVS使えよ

23 名前:デフォルトの名無しさん mailto:sage [2008/08/03(日) 14:23:16 ]
>>16
レスどうもです。

プログラム組んでみようと思いますが、
GraphEditだからだめだってことはないんでしょうね。

もう少し悩んでみます。

24 名前:デフォルトの名無しさん mailto:sage [2008/08/04(月) 01:24:00 ]
すみません。
yahooチャットのビデオに自作のDirectshowフィルタを挟んで
効果を付けてみたいのですが可能ですか?
例えば文字スーパーを流すようにしてみるとかしてみたいのですが・・・
yahooチャットのビデオがどのようなフィルタ構成になっているかわからず
出力メディアタイプとかわからないです。
接続に関してはインテリジェント接続になっていてくれさえすればメリット値を変更で
なんとかできないかなって思っています

25 名前:デフォルトの名無しさん [2008/08/05(火) 08:54:08 ]
Win標準のVideo Rendererって、
アスペクト比が4:3と16:9のものしかまともに再生されないけど、
CIFみたいな中途半端なサイズのせいなの?
それとも適切なパラメータを出力ピンに設定していないから?
誰かわかりませんか。形式はyv12です。

26 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 13:44:37 ]
yv12

27 名前:デフォルトの名無しさん [2008/08/05(火) 23:10:13 ]
yv12に限らず、フレームバッファの確保の仕方次第で
レンダラ側で確保されるバッファのサイズが変わってくるんだね。
ffdshowはどうやってそこらへんを上手く処理してるんだろう…

28 名前:デフォルトの名無しさん mailto:sage [2008/08/05(火) 23:26:51 ]
1ピクセル単位で任意のサイズ使えるぜ?

29 名前:デフォルトの名無しさん [2008/08/05(火) 23:50:25 ]
出力ピンに設定している画像サイズがわかるツールつくったぜ?
>>24答えてくれたら放出するよ

30 名前:デフォルトの名無しさん [2008/08/06(水) 08:51:59 ]
>>28
あれ。そうなんですか…
GetMediaTypeで伝えるだけじゃだめなのかな。
Transformが呼ばれる時点で既にpOutには変更されたサイズが入ってしまってるんだけど…
もしかして再接続を適切に処理してないからでしょうか。



31 名前:デフォルトの名無しさん [2008/08/06(水) 23:34:37 ]
ROT使って、どうつながってるか覗いてみるとか。
などと適当に書いてみる。

↓やりかた
ttp://vision.kuee.kyoto-u.ac.jp/~hiroaki/firewire/directshow.html#addtorot

32 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 00:10:51 ]
相武沙希がかわいすぎてDirectShow

33 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 14:52:12 ]
>>24
あれは動画と言うより静止画で、鯖から要求されたときに
jpc(Jpeg2k)形式の1フレームの画像ファイルを送ってるだけなので
やろうとしてることを実現したければ、webcam画像取り込み、加工、
エンコード、パケット送信まで丸ごと作っちゃうか
ビデオ入力デバイスとしてwebcamの画像を横取り、加工する何かを
作るしかないと思う。←たぶんやりたいのはこっち?

jpcは写真とかは得意だけど文字とかはボケボケになった気がする。
丸ごと作っちゃうパターンだと圧縮率変えれば文字も綺麗に見えるけど、
受信側のデコードで負荷がかかりすぎて
PCがフリーズする視聴者続出させた記憶があるw

34 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 20:39:02 ]
>>33
そうですか。
単純にキャプチャフィルタと画像送信フィルタ構成で出来ているとばっかり
思っていました。
画像を横取りできたとしてもエンコード、パケット送信までは作れないから
諦めかな?

んで、フィルタの放出はした方がいいかい?

35 名前:デフォルトの名無しさん mailto:sage [2008/08/07(木) 21:07:02 ]
いらん

36 名前:デフォルトの名無しさん [2008/08/08(金) 21:10:57 ]
じゃあ、俺の妹(高校生)の寝顔は?
(´・ω・`)?





俺の脳内妹かわいいよ

37 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 13:27:03 ]
aviファイルの画像と音声を抜き出したいんだけど、どこかにサンプルがないかな?
Video for windows の例はいくつか見つかるんだけどね。
詳しい方、よろしくお願いします。

38 名前:37 mailto:sage [2008/08/11(月) 13:46:21 ]
補足
業務で使うので、ツールではなくやり方が知りたい。
画像の抜き出しは見つけた。音声の抜き出し方がわからない。
以上、よろしくお願いします。

39 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 14:40:41 ]
しばらくGraphEditで遊んでみれば分かる。

40 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 14:45:13 ]
こんなゆとりを飼っている会社も大変だな




41 名前:デフォルトの名無しさん mailto:sage [2008/08/11(月) 18:58:30 ]
でも3ヶ月後はお前らぶち抜いてるかもよ
そういうもんだ

42 名前:デフォルトの名無しさん mailto:sage [2008/08/12(火) 00:30:53 ]
それも癪なので教えないでおこう

43 名前:デフォルトの名無しさん mailto:sage [2008/08/14(木) 11:43:50 ]
>1参照

44 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 14:26:53 ]
DirectShowを使った録画アプリケーションをサービスとして実装し、
ログインしていない時に録画できるようにする事は可能なのでしょうか?
例えばプレビューは無しでもデスクトップがないとグラフを構築できないといったような制限はあるのでようか?

45 名前:デフォルトの名無しさん mailto:sage [2008/08/17(日) 14:34:26 ]
なんでその程度の試す手間を惜しむの?

46 名前:デフォルトの名無しさん mailto:sage [2008/08/18(月) 23:00:32 ]
CheckTransformに渡ってくるレンダラからの要求サイズで絵を作って渡しているのに、
YV12形式だとQCIFだけ横幅がおかしく表示されます…

47 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 12:37:30 ]
DirectShowの質問です。

ムービーの動画をテクスチャに移して加工した上で表示させたいと思い、
ネット上のサンプルを読み漁ってとりあえず組んでみたのですが
以下の疑問点が発生しました。
どなたかわかる方が居ましたら、答えていただければありがたいです。

1. ムービーファイルの画像を「1枚ずつ」「任意のタイミングで」取得する方法はありますか?
 現在のコードでは、DirectDrawに再生させておいて
 描画時にテクスチャを取得して再生する、という構造になっています。
 おそらく別のスレッドで再生させているのだとは思いますが
 このシステムでは、負荷でメインスレッドのFPSが落ちた場合などに
 当然ながら同期のズレが発生してしまいます。
 (動画とメインループのフレームの比率が変化してしまうため)
 アプリ側から任意のタイミングでフレームを進めることはできますでしょうか?
 
2. 実際に再生させるルーチンまでは作れたのですが
  動画ファイルの読み込みに250msほど時間がかかってしまいます。
  特にIGraphBuilderのRenderFileメソッドが非常に重く、
  ここだけで200ms持って行かれてしまいます。
  これはムービーファイルを再生する上で回避できない時間なのでしょうか?
  ちなみに、ムービー形式はサンプルに沿ってwmvを使用しています。

DirectShowというと、マイナーでネット上のサンプルも少ないというイメージで
触っている人が少ないかもしれないかと思うのですが、わかる方が居ましたら
よろしくお願いいたします。


48 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 13:04:32 ]
レンダラの出力がテクスチャになるようなフィルタを作る。

手動でフィルタ接続が速いかも

49 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 13:25:09 ]
デフォルトのフィルタを使った場合、
変換が二度手間になっているような認識でいいのでしょうか?

ありがとうございました。ちょっと色々とやってみます。

50 名前:デフォルトの名無しさん mailto:sage [2008/08/28(木) 11:00:10 ]
>>47
homepage1.nifty.com/nekora/soft/howto/avi.html
張るのが遅かったな




51 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 18:50:07 ]
DirectShowでマルチチューナに対応したTVクライアントを書こうとして最初で躓いてしまいました。
あるBDAチューナデバイスAがサポートするチューニング空間を列挙する方法が知りたいのですが、
何かいい方法はないでしょうか?

52 名前:デフォルトの名無しさん mailto:sage [2008/09/29(月) 23:27:51 ]
COMの質問なのか
COMは分かってるけど適当なAPIが見つからないのか
APIも分かってるけど挙動がおかしいのか、などなど

53 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 08:23:24 ]
>>52
COMはだいたいは大丈夫だと思います。
適当なAPIが見つかりません。

PNDIR_INPUTのAM_MEDIA_TYPEをみると、
majortype = KSDATAFORMAT_TYPE_BDA_ANTENNA
subtype = MEDIASUBTYPE_None
formattype = FORMAT_None

であって、接続可能なピンかどうか判断できませんでした。
ネットワークプロバイダの出力ピンをみても、同様でAM_MEDIA_TYPEだけでは
判断できないようですが、ほかの方法が思いつきません。

54 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 19:58:20 ]
CBaseVideoRendererを使って
テクスチャにレンダリング、DirectXで表示という
いわゆるムービーテクスチャー方式で再生しているのですが
Vistaのフルスクリーン時のみフリーズする現象にぶち当たってます
VistaウインドウモードやXPでは問題ないようなのですが・・・
DoRenderSample内のテクスチャのロックが
癌なような気がしないでもないですが対処法がわかりません
なにか解決方法はありますか?

55 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 20:04:13 ]
デバッグしろ

56 名前:デフォルトの名無しさん mailto:sage [2008/09/30(火) 20:09:22 ]
リモートデバッグ環境がないので
フルスクリーン時のデバッグができないのです

57 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 00:43:59 ]
マルチスレッドのフラグ立ててデバイス作っていないのに、複数のスレッドでアクセスしてデッドロックしている感じもする。

つーか、お前の環境なんて知ったこっちゃない。マルチモニタでやるなりログ出力するなり好きにしろ。
最低限の道具も揃えられないようだと話にならない。

58 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 02:02:13 ]
VB.net2005でDirect Show を使用し動画から音声を抽出→音声波形を作成
ということをしたいのですが,どのようにしたらよいのでしょうか?
Direct Showの使い方もわからず,教えていただけないでしょうか?


59 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 02:12:40 ]
まずはC++を使ってください。C++以外の言語でDirectShowを扱うのは愚かな行為です。
次にサンプルやドキュメントを読んで基本的な仕組みを理解してください。

60 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 03:05:24 ]
>>59さん
ありがとうございます,VC++でやるのが普通なのですか・・・
vb.netでやるのが仕事の条件だったもので結構探してみたんですがなかったのはそういことだったんですね.
ありがとうございます.



61 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 16:19:48 ]
>>60

.NET(C#) で GUI とグラフ作成・制御、C++ でフィルタの画像処理という
組み合わせなら .NET 初めての身にもそこそこ作り易かった記憶があります。

・.NET から DirectShow を扱うためのライブラリ
ttp://directshownet.sourceforge.net/
Platform SDK 内の DirectShow サンプルのほとんどが
C#で書き直されているので、グラフ作成・制御方法の参考になるでしょう。
当然ながら Unmanaged なリソースを扱うので
Marshalling の面倒をイヤというほど味わうことになるのは覚悟して下さい。

また、フィルタを .NET で書くことも可能らしいです…。(実際にやったことはありませんが)
・C# で DirectShow フィルタのプロトタイプを作成
ttp://www.codeproject.com/KB/directx/prototypingdsfilters.aspx
パフォーマンスに問題があるのであくまでプロトタイプの作成に
留めた方がよいそうです。本番の時はC++で。


62 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 00:00:16 ]
その辺のいろいろな手間考えるとまあ>>59だろうなあ

63 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 00:10:43 ]
>>61さん
ありがとうございます.

皮がvb.net2005で作らざるを得ないのでできれば閉じた環境で作りたかったもので・・・

とりあえず,真剣に無理そうならvc++でdllを作成するという方向になるかと思われます.

64 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 01:49:27 ]
.NET環境はCOMの扱いが面倒なんで、結局C++なDLLでやって値だけ得るのがいい。
VSなら言語やモジュールが分かれていてもシームレスにデバッグできるよ。
GUI(C#)+DLL(C++)も簡単。

65 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 09:19:05 ]
最新のDirectX SDKをインストールしたのですが
GraphEditが見当たらないのですがどこにあるのでしょうか?

66 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:14:06 ]
今はWindows SDK for VISTAのほうにあるんじゃないかな。

67 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 10:40:23 ]
なんですとー!

68 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 11:04:46 ]
msdn.microsoft.com/ja-jp/library/cc352285.aspx
このBDAサンプルが動く地デジ・ワンセグチューナってありますか?

69 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 18:22:12 ]
DirectShowつかって、Form上に動画を表示しています。
その画面上にlabelやtextboxを表示したいのですが、動画の下に隠れて(?)しまってみえません。

隠れない方法はあるのでしょうか?

VS2005 C#です。

70 名前:デフォルトの名無しさん mailto:sage [2008/10/07(火) 19:16:19 ]
コントロールを最前面に移動させるとかフォームじゃなくてパネルにして最背面にするとか



71 名前:69 mailto:sage [2008/10/07(火) 19:55:08 ]
>>70
できました!!!!!!ありがとうございます。


72 名前:デフォルトの名無しさん [2008/10/08(水) 04:24:48 ]
おいおい このまま終了か?あげとくぞ

73 名前:デフォルトの名無しさん [2008/10/08(水) 14:33:08 ]
このスレは書き込み少ないんで、age推奨でもいいかもしれんね

74 名前:デフォルトの名無しさん [2008/10/14(火) 13:29:15 ]
すいません質問です
DirectShowを使用してWMVファイルを再生する際にはWMAudio Decoder DMOとWMVideo Decoder DMO
を使用するとよいというのはRender Media Fileを使って理解しました.

その上で再生するのとは別個にWMAをファイルとして保存したいのですがWMAudio Decoder DMOの次のフィルターをどのようにすればよいのでしょうか?

75 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 12:19:37 ]
質問で申し訳ないんですがDirect show file reader プラグインのファイルを何度も解凍してもいくつかのファイルがエラーしかでません
ds_inputとds_input.auiと読んでね、が解凍できたのですがこれは正常なんでしょうか?
それとも解凍できてないファイルがあるのかファイル自体がエラーおこしてるのか教えていただけるとありがたいです

76 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 14:12:50 ]
DTV板に池

77 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 14:17:18 ]
「読んでね」は読んだのか?

78 名前:デフォルトの名無しさん [2008/10/24(金) 04:53:39 ]
質問です.
Windows SDK v6.1 + VS 2005 Academic Editionを使用しています.
DirectShowのSample Filterをビルドしてみたところ以下のエラーが出てビルドが通りません.
解決策はないのでしょうか?

79 名前:78 mailto:sage [2008/10/24(金) 04:58:55 ]
1>wavdest.obj : error LNK2019:
未解決の外部シンボル "public: __thiscall CTransformInputPin::CTransformInputPin(wchar_t const *,class CTransformFilter *,long *,wchar_t const *)"
(??0CTransformInputPin@@QAE@PB_WPAVCTransformFilter@@PAJ0@Z) が
関数 "public: __thiscall CWavDestFilter::CWavDestFilter(struct IUnknown *,long *)" (??0CWavDestFilter@@QAE@PAUIUnknown@@PAJ@Z) で参照されました。

このようなerror LNK2019が合計4個で増した.

80 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 12:27:28 ]
>>79
DirectShow 基底クラス(自分でビルドする必要あり) がリンクされてない
場所は SDK のフォルダから上記クラス名で検索をかけてみればすぐに見つかる




81 名前:79 mailto:sage [2008/10/24(金) 17:53:57 ]
インクルードディレクトリして
C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses
を追加で指定したのですが,これだけではないのでしょうか?

82 名前:デフォルトの名無しさん mailto:sage [2008/10/24(金) 18:26:56 ]
そこにソリューションのファイルあるだろう
ビルドしてみそ。Vistaだと別の場所にする必要がある。
そこでできたlibをリンク

83 名前:デフォルトの名無しさん [2008/10/26(日) 13:38:07 ]
SampleGrabberでオーディオを取得して、加工しています。
ムービーの場合は、BufferCB()には、1フレーム分のデータがくるので、
加工などは、とてもし易いのですが、オーディオの場合、同じ44100Hz16Bitステレオのデータでも、
非圧縮のWAVEと、MP3、WMAなどの圧縮データでは1回ごとのBufferCB()に流れてくるPCMの
データ量は違うようです。

例えば3秒のデータを取得したいのですが、
IMediaControl->Run();
IMediaEvent->WaitForCompletion(3000, &evCode);
で、確かにデータは取得できるのですが、実時間待つので
リアルタイム処理ができません。
どうすれば実時間より短い時間で正確に3秒分のPCMデータを取得できますか?


84 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 13:59:49 ]
3秒分だけをリアルタイム処理したいの?
ソースは何を想定してるの?

85 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:40:40 ]
クロック無視してデータをなるべく早く流したいときはフィルタグラフのIMediaFilter::SetSyncSourceにNULLを渡す。
ヘルプのReference Clocksを参照。
しかし>>83のWaitForCompletionの使い方は何か勘違いしてる予感。

86 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 22:34:40 ]
シューティングゲームなどで複数の効果音を連続で再生させるような場合、
DirectShowは不向きですか?


87 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 23:54:02 ]
DirectSound or OpenALでおk。つーか調べろ。

88 名前:デフォルトの名無しさん [2008/10/27(月) 03:21:32 ]
>>84
3秒と書いたのは、任意の時間分のデータを取得したかったので、
とりあえず3秒としただけなんです。 エフェクト用のバッファが0.5秒なら0.5秒だったりします。
ソースはDirectShowで処理できる任意の音楽データです。

>>85
Reference Clocksを参照してみます。
IMediaEvent->WaitForCompletion(3000, &evCode); には特に意味はありません。
IMediaEvent->WaitForCompletion(INFINITE, &evCode);ですべてのデータを取得していたのですが、
例を3秒としたので、単純に書いてみました。

>>84,85 返信をありがとうございました。


89 名前:79 mailto:sage [2008/10/27(月) 19:00:43 ]
>>82
ありがとうございました。おかげでそのエラーはなくなりました。
ただ、今度は
エラー 1 error C2146: 構文エラー : ')' が、識別子 'pName' の前に必要です。
c:\program files\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\refclock.h 80
エラー 103 error C2327: 'CBaseReferenceClock::LPCTSTR' : 型名、スタティック、または列挙子ではありません。
c:\program files\microsoft sdks\windows\v6.1\samples\multimedia\directshow\baseclasses\sysclock.h 25

のようなエラーが大量に出てきてしょんぼりな事態に陥りましたorz
これは該当するコードの部分を修正するほかないんですよね?

90 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 19:31:08 ]
>>89
LPCTSTR がどこのヘッダで定義されているか検索してみるよろし



91 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 21:33:00 ]
どんどんすれ違いな方向へ・・・

92 名前:メモ mailto:sage [2008/11/01(土) 16:20:51 ]
MSDN Forums ≫ Software Development for Windows Vista ≫ DirectShow Development

Discuss how to develop DirectShow applications using the API provided in the Windows Platform SDK

forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=129&SiteID=1


93 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 18:42:42 ]
79の書き込みを見てビルドしてみたんだが,なんかビルド通らねえな
文字セットもマルチバイト文字セットを使用するにしたし,
Windows.hもインクルードしたんだが・・・
refclock.hの80/139/178/166とsyclock.hの25行目でエラー出る

何が問題なんだろう・・・

そして79の子は投げたのだろうか?



94 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 19:30:21 ]
>>79ってサンプル?
>>82だけど、実際にビルドできるの確認して書いたんだけど。

95 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 19:31:09 ]
>>93
マジですか
Ver6.0 しか使ってなかったので
帰宅したら 6.1 で試してみよう


96 名前:94 mailto:sage [2008/11/05(水) 19:31:47 ]
ググってみたけど、Dshow.hが複数あって別のやつがincludeされてた、というのがあったが

97 名前:95 mailto:sage [2008/11/06(木) 02:30:35 ]
WindowsSDK Ver6.1 + VisualStudio2005 Standard SP1 で
>>79 がビルドを試みたと思われるサンプルフィルタ(WavDest)をビルドしてみた。

・ソリューションに「追加のプロジェクト」で BaseClasses.vcproj を追加
・WavDest→BaseClasses の依存関係を設定

という操作は別途行ったが、Debug/Release ビルドしたところ特にエラーもなくビルドできた。
graphedit でも動作することを確認。

BaseClasses をマルチバイト版の構成(Debug_MBCS/Release_MBCS) でビルドしようとすると
WavDest 側がUNICODE版の構成しかないので >>79 のようなリンクエラーが出るのは当たり前。

>>89 >>93 のコンパイルエラーはこちらでは再現できず。(謎)
>>96 の通り別バージョンのヘッダが混じってると確かに起きそうな気はするが…。

98 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 00:23:02 ]
BaseClassesのStreams.hをインクルードしたつもりが
別のStreams.hがインクルードされてしまっていたことがあった(>>93みたいなコンパイルエラーが出てたはず)
BaseClassesが先頭になるように、インクルードの優先順も見直してみるといいかもね。

99 名前:93 mailto:sage [2008/11/07(金) 14:21:42 ]
文字セットがUNICODE版じゃなかったのが問題だったぽい.騒がしてすまん
後,BaseClassesを先頭に持ってくるようにしたら,すんなりとコンパイルできた
とりあえず,BaseClassesは先頭に持ってこないとコンパイルエラーでるっぽい.

>>79
97氏がやってるようにして,すべての文字セットがUNICODEであることを確認して,
追加のインクルードディレクトリでBaseClassesを先頭にしたらコンパイルは通るともう.



100 名前:sage [2008/11/21(金) 15:23:39 ]
DirectShowでデコードした動画をOpenGLのテクスチャに流し込むプログラムを書いています。
CBaseVideoRendererを派生させてOpenGLのテクスチャを更新する自作フィルタを作成し、
それは動作しているのですがパフォーマンスに不満があります。
OpenGLでのテクスチャのアップデートにはPBOを使用しているのですが、この場合アップデー
トを行うバッファはOpenGL側から指示されます。
一方、CBaseVideoRendererのDoRenderSample()メソッドでは、デコードされたデータへの
ポインタは前段のデコーダーから与えられます。
そのため、DoRenderSample(IMediaSample * pSample)内でpSample->GetPointer()で得られた
バッファからPBOのバッファへのmemcopy()を行う必要があり、結構なオーバーヘッドとなっ
ています。
OpenGLから与えられたバッファアドレスを前段のデコーダの書き出しバッファとして指定で
きれば、この無意味な転送はなくなると思うのですが、こういった指定をする方法はないで
しょうか?
IMediaSampleではPutPointer()は使えなくなっているようですが、なにかうまくデコーダの
バッファをレンダラ側から扱う方法は無いものでしょうか?





101 名前:デフォルトの名無しさん mailto:sage [2008/11/21(金) 15:51:52 ]
>>100
ピッチの指定ができなかったから結局は自前コピーが必要かもしれない。
自前のアロケータ(ISampleAllocator)を返してやればそれを使ってくれることもあるけど使用するとは限らない。
個人的にはFBOのほうが好きだ。PBOよりパフォーマンスがいい気がする。
まあこのくらいのメモリコピーなんて気にするな。こういう状況はよくあること。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<109KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef