Microsoft DirectX 8.0 |
Microsoft® DirectShow® 編集サービス (DES) でグループのプロパティを設定および取得する。
グループは 1 つ以上のトラックと、場合により 1 つ以上の合成を持ち、トラックは同一タイプ (ビデオまたはオーディオ) のソース クリップを持つ。グループは、タイムラインの最上位の合成であり、また IAMTimelineComp インターフェイスを公開する。タイムラインは、複数のグループを持つことができる。
各グループには以下の属性がある。
要件
Qedit.h が必要である。
vtable 順のメソッド
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IAMTimelineGroup メソッド 説明 SetTimeline サポートされていない。 GetTimeline このグループが所属するタイムラインを取得する。 GetPriority グループの優先順位を取得する。 GetMediaType グループの非圧縮メディア タイプを取得する。 SetMediaType グループの非圧縮メディア タイプを設定する。 SetOutputFPS このグループの非圧縮出力フレーム レートを設定する。 GetOutputFPS このグループの出力フレーム レートを取得する。 SetGroupName アプリケーションが定義するグループの名前を設定する。 GetGroupName アプリケーションが定義するグループの名前を取得する。 SetPreviewMode グループのプレビュー モードを設定する。 GetPreviewMode グループのプレビュー モードを取得する。 SetMediaTypeForVB Automation クライアント用のグループ メディア タイプを指定する。 GetOutputBuffering プレビュー時に先行してレンダリングされるフレーム数を取得する。 SetOutputBuffering プレビュー時に先行してレンダリングされるフレーム数を指定する。 SetSmartRecompressFormat スマート再圧縮で使用される圧縮フォーマットを指定する。 GetSmartRecompressFormat スマート再圧縮の現在の圧縮フォーマットを取得する。 IsSmartRecompressFormatSet グループにスマート圧縮が設定されているかどうかを調べる。 IsRecompressFormatDirty サポートされていない。 ClearRecompressFormatDirty サポートされていない。 SetRecompFormatFromSource ソース ファイルの圧縮フォーマットを使ってビデオ再圧縮フォーマットを設定する。
サポートされていない。
構文
HRESULT ClearRecompressFormatDirty(void);
アプリケーションが定義するグループの名前を取得する。
構文
HRESULT GetGroupName( BSTR *pGroupName );
パラメータ
- pGroupName
- [out, retval] グループの名前を受け取る BSTR 型の変数へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER またはエラーの発生を示すその他の HRESULT 値を返す。
注意
このメソッドは、文字列に必要なメモリを割り当てる。アプリケーションは SysFreeString を呼び出して、メモリを解放しなければならない。
グループの非圧縮メディア タイプを取得する。
構文
HRESULT GetMediaType( AM_MEDIA_TYPE *pmt );
パラメータ
- pmt
- [out] このメディア タイプが設定されている AM_MEDIA_TYPE 構造体へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
プレビュー時に先行してレンダリングされるフレーム数を取得する。
構文
HRESULT GetOutputBuffering( int *pnBuffer );
パラメータ
- pnBuffer
- [out] バッファリングされるフレームの数を受け取る変数へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
このグループの出力フレーム レートを取得する。
構文
HRESULT GetOutputFPS( double *pFPS );
パラメータ
- pFPS
- 出力フレーム レート (毎秒のフレーム数) を受け取る変数へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
グループのプレビュー モードを取得する。
構文
HRESULT GetPreviewMode( BOOL *pfPreview );
パラメータ
- pfPreview
- プレビュー モードを示すブール値を受け取る変数へのポインタ。TRUE の場合、グループはプレビュー モードである。FALSE の場合、グループはオーサリング モードである。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
注意
プレビュー モードでは、ビデオとオーディオの同期を維持するために、時間のかかるエフェクトまたはトランジションではフレーム落ちが生じる。そのため、ビデオの動きがぎこちなくなることがある。オーサリング モードでは、すべてのフレームがレンダリングされる。オーサリング モードはファイルへの書き込みに適している。オーサリング モードで画面にプレビューを行うと、ビデオとオーディオの同期がくずれることがある。
グループの優先順位を取得する。
構文
HRESULT GetPriority( long *pPriority );
パラメータ
- pPriority
- グループの優先順位を受け取る変数へのポインタ。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
スマート再圧縮の現在の圧縮フォーマットを取得する。
構文
HRESULT GetSmartRecompressFormat( long **ppFormat );
パラメータ
- ppFormat
- SCompFmt0 構造体へのポインタを受け取る変数のアドレス。long へのポインタにキャストされる。このメソッドが失敗すると、値は NULL に設定される。
戻り値
HRESULT 値を返す。可能な値は次のとおりである。
S_OK 成功。 E_OUTOFMEMORY メモリ不足。 E_POINTER NULL ポインタ引数。
注意
アプリケーションで (SetSmartRecompressFormat を呼び出すことによって) スマート圧縮フォーマットを設定していない場合、このメソッドで返されるフォーマットは無効である。圧縮フォーマットが設定されているかどうかは、IsSmartRecompressFormatSet メソッドを呼び出して調べる。
メソッドが成功した場合、呼び出し元は返されたメディア タイプを解放し、SCompFmt0 構造体を削除しなければならない。
if (pFormat) { FreeMediaType(pFormat->MediaType); delete pFormat; }
このグループが所属するタイムラインを取得する。
構文
HRESULT GetTimeline( IAMTimeline **ppTimeline );
パラメータ
- ppTimeline
- [out] タイムラインの IAMTimeline インターフェイスを受け取るポインタのアドレス。グループがタイムラインの一部でない場合、値は NULL に設定される。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
注意
ppTimeline に返された値が NULL 以外の場合、IAMTimeline インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。
サポートされていない。
構文
HRESULT IsRecompressFormatDirty( BOOL *pVal );
グループにスマート再圧縮が設定されているかどうかを調べる。
構文
HRESULT IsSmartRecompressFormatSet( BOOL *pVal );
パラメータ
- pVal
- 圧縮フォーマットが設定されているかどうかを示すブール値を受け取る変数へのポインタ。TRUE の場合、圧縮フォーマットは設定されている。
戻り値
成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。
アプリケーションが定義するグループの名前を設定する。
構文
HRESULT SetGroupName( BSTR pGroupName );
パラメータ
- pGroupName
- グループの名前を指定する BSTR。
戻り値
S_OK を返す。
グループの非圧縮メディア タイプを設定する。
構文
HRESULT SetMediaType( AM_MEDIA_TYPE *pmt );
パラメータ
- pmt
- [out] フォーマットを記述する AM_MEDIA_TYPE 構造体へのポインタ。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER NULL ポインタ引数。 VFW_E_INVALIDMEDIATYPE 指定されたメディア タイプは無効である。
注意
現在、以下のメディア タイプがサポートされている。
- 非圧縮 RGB ビデオ
- 16 ビット/ピクセル、555 フォーマット
- 24 ビット/ピクセル
- 32 ビット/ピクセル
- 16 ビット ステレオ PCM オーディオ
グループの圧縮フォーマットを指定するには、SetSmartRecompressFormat メソッドを呼び出す。
Automation クライアント用のグループ メディア タイプを指定する。
構文
HRESULT SetMediaTypeForVB( long Val );
パラメータ
- Val
- [in] メディア タイプを指定する値。ビデオの場合は値を 0 に設定し、オーディオの場合は 1 に設定する。
戻り値
S_OK を返す。
注意
このメソッドは、Automation クライアント用のものである。C++ アプリケーション用には、SetMediaType メソッドを使用する。
プレビュー時に先行してレンダリングされるフレーム数を指定する。
構文
HRESULT SetOutputBuffering( int nBuffer );
パラメータ
- nBuffer
- [in] プレビュー時にバッファリングされるフレーム数。2 以上でなければならない。
戻り値
成功した場合は S_OK、それ以外の場合は E_INVALIDARG を返す。
注意
バッファが大きくなれば、必要なメモリ量も大きくなるが、プレビューはよりスムースになる。特に、レンダリングに時間がかかるエフェクトまたはトランジションで、それが顕著である。デフォルトのバッファは 30 フレームである。
このグループの非圧縮出力フレーム レートを設定する。
構文
HRESULT SetOutputFPS( double FPS );
パラメータ
- FPS
- このグループの出力フレーム レート (毎秒のフレーム数)。この値は、ゼロと等しくすることはできず、小数点以下 8 桁以上とすることはできない。
戻り値
成功した場合は S_OK、それ以外の場合は E_INVALIDARG を返す。
注意
このグループからレンダリングされた出力は、指定されたフレーム レートで実行され、ソース素材上のすべての編集は、フレーム レートによって定義される最も近いフレーム境界に丸められる。
SetSmartRecompressFormat メソッドは、フレーム レートをオーバーライドする。
グループのプレビュー モードを設定する。
構文
HRESULT SetPreviewMode( BOOL fPreview );
パラメータ
- fPreview
- プレビュー モードを指定するブール値。TRUE の場合、グループはプレビュー モードである。FALSE の場合、グループはオーサリング モードである。
戻り値
S_OK を返す。
注意
プレビュー モードでは、ビデオとオーディオの同期を維持するために、時間のかかるエフェクトまたはトランジションではフレーム落ちが生じる。そのため、ビデオの動きがぎこちなくなることがある。オーサリング モードでは、すべてのフレームがレンダリングされる。オーサリング モードはファイルへの書き込みに適している。オーサリング モードで画面にプレビューを行うと、ビデオとオーディオの同期がくずれることがある。
ソース ファイルの圧縮フォーマットを使ってビデオ再圧縮フォーマットを設定する。
構文
HRESULT SetRecompFormatFromSource( IAMTimelineSrc *pSource );
パラメータ
- pSource
- ソース オブジェクトの IAMTimelineSrc インターフェイスへのポインタ。
戻り値
HRESULT 値を返す。可能な値は次のとおりである。
S_OK 成功。 E_NO_TIMELINE グループはタイムライン内にない。 E_OUTOFMEMORY メモリ不足。 E_POINTER NULL ポインタ引数。 VFW_E_INVALIDMEDIATYPE 無効なメディア タイプ。グループがビデオ グループでないか、またはソース ファイルにビデオ ストリームがない。
注意
このメソッドは、pSource に関連付けられたソース ファイルを探し、ファイルの最初のビデオ ストリームのメディア タイプを取得する。次に、そのタイプを使ってグループの圧縮フォーマットを設定する。圧縮フォーマットの詳細については、「SetSmartRecompressFormat」を参照すること。
スマート再圧縮で使用される圧縮フォーマットを指定する。
スマート再圧縮は、オーディオ グループに対してはサポートされない。
構文
HRESULT SetSmartRecompressFormat( long *pFormat );
パラメータ
- pFormat
- 圧縮フォーマットを記述する構造体へのポインタ。現在は、SCompFmt0 構造体のみが有効である。このパラメータは、long 型のポインタにキャストしなければならない。
戻り値
次のいずれかの HRESULT 値を返す。
S_OK 成功。 E_POINTER NULL ポインタ引数。 E_INVALIDARG 無効な引数。
注意
このメソッドを呼び出して非圧縮フォーマットを指定する前に、同じグループの SetMediaType メソッドを呼び出す。圧縮フォーマットと非圧縮フォーマットは、幅、高さ、およびフレーム レートが同じでなければならない。これらの値が一致していない場合、グループの出力ピンは、圧縮出力ではなく、非圧縮出力を生成する。
このメソッドは、SetOutputFPS メソッドを使って設定されたフレーム レート値をオーバーライドする。
スマート再圧縮フォーマットは、持続的ではない。アプリケーションでスマート再圧縮を使用する場合、プロジェクト ファイルをロードするときに必ず再圧縮フォーマットを設定しなければならない。
サポートされていない。代わりに IAMTimeline::AddGroup メソッドを呼び出す。
構文
HRESULT SetTimeline( IAMTimeline *pTimeline );