DirectShowと戦うスレ Part 2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/11/08(水) 00:25:56http://pc8.2ch.net/test/read.cgi/tech/1026666092/
0596デフォルトの名無しさん
2007/07/07(土) 01:13:03逆さ向けてビデオとってしまったんだorz
0597デフォルトの名無しさん
2007/07/07(土) 04:03:29ワロタ
てかその修正をフィルタに任せるなよw
動画編集ソフトで回転させるとか
動画を反転回転できるプレイヤー使うとかあるだろ
0598592
2007/07/07(土) 18:37:34>>594
再生しているmovieは特別なコーデックを必要としないので、違う原因かと思います。
>>595
親をNULLで再生すると、再生時にメインWIndowが最小化してしまい、全画面モードが
通常画面に戻ってしまいます。(movieは左上で再生)
もうすこし詳しく症状を説明すると、まったく再生しないわけではなくて
成功・失敗をランダムで繰り返します。
成功すれば、メイン画面の前にVideoWindowが出て、普通に再生。
失敗すると、メイン画面の裏にVideoWindowがいるようで、音だけ再生。
このような感じになります。
色々とネット検索したところ、VideoWindowを再描画することで回避可能と見つけたのですが、
組んだところうまくいきません。(症状は同じ)
HWND hChild = GetWindow(m_hwnd,GW_CHILD);
InvalidateRect(hChild,NULL,true);
うーん・・・
0599デフォルトの名無しさん
2007/07/07(土) 19:58:50親ウインドのWM_ERASEBKGNDをDefaultWindowProcに渡さないようにして試してみな。
case WM_ERASEBKGND:
return 0;
でOK
0600デフォルトの名無しさん
2007/07/08(日) 13:54:57入れてみましたが、現状変わらずです。
元々WaitForCompletionで処理を止めている状態ならウィンドウメッセージが
ムービー再生中に取れることも無いので、SetNotifyWindowでイベント登録
に切り替えてみましたが、やはり同じ状態です。
WaitForCompletionで再生しても裏に回った状態になるので、
WM_ERASEBKGNDを無視しても、同じ症状になるのだと思います。
再生中に定期的にInvalidateRectをVideoWindowに送ってもみましたが、
やはり裏の時は裏で再生されます。
うーむ、もう少し調べてみます。
0601デフォルトの名無しさん
2007/07/08(日) 14:11:52ダイアログ?それともダイアログに貼り付けたCStatic?
0602デフォルトの名無しさん
2007/07/08(日) 15:00:15以下のスタイルで画面切り替え時にSetWindowLongしたものです。
WS_POPUP | WS_SYSMENU | WS_VISIBLE | WS_BORDER
0603デフォルトの名無しさん
2007/07/08(日) 19:36:060604デフォルトの名無しさん
2007/07/08(日) 20:01:24以下のような方法でVideoWindowにTOPMOSTを指定しましたが、
どちらも結果は変わらず、表に出たり裏に回ったりします。
1.
pVideoWindow->put_WindowStyleEx(WS_EX_TOPMOST);
2.
HWND hChild = GetWindow(m_hwnd,GW_CHILD);
::SetWindowPos(m_hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
うーん。
0605デフォルトの名無しさん
2007/07/08(日) 20:24:33窓の設定が間違っている予感。
0606デフォルトの名無しさん
2007/07/08(日) 20:35:110607デフォルトの名無しさん
2007/07/08(日) 20:47:08すいません、それは具体的にどのようにすればよいでしょうか?
0608デフォルトの名無しさん
2007/07/08(日) 21:17:560609デフォルトの名無しさん
2007/07/08(日) 21:57:40Owner指定無しだと、元の全画面ウィンドウからVideoWindowに移る際に
全画面モードが解除されます。(Movieは左上で再生)
これは、put_FullScreenMode()を実行しでも同じような動作になります。
通常画面からput_FullScreenModeをつかえば全画面でムービー再生してくれるのですが、
全画面モードから使うと、逆に全画面が解除されるようです。
うーん。
0610599
2007/07/08(日) 22:11:45ビデオウインドの親ウインドは何?
このウインドを仮にhParentとすると、
hParentウインドに親はいるのか?(or最初からWS_POPUP?)とか
hParentウインドのスタイルにWS_CLIPCHILDRENは設定されているのか?とか
hParentウインド自身は全画面サイズに引き伸ばされ、且つTopに表示されているの?とか
hParentウインドのWM_ERASEBKGNDをちゃんと無視しているの?とか
put_Ownerするタイミングとか
そういうことが知りたい。
0611592
2007/07/08(日) 22:36:34CreateWindowしたWindowが親です。
>このウインドを仮にhParentとすると、
>hParentウインドに親はいるのか?(or最初からWS_POPUP?)とか
画面切り替え時にWS_POPUPとしています。
>hParentウインドのスタイルにWS_CLIPCHILDRENは設定されているのか?とか
指定していませんでしたが、元々メッセージ処理するつもりではなく、movie再生終了まで
処理停止するプログラムです。
pMediaEvent->WaitForCompletion(15000, &eventCode); // 15秒経過するかmovie再生が停止するまで待つ
また、入れてメッセージ処理をするようにしましたが改善されませんでした。
>hParentウインド自身は全画面サイズに引き伸ばされ、且つTopに表示されているの?とか
はい、全画面でTOPです。
>hParentウインドのWM_ERASEBKGNDをちゃんと無視しているの?とか
これも前に書きましたが入れても改善されませんでした。
>put_Ownerするタイミングとか
基本は>>592のソースですが、put_Visibleの直前まで、1行ずつ移動させても改善しませんでした。
また、その前にはVideoWindowの取得になるので移動できません。
こんな感じてす。何か判りますでしょうか。
0612599
2007/07/08(日) 23:12:43タイミングによってはリフレッシュが先に発生し、あとからビデオレンダラの再描画が行われ、表示される場合もある。
したがって親ウインドがある場合、親ウインドのWM_PAINTの描画処理をクリップして、且つERASEBKGNDをさせなければならない。
WS_CLIPCHILDRENやWM_ERASEBKGNDの処理を確実にしなければ効果がない。
ビデオレンダラの親ウインドにWS_CLIPCHILDRENをいれてみたらどうなる?
もしダメならほかの理由かもね。
0613592
2007/07/08(日) 23:36:52>したがって親ウインドがある場合、親ウインドのWM_PAINTの描画処理をクリップして、且つERASEBKGNDをさせなければならない。
>WS_CLIPCHILDRENやWM_ERASEBKGNDの処理を確実にしなければ効果がない。
WM_PAINTのクリップ、WM_ERASEBKGNDをDefに流さない、WS_CLIPCHILDRENを入れる。
全てやってみたんですが、やはりダメでした。
>ビデオレンダラの親ウインドにWS_CLIPCHILDRENをいれてみたらどうなる?
上でも描きましたが、入れてみても症状は変わらずです。
そもそもWaitForCompletionで、再生終了まで待つ処理でも症状がでるんですよね。
で、再生終了をイベント取得に切り替えて、PAINT処理を切ったりしてもやはり同じくだめでした。
うーん、タイミング問題だとは自分も思うんですが・・・。
もう少し調べてみます。
0614592
2007/07/09(月) 12:22:04すこし原因らしきものが見えましたのでご報告します。
メインWindowの描画にDirect3Dを使用しているんですが、
全画面モードで
メイン画面の描画を一切やらない → 100%ムービー再生に成功
一度だけDirect3Dでサーフェイスのクリア → 表と裏のランダム再生
一度だけDirect3Dでメイン画面を描画 → 表と裏のランダム再生
どうやらDirect3Dのフロントバッファが問題を起こすようです。
引き続き対策を調べて見ます。
0615592
2007/07/09(月) 14:40:31IDIRECT3DDEVICE9のリセットをおこなってから再生するようにした所
うまくいくようになりました。
おさわがせいたしました。
貴重なご意見をいただき、ありがとうございました。
0616デフォルトの名無しさん
2007/07/10(火) 00:26:340617デフォルトの名無しさん
2007/07/10(火) 00:31:050618デフォルトの名無しさん
2007/07/10(火) 10:40:380619デフォルトの名無しさん
2007/07/10(火) 14:01:52と
#include <d3d9.h>
を一緒にするとエラーが出るんです。
順番変えてもエラーでます
対応策ってありますか?
0620デフォルトの名無しさん
2007/07/10(火) 14:16:280621デフォルトの名無しさん
2007/07/10(火) 14:28:13VC2003で
Microsoft DirectX 9.0 SDK Update (December 2004)
だと思います。
#include <d3d9.h>
#include <d3dx9.h>
#include <dshow.h>
#include <qedit.h>
と書くと
c:\DXSDK\Include\d3drmobj.h(46): warning C4005: 'WIN_TYPES' : マクロが再定義されました。
c:\DXSDK\Include\d3drmobj.h(274): error C2061: 構文エラー : 識別子 'LPDIRECT3D'
・・・
等が出ます。
#include <dshow.h>
#include <qedit.h>
#include <d3d9.h>
#include <d3dx9.h>
と書くと
c:\DXSDK\Include\d3dx9math.inl(1924): error C2039: 'm' : 'D3DXMATRIX' のメンバではありません。
c:\DXSDK\Include\d3dx9math.h(310) : 'D3DXMATRIX' の宣言を確認してください。
c:\DXSDK\Include\d3dx9math.inl(769): error C2065: 'm' : 定義されていない識別子です。
c:\DXSDK\Include\d3dx9math.inl(775): error C3861: 'm': 識別子は、引数依存の照合を使用しても見つかりません。
・・・
等が出ます。
0622デフォルトの名無しさん
2007/07/10(火) 14:51:17d3drm〜ってファイル名から明らかだが
qeditがDirectX7を使ってるからだろ?
一つのコンパイルパスにおいて複数のバージョンのDirectXは同居できない。
>>564-565 にズバリな事が書いているような気がするんだが、これは試したの?
0623デフォルトの名無しさん
2007/07/10(火) 14:53:34ちょっと訂正
0625デフォルトの名無しさん
2007/07/10(火) 15:08:210626デフォルトの名無しさん
2007/07/10(火) 16:02:520627デフォルトの名無しさん
2007/07/10(火) 16:42:410628デフォルトの名無しさん
2007/07/10(火) 22:27:39ここ過疎気味だし。
0629デフォルトの名無しさん
2007/07/11(水) 06:48:470630デフォルトの名無しさん
2007/07/11(水) 07:02:280632デフォルトの名無しさん
2007/07/11(水) 23:00:210633デフォルトの名無しさん
2007/07/12(木) 02:13:152つの出力ピンともレンダラと繋いで、オーディオのみのファイルを再生すると、音声が流れません。
スプリッタのビデオ出力ピンを未接続にし、オーディオ出力ピンのみをレンダラと繋ぐと音声は再生されます。
ピンから出力データが無い場合に、そのピンを接続するのはいけないのでしょうか?
何とか、ビデオピンも繋いで、オーディオのみのファイルの再生をしたいのですが、
どうしたらよいでしょう?
0634デフォルトの名無しさん
2007/07/13(金) 02:01:04ドキュメントにはサンプルのTextOutがさもあるように書いてあるんですが
どこにあるかわかりません。
どこにあります?
そのほかのサンプルもなんか無いんですが。。
0635デフォルトの名無しさん
2007/07/13(金) 16:06:440636デフォルトの名無しさん
2007/07/14(土) 00:34:35ちょっくら探してきます。
0637デフォルトの名無しさん
2007/07/15(日) 19:51:580638デフォルトの名無しさん
2007/07/15(日) 19:52:58間違えた。無視して
0639デフォルトの名無しさん
2007/07/15(日) 22:03:200640デフォルトの名無しさん
2007/07/17(火) 18:48:32フィルタをシェアウエアで出したいんだがいいとこある?
0641デフォルトの名無しさん
2007/07/18(水) 00:19:370642デフォルトの名無しさん
2007/07/18(水) 12:24:38>>401の拡張したやつ
顔を検出するやつ
動物体を検知するやつ
あとはサンプルグラバのこったやつ
0643デフォルトの名無しさん
2007/07/18(水) 13:49:330644デフォルトの名無しさん
2007/07/18(水) 22:06:450645デフォルトの名無しさん
2007/07/18(水) 22:32:22BaseClassesをnmakeしようとすると
makefile(53) : fatal error U1083: ターゲット マクロ '' が展開されません。
って出るんだけど・・・。
0646デフォルトの名無しさん
2007/07/19(木) 13:38:03DirectShowのフィルタを自作しなければできないのでしょうか??
0647デフォルトの名無しさん
2007/07/19(木) 22:14:14使った方があとあとシステムにしやすいから作ったら??
0648デフォルトの名無しさん
2007/07/19(木) 22:19:262週間程度時間があればね〜☆
時間なければヘッダを直にバイナリにかく。
0649デフォルトの名無しさん
2007/07/19(木) 22:49:12ド、ド、ドリフの大爆笑〜♪ というところ
ダ、ダ、ダイレク、ダイレクトショウ〜♪ に聞こえるよな
0650デフォルトの名無しさん
2007/07/19(木) 23:12:200651デフォルトの名無しさん
2007/07/20(金) 22:00:270652デフォルトの名無しさん
2007/07/20(金) 22:24:49後動画によっては上下さかさまに気をつけて〜。(たぶん問題ないけど)
0653デフォルトの名無しさん
2007/07/20(金) 22:33:19クソワロタ.うん聞こえる。ダ、ダ、ダイレク、ダイレクショウ〜♪
0654デフォルトの名無しさん
2007/07/22(日) 00:23:160655デフォルトの名無しさん
2007/07/22(日) 02:58:50動画を一律30FPSにするDirectShowのフィルターってどう作ればいいですか?
方法が思い浮かばないので・・・ヒント教えてください
0656デフォルトの名無しさん
2007/07/22(日) 09:48:170657デフォルトの名無しさん
2007/07/22(日) 19:41:180658デフォルトの名無しさん
2007/07/23(月) 00:55:082つの映像入力を何らかの形で合成し
1つの出力として吐き出すフィルタを作成しています。
最終的に、出力ピンに繋がった入力ピンのReceive()に
合成結果であるIMediaSampleを渡せば良いというのはわかるのですが、
映像の同期がうまくとれません。
(同期というかそれぞれの入力から1フレームずつ取得して出力したい)
どのようにすればよいでしょうか?
0659デフォルトの名無しさん
2007/07/23(月) 07:56:533つ以上、チェックがつけばアナタの性格はひん曲がっており、
ネガティブ負け組派遣人生を歩んでいます。
□派遣先正社員の作った糞開発ツールはたとえ腐っててもマンセーして使う
□派遣先の人事権のある社員の意見はたとえ間違っていてもマンセーする
□仕様とは正社員から口伝されるものだ
□耳で聞いた仕様を正確に覚えていないのは自分の責任だ
□昼食は必ず派遣先の社員と行くべきだ
□自分の仕事で問題が発生しても解決するのは派遣の仕事ではない
□派遣先から「いつまでもここで仕事してくださいね(安い金でw)」と言われて嬉しい
□自社で仕事なんてできるわけがない
□派遣労働の問題点の話題が出ると感情剥き出しにして反論する
□派遣労働の問題を指摘する人は嫌いだ
□派遣先には仕事だけでなくプライベートについてもグイグイ引っ張って欲しい
□奢ってくれる派遣先正社員を尊敬する
□自分の月額金額を知らないのは当然だ、単金を聞いてはいけない
□派遣先正社員より自分の生涯収入が低いのは当然だ
□チビは派遣先にかわいがってもらいやすいから派遣には有利だ
0660デフォルトの名無しさん
2007/07/23(月) 21:04:26入力ソースがライブ(プッシュ)だったりする?
0661658
2007/07/24(火) 10:24:31AddSourceFilterでハードディスク上のムービーファイルを扱う場合って
どっちになるんですかね?
プッシュモデルにするかプルモデルにするかは
やっぱりソースフィルタに依存します?
0662デフォルトの名無しさん
2007/07/24(火) 21:32:14ハードディスク上のムービーファイルなら通常プルモデル。
パーサー(スプリッタ)がデータを引っ張り出して後ろに流します。
んで入力2系統あるらしいけど、両方ともハードディスク上のムービーファイルなの?
ファイル形式はなんですかね?
0663デフォルトの名無しさん
2007/07/25(水) 17:12:59AMCap を参考にプログラムを作っています.
OleCreatePropertyFrame() でビデオキャプチャピンのダイアログを表示できますが,
ttp://pukapuka.sakura.ne.jp/cgi-bin/upload/puka/img-box/1185348928740.jpg
上記の 「色空間/圧縮」,「出力サイズ」をダイアログからではなく,プログラム上から制御
したいのですが,どのようにすれば可能でしょうか?
具体的には,これらの値の列挙,現在の値の取得・変更を行いたいと思っています.
参考になるページ等もありましたら御教示下さい.
0664デフォルトの名無しさん
2007/07/25(水) 17:21:17Connect する前にね。
0665663
2007/07/25(水) 21:56:05CComPtr<IAMStreamConfig> pAMStreamConfig;
hr = pCaptureGraphBuilder2->FindInterface(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video,
pVideoDeviceFilter, IID_IAMStreamConfig,
(void **)&pAMStreamConfig);
if( SUCCEEDED(hr) )
{
AM_MEDIA_TYPE* pMediaType;
pAMStreamConfig->GetFormat( &pMediaType ); // 現在の設定を取得
pMediaType->subtype = MEDIASUBTYPE_YUY2;// YUY2 に変更
VIDEOINFOHEADER* pVideoInfoHeader = (VIDEOINFOHEADER*)pMediaType->pbFormat;
pVideoInfoHeader->bmiHeader.biWidth = 640; // 640 wide
pVideoInfoHeader->bmiHeader.biHeight = 480; // 480 height に変更
pAMStreamConfig->SetFormat( pMediaType );//設定を反映
DeleteMediaType( pMediaType );
}
列挙も pAMStreamConfig->GetNumberOfCapabilities() と GetStreamCaps() で実現できそうです.
有難う御座いました.
0666658
2007/07/27(金) 15:52:03>両方ともハードディスク上のムービーファイルなの?
>ファイル形式はなんですかね?
とりあえずは両方ともハードディスク上のもので
ファイル形式はAVIでやってます。
0667デフォルトの名無しさん
2007/07/31(火) 15:19:35ttp://wwwdoi.elec.nara-k.ac.jp/html/jisyu/dxm/ds/index.html
ここのlist702サンプルを実行して、mpgファイルなんかだと問題なく静止画取り込みができるんだけど、
とあるDivX6エンコードのaviファイルで実行すると、GetConnectedMediaType()で取ったAM_MEDIA_TYPEの
pbFormatがNULLになってしまい、ビデオ情報が取れないみたいなんですが一体どういう原因が考えられるんでしょうか。
ファイル自体はMediaPlayerで再生できています。
0668667
2007/07/31(火) 15:46:23DivXファイルだとISampleGrabberCBでのコールバックの指定も無視されてしまうようです。
キャプチャされないように何かロックされてる?
0669デフォルトの名無しさん
2007/07/31(火) 17:13:25あとpbFormat以外のメジャータイプとサブタイプを見たほうがいい。
もしかするとDivX6はパーサーとデコーダがセットで使用されていて、
パーサーとデコーダは互いを知っているのでpbFormatなんか使わないっていう実装かもしれん。
そこにサンプルグラバがパーサーとデコーダの間に挟まれば、ありうる。
0670667
2007/07/31(火) 17:32:37ありがとうございます。
さらに調べてみたら、どうもDivXはRGB24への自動変換をサポートしていなかったり結構中途半端な模様。
で、レンダラまで自前実装してやるとキャプチャできる(SDK付属サンプルのWindowlessなら動く)ようなので、
そっちをベースにした実装にしたいと思います。
0671デフォルトの名無しさん
2007/07/31(火) 20:55:11コマ落ちばっかりです
なんか早くする方法はありませんか?
0672デフォルトの名無しさん
2007/07/31(火) 23:18:450673デフォルトの名無しさん
2007/08/01(水) 22:13:09普通にCで書いて間に合わないんなら、SIMD命令使え。
それでも間に合わないんならPCをパワーアップ。
0674デフォルトの名無しさん
2007/08/01(水) 22:25:010675デフォルトの名無しさん
2007/08/01(水) 22:40:55CTransformFilterの中で今の時間を取得することはできますでしょうか?
シークするとTransformに渡ってくるIMediaSampleのGetTimeやGetMediaTimeの時間が0に戻ってしまって、今の時間がわからなくなってしまいます・・・
それからCTransformFilterから動画の長さ(再生時間の合計)を知る方法ってありますか
0676デフォルトの名無しさん
2007/08/02(木) 09:54:52SYSTEMTIME st;
GetLocalTime( &st );
こんな感じ。
CTransformFilterから動画の長さをとることはできますが、フィルタ設計上
カメラもつなげる想定で作るべきっぽいから書いていいんだろうか
0677デフォルトの名無しさん
2007/08/03(金) 01:26:18教えてください〜
0678デフォルトの名無しさん
2007/08/03(金) 03:13:20それをfpsで割るのが「動画スタートからの時間」を得るのには最適だと
思うよ。変にタイマを使ったりすると動画のレートが変わった時点で
使えなくなっちゃうから。わからんならコードをどっかにうpするよ
んで動画の長さを得るのは、ソースフィルタから変換フィルタに渡してやるような
つくりにするのはどうでしょうか?
0679デフォルトの名無しさん
2007/08/03(金) 19:35:31"シーク可能ストリームでは、メディア タイムは常にストリームの開始タイムから相対的になる。"
とあるからGetMediaTimeはシークしても時間は0にならないみたい。
さっき試してみたけどそうなっていました。
0680デフォルトの名無しさん
2007/08/04(土) 01:05:41ありがとうございます
試してみます
0681デフォルトの名無しさん
2007/08/06(月) 23:28:44手持ちのWebカメラでは0〜100や0〜130といった値が返ってきました。
http://msdn2.microsoft.com/en-us/library/ms779747.aspx
によると、2^0 = 1sec〜2^130secといった、大きな値に相当してしまいますが、
単位はあてにできないのでしょうか?
せめて+1する毎にexposure timeが二倍になってほしいのですが、
何か方法があったら教えてほしいです。
0682デフォルトの名無しさん
2007/08/07(火) 00:48:42露光時間って、写真の撮影で、弱い光でも感光版が感光できるようにシャッタースピードを遅くするとかのあれだよな?
0683デフォルトの名無しさん
2007/08/07(火) 00:54:49pCaptureGraphBuilder2->SetOutputFileName( &MEDIASUBTYPE_Avi , L"test.avi" , &pFileOut , &pSink );
pCaptureGraphBuilder2->RenderStream( &PIN_CATEGORY_CAPTURE , NULL , pDeviceFilter , NULL , pFileOut );
というようなグラフ構築を行ったのですが、何回かテストしてtest.aviを上書きするとき、
上書き前の容量より小さいと、ファイルのプロパティに表示される容量が上書き前のまま
になります。(上書き前より大きいと更新されます)
再生してみると、正しくキャプチャされているのですが、この容量表示の問題はどのように
すれば解消できるでしょうか?
(表示上だけでなく、実際に無駄な容量が付加されているのかも?)
0684デフォルトの名無しさん
2007/08/07(火) 14:30:46DeleteFile
0686デフォルトの名無しさん
2007/08/08(水) 05:39:26削除の場合は実際にエントリが書き換えられるので、サイズを0にするのも有り。
RIFF解析して自前でサイズ調整するのも意外と簡単だよ。一番外側のチャンクだけ計算するだけで済むしな。
0688デフォルトの名無しさん
2007/08/09(木) 07:52:410689デフォルトの名無しさん
2007/08/09(木) 21:37:520690デフォルトの名無しさん
2007/08/09(木) 22:26:35世界中のソフトハウス探せばどっかにあると思う。
0691688
2007/08/09(木) 23:30:48簡単に手に入れられるなら作る必要もないと思ったのですが、作る価値はありそうですね。
やってみます。
ありがとうございました。
0692デフォルトの名無しさん
2007/08/11(土) 10:56:07GraphEditではあるのですが、アプリでインスタンスを作成できません。
CoCreateInstance( CLSID_NullRenderer , NULL , CLSCTX_INPROC_SERVER , IID_IBaseFilter , ( void** )&pNull );
このように書いたところ、ビルド時にCLSID_NullRendererが定義されていない、と言われます。
調べてみると、qedit.hにあるようなので、includeしたところ、今後はdxtrans.hがないと言われました。
でも、このヘッダファイルはPC内にはありませんでした。
どのようにすれば作成できるでしょうか?
0693デフォルトの名無しさん
2007/08/11(土) 13:10:14そのファイル名で検索すると幾つか情報が見つかるんだが・・・
俺のPCにはDirectX SDKの中に普通に入ってた。
つかDirectXSDKとPlatformSDKはいつのを使ってるかくらいは書いたほうがいいと思うぞ。
0694692
2007/08/11(土) 14:06:01Windows SDKのバージョンは最新だと思います。
DirectX SDKはインストールしていませんでした。
最新版のJune 2007を入れたら、それに入っていました。
VC++でインクルードパスを指定したのですが、それでもコンパイルはエラーになります。
エラーの内容は、DirectX SDKのIncludeフォルダにあるd3drmobj.hというファイル内に
構文エラーがある、というものがたくさん。
あと、
To compile qedit.h you must install the DirectX 9 SDK, to obtain the dxtrans.h header.
というエラーメッセージも。
0695デフォルトの名無しさん
2007/08/11(土) 14:31:58必ず発生するというわけではないのですが、高確率で発生します。
スプリッタにflvsplit.dllを使用した時のみこの現象がおきます。
WMPやMPCでは普通にシークできているので、コーディングの問題だと思うのですが...
思い当たる点として、WMPやMPCと違う部分はISampleGrabberを咬ませていることぐらいです。
(シーク時にSetBufferSamples(FALSE)を指定しても変化無しでした)
原因が分かる方はいませんでしょうか。
■ このスレッドは過去ログ倉庫に格納されています