dsc_Open

指定されたインデックスのデバイスをオープンします

dsc_Open p1,p2,p3,p4,p5

p1	: デバイスのインデックス( 1 ~)
p2	: 使用するビデオレンダラーモード
p3	:(予約引数) 常に0を代入
p4	: レンダラーモード(数値) -> 『VMR7,9(1 or 2)』 のとき
          AVIファイル名(文字列) -> 『AVI保存モード(300 or 301)』のとき
          それ以外のモードのときは 0 を代入
p5	: オープンするピンの数(数値) -> 『VMR7,9(1 or 2)』 のとき
          コーデック名(文字列) -> 『AVI保存モード(300 or 301)』のとき
          それ以外のモードのときは 0 を代入

(プラグイン / モジュール : hspdsc.dll)

解説

インデックス は 0 から始まります。 ( p1 )
利用可能なデバイスの数を超えた数値の場合は、stat に -1 が返ります。
この命令ではデバイスをオープンするだけですので実際に表示されません。
表示するには dsc_Play 命令を実行する必要があります。

p2 には 使用するビデオレンダラー・モードを指定できます。

   0 = VideoRenderer
   1 = VMR7
   2 = VMR9
   6 = NullRenderer(表示なし)
 300 = AVIファイルに保存(プレビューなし)
 301 = AVIファイルに保存(プレビューあり)

VMR7はWindows XP以降、 VMR9 はDirectX9以降が入っていないと使えません。
どのPCでも利用できるのはVideo Rendererになります。

Intel(R) 82815 Graphics Controller などの古いグラフィックチップは
VMR7やVMR9が正しく機能しません。(場合によってはブルースクリーンになる。)
色数を16bitに下げるとうまく動くこともあるようです。
また一部NVIDIA社製グラフィックボード、NeoMagic 社製シリーズで再生できないものもあります。
システムエラー(1)になる場合 グラフィックボードを疑った方がよいです。

VMR7とVMR9の場合、ffdshowが入っている環境下だと強制終了する問題があります。
ffdshowの設定画面で該当プロセスを呼び出さないよう設定してください。


■ p2 に 1 = VMR7, 2 = VMR9 を指定している場合は、 p4, p5 には以下の値を入れてください。
 
VMR7 や VMR9 を利用する際は、p4, p5 に 通常は 1 を代入します。

 [p4]

 1 	= ウィンドウモード
 2 	= ウィンドウレスモード
 4 	= レンダーレスモード

 [p5]

 0	= ミキシング不使用
 1	= ミキシング使用

2以上を設定しても使用できません。

■ p2 に 300 or 301 (AVIファイル保存モード)を指定している場合は、 p4 , p5 には以下の値を入れてく

ださい。

 [p4]

  p4 = 保存するAVIファイル名(文字列)
 
 [p5]

  p5 = コーデック名(文字列) or 0(数値)

コーデック名の一覧は dsc_GetCodecList 命令で取得できます。
完全一致しないとエラー -49 が返ってきます。
無圧縮にする場合は 0 を指定します。 

 例:プレビューありで、HogeHogeというコーデックを使用

  dsc_Open 0, 301, 0, "test.avi", "HogeHoge"

 例:プレビューなしで、無圧縮で保存

  dsc_Open 0, 300, 0, "test.avi", 0


また、システムに利用可能なデバイスがない場合は stat に -3 が返ります。
正常終了時には stat に 0 が返ります。 

dsc_Open エラーコード一覧

  1 = カメラの解像度・フレームレートの設定に失敗したので、デフォルトの値で動作中(続行可能なエラー)
  0 = エラーなし 
 -1 = 未初期化(dsc_Init)
 -2 = 使用中
 -3 = 利用可能なデバイスが見つからない
 -4 = デバイスが見つからない
 -5 = 読み取りエラー
 -6 = 引数に問題があります

 -30= FilterGraph の生成に失敗(CoCreateInstance)
 -31= SampleGrabberFilter の生成に失敗(CoCreateInstance)
 -32= ISampleGrabber インターフェース取得失敗(QueryInterface)
 -33= メディアタイプの指定に失敗(SetMediaType)
 -34= Sample Grabber フィルタの挿入に失敗(AddFilter)
 -35= CaptureGraphBuilder2 の生成に失敗(CoCreateInstance)
 -36= FilterGraph のセットに失敗 (SetFiltergraph)
 -37= MediaControl インターフェース取得失敗(QueryInterface)
 -38= CreateDevEnum の生成に失敗(CoCreateInstance)
 -39= Video Renderer の生成に失敗(CoCreateInstance)
 -40= VideoMixingRenderer の生成に失敗(CoCreateInstance)
 -41= IVMRFilterConfig インターフェース取得失敗(QueryInterface)
 -42= VideoMixingRenderer9 の生成に失敗(CoCreateInstance)
 -43= IVMRFilterConfig9 インターフェース取得失敗(QueryInterface)
 -44= NullRenderer の生成に失敗(CoCreateInstance)
 -45= ファイル名の指定に失敗(SetOutputFileName)
 -46= AVIMUX グラフの追加に失敗(ICaptureGraphBuilder2::RenderStream)
 -47= CreateDevEnum の生成に失敗(CoCreateInstance)
 -48= 有効な VideoCompressorCategory が見つからない
 -49= 指定されたコーデックが見つかりません
 -50= ファイル名の指定に失敗(SetOutputFileName)
 -51= AVIMUX グラフの追加に失敗(ICaptureGraphBuilder2::RenderStream)
 -52= (AVI300) NullRenderer の生成に失敗(CoCreateInstance)
 -53= (AVI300) NullRenderer フィルタの挿入に失敗(AddFilter)
 -54= (AVI300) AVIMUX グラフの追加に失敗(ICaptureGraphBuilder2::RenderStream)
 -55= (AVI301) AVIMUX グラフの追加に失敗(ICaptureGraphBuilder2::RenderStream)
 -56= NR グラフの追加に失敗(ICaptureGraphBuilder2::RenderStream)
 -57= カメラの解像度・フレームレートの設定失敗(致命的なエラー)
 -58= IVideoWindow インターフェース取得失敗(QueryInterface)
 -59= NR レンダラフィルタ追加に失敗
 -76= VR グラフの追加に失敗(ICaptureGraphBuilder2::RenderStream)
 -79= VR レンダラフィルタ追加に失敗
 -86= VMR7 グラフの追加に失敗(ICaptureGraphBuilder2::RenderStream)
 -87= VMR7 レンダリングモード設定失敗 (IVMRFilterConfig::SetRenderingMode)
 -88= VMR7 ピンの設定失敗 (IVMRFilterConfig::SetNumberOfStreams)
 -89= VMR7 レンダラフィルタ追加に失敗(IGraphBuilder::AddFilter)
 -96= VMR9 グラフの追加に失敗
 -97= VMR9 レンダリングモード設定失敗 
 -98= VMR9 ピンの設定失敗 
 -99= VMR9 レンダラフィルタ追加に失敗

関連項目

dsc_InitHSPDSCを初期化します(hspdsc.dll)
dsc_Playdsc_Open で 指定されたデバイスを表示します(hspdsc.dll)
dsc_Play2dsc_Open で 指定されたデバイスを表示します(hspdsc.dll)
dsc_Closedsc_Open で 指定されたデバイスをクローズします(hspdsc.dll)
dsc_FilterPropデバイスなどのプロパティページを表示します(hspdsc.dll)
dsc_DevPinPropデバイスの解像度プロパティページを表示します。(hspdsc.dll)
dsc_GetDeviceListキャプチャデバイスの一覧を取得(hspdsc.dll)

サンプル逆引き (6)

(HSP3) sample1 [BasicSample].hsp
(HSP3) sample2 [AllCapture].hsp
(HSP3) sample3 [VideoMixing].hsp
(HSP3) sample4 [MonoCapture].hsp
(HSP3) sample5 [AVISave].hsp
(HSP3) sample6 [DeviceCapacity].hsp

情報

プラグイン / モジュールhspdsc.dll
バージョン2.12
作成日2014/09/15
著作者イノビア(inovia)
URLhttps://hsp.moe/
備考HSP向け DirectShow キャプチャプラグイン
hspdsc.asをインクルード
グループDirectShowキャプチャ命令
対応環境
  • その他 : Windows Vista 以降、DirectX 10以上
移植のヒントWindows
hs ファイルhsphelp\hspdsc.hs