Microsoft DirectX 8.0

IAMTimelineGroup インターフェイス

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グループのプレビュー モードを取得する。
SetMediaTypeForVBAutomation クライアント用のグループ メディア タイプを指定する。
GetOutputBufferingプレビュー時に先行してレンダリングされるフレーム数を取得する。
SetOutputBufferingプレビュー時に先行してレンダリングされるフレーム数を指定する。
SetSmartRecompressFormatスマート再圧縮で使用される圧縮フォーマットを指定する。
GetSmartRecompressFormatスマート再圧縮の現在の圧縮フォーマットを取得する。
IsSmartRecompressFormatSetグループにスマート圧縮が設定されているかどうかを調べる。
IsRecompressFormatDirtyサポートされていない。
ClearRecompressFormatDirtyサポートされていない。
SetRecompFormatFromSourceソース ファイルの圧縮フォーマットを使ってビデオ再圧縮フォーマットを設定する。

IAMTimelineGroup::ClearRecompressFormatDirty

IAMTimelineGroup インターフェイス

サポートされていない。

構文

HRESULT ClearRecompressFormatDirty(void);

IAMTimelineGroup::GetGroupName

IAMTimelineGroup Interface

アプリケーションが定義するグループの名前を取得する。

構文

HRESULT GetGroupName(
    BSTR *pGroupName
);

パラメータ

pGroupName
[out, retval] グループの名前を受け取る BSTR 型の変数へのポインタ。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER またはエラーの発生を示すその他の HRESULT 値を返す。

注意

このメソッドは、文字列に必要なメモリを割り当てる。アプリケーションは SysFreeString を呼び出して、メモリを解放しなければならない。

IAMTimelineGroup::GetMediaType

IAMTimelineGroup インターフェイス

グループの非圧縮メディア タイプを取得する。

構文

HRESULT GetMediaType(
    AM_MEDIA_TYPE *pmt
);

パラメータ

pmt
[out] このメディア タイプが設定されている AM_MEDIA_TYPE 構造体へのポインタ。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。

IAMTimelineGroup::GetOutputBuffering

IAMTimelineGroup インターフェイス

プレビュー時に先行してレンダリングされるフレーム数を取得する。

構文

HRESULT GetOutputBuffering(
    int *pnBuffer
);

パラメータ

pnBuffer
[out] バッファリングされるフレームの数を受け取る変数へのポインタ。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。

IAMTimelineGroup::GetOutputFPS

IAMTimelineGroup インターフェイス

このグループの出力フレーム レートを取得する。

構文

HRESULT GetOutputFPS(
    double *pFPS
);

パラメータ

pFPS
出力フレーム レート (毎秒のフレーム数) を受け取る変数へのポインタ。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。

IAMTimelineGroup::GetPreviewMode

IAMTimelineGroup インターフェイス

グループのプレビュー モードを取得する。

構文

HRESULT GetPreviewMode(
    BOOL *pfPreview
);

パラメータ

pfPreview
プレビュー モードを示すブール値を受け取る変数へのポインタ。TRUE の場合、グループはプレビュー モードである。FALSE の場合、グループはオーサリング モードである。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。

注意

プレビュー モードでは、ビデオとオーディオの同期を維持するために、時間のかかるエフェクトまたはトランジションではフレーム落ちが生じる。そのため、ビデオの動きがぎこちなくなることがある。オーサリング モードでは、すべてのフレームがレンダリングされる。オーサリング モードはファイルへの書き込みに適している。オーサリング モードで画面にプレビューを行うと、ビデオとオーディオの同期がくずれることがある。

IAMTimelineGroup::GetPriority

IAMTimelineGroup インターフェイス

グループの優先順位を取得する。

構文

HRESULT GetPriority(
    long *pPriority
);

パラメータ

pPriority
グループの優先順位を受け取る変数へのポインタ。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。

IAMTimelineGroup::GetSmartRecompressFormat

IAMTimelineGroup インターフェイス

スマート再圧縮の現在の圧縮フォーマットを取得する。

構文

HRESULT GetSmartRecompressFormat(
   long **ppFormat
);

パラメータ

ppFormat
SCompFmt0 構造体へのポインタを受け取る変数のアドレス。long へのポインタにキャストされる。このメソッドが失敗すると、値は NULL に設定される。

戻り値

HRESULT 値を返す。可能な値は次のとおりである。
S_OK成功。
E_OUTOFMEMORYメモリ不足。
E_POINTERNULL ポインタ引数。

注意

アプリケーションで (SetSmartRecompressFormat を呼び出すことによって) スマート圧縮フォーマットを設定していない場合、このメソッドで返されるフォーマットは無効である。圧縮フォーマットが設定されているかどうかは、IsSmartRecompressFormatSet メソッドを呼び出して調べる。

メソッドが成功した場合、呼び出し元は返されたメディア タイプを解放し、SCompFmt0 構造体を削除しなければならない。

if (pFormat) {
    FreeMediaType(pFormat->MediaType);
    delete pFormat;
}

IAMTimelineGroup::GetTimeline

IAMTimelineGroup インターフェイス

このグループが所属するタイムラインを取得する。

構文

HRESULT GetTimeline(
    IAMTimeline **ppTimeline
);

パラメータ

ppTimeline
[out] タイムラインの IAMTimeline インターフェイスを受け取るポインタのアドレス。グループがタイムラインの一部でない場合、値は NULL に設定される。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。

注意

ppTimeline に返された値が NULL 以外の場合、IAMTimeline インターフェイスは未処理の参照カウントを持つ。使い終わった場合は、インターフェイスを必ず解放すること。

IAMTimelineGroup::IsRecompressFormatDirty

IAMTimelineGroup インターフェイス

サポートされていない。

構文

HRESULT IsRecompressFormatDirty(
    BOOL *pVal
);

IAMTimelineGroup::IsSmartRecompressFormatSet

IAMTimelineGroup インターフェイス

グループにスマート再圧縮が設定されているかどうかを調べる。

構文

HRESULT IsSmartRecompressFormatSet(
    BOOL *pVal
);

パラメータ

pVal
圧縮フォーマットが設定されているかどうかを示すブール値を受け取る変数へのポインタ。TRUE の場合、圧縮フォーマットは設定されている。

戻り値

成功した場合は、S_OK を返す。それ以外の場合は、E_POINTER を返す。

IAMTimelineGroup::SetGroupName

IAMTimelineGroup インターフェイス

アプリケーションが定義するグループの名前を設定する。

構文

HRESULT SetGroupName(
    BSTR pGroupName
);

パラメータ

pGroupName
グループの名前を指定する BSTR。

戻り値

S_OK を返す。

IAMTimelineGroup::SetMediaType

IAMTimelineGroup インターフェイス

グループの非圧縮メディア タイプを設定する。

構文

HRESULT SetMediaType(
    AM_MEDIA_TYPE *pmt
);

パラメータ

pmt
[out] フォーマットを記述する AM_MEDIA_TYPE 構造体へのポインタ。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_POINTERNULL ポインタ引数。
VFW_E_INVALIDMEDIATYPE指定されたメディア タイプは無効である。

注意

現在、以下のメディア タイプがサポートされている。

グループの圧縮フォーマットを指定するには、SetSmartRecompressFormat メソッドを呼び出す。

IAMTimelineGroup::SetMediaTypeForVB

IAMTimelineGroup インターフェイス

Automation クライアント用のグループ メディア タイプを指定する。

構文

HRESULT SetMediaTypeForVB(
    long Val
);

パラメータ

Val
[in] メディア タイプを指定する値。ビデオの場合は値を 0 に設定し、オーディオの場合は 1 に設定する。

戻り値

S_OK を返す。

注意

このメソッドは、Automation クライアント用のものである。C++ アプリケーション用には、SetMediaType メソッドを使用する。

IAMTimelineGroup::SetOutputBuffering

IAMTimelineGroup インターフェイス

プレビュー時に先行してレンダリングされるフレーム数を指定する。

構文

HRESULT SetOutputBuffering(
    int nBuffer
);

パラメータ

nBuffer
[in] プレビュー時にバッファリングされるフレーム数。2 以上でなければならない。

戻り値

成功した場合は S_OK、それ以外の場合は E_INVALIDARG を返す。

注意

バッファが大きくなれば、必要なメモリ量も大きくなるが、プレビューはよりスムースになる。特に、レンダリングに時間がかかるエフェクトまたはトランジションで、それが顕著である。デフォルトのバッファは 30 フレームである。

IAMTimelineGroup::SetOutputFPS

IAMTimelineGroup インターフェイス

このグループの非圧縮出力フレーム レートを設定する。

構文

HRESULT SetOutputFPS(
    double FPS
);

パラメータ

FPS
このグループの出力フレーム レート (毎秒のフレーム数)。この値は、ゼロと等しくすることはできず、小数点以下 8 桁以上とすることはできない。

戻り値

成功した場合は S_OK、それ以外の場合は E_INVALIDARG を返す。

注意

このグループからレンダリングされた出力は、指定されたフレーム レートで実行され、ソース素材上のすべての編集は、フレーム レートによって定義される最も近いフレーム境界に丸められる。

SetSmartRecompressFormat メソッドは、フレーム レートをオーバーライドする。

IAMTimelineGroup::SetPreviewMode

IAMTimelineGroup インターフェイス

グループのプレビュー モードを設定する。

構文

HRESULT SetPreviewMode(
    BOOL fPreview
);

パラメータ

fPreview
プレビュー モードを指定するブール値。TRUE の場合、グループはプレビュー モードである。FALSE の場合、グループはオーサリング モードである。

戻り値

S_OK を返す。

注意

プレビュー モードでは、ビデオとオーディオの同期を維持するために、時間のかかるエフェクトまたはトランジションではフレーム落ちが生じる。そのため、ビデオの動きがぎこちなくなることがある。オーサリング モードでは、すべてのフレームがレンダリングされる。オーサリング モードはファイルへの書き込みに適している。オーサリング モードで画面にプレビューを行うと、ビデオとオーディオの同期がくずれることがある。

IAMTimelineGroup::SetRecompFormatFromSource

IAMTimelineGroup インターフェイス

ソース ファイルの圧縮フォーマットを使ってビデオ再圧縮フォーマットを設定する。

構文

HRESULT SetRecompFormatFromSource( 
    IAMTimelineSrc *pSource 
);

パラメータ

pSource
ソース オブジェクトの IAMTimelineSrc インターフェイスへのポインタ。

戻り値

HRESULT 値を返す。可能な値は次のとおりである。

S_OK成功。
E_NO_TIMELINEグループはタイムライン内にない。
E_OUTOFMEMORYメモリ不足。
E_POINTERNULL ポインタ引数。
VFW_E_INVALIDMEDIATYPE無効なメディア タイプ。グループがビデオ グループでないか、またはソース ファイルにビデオ ストリームがない。

注意

このメソッドは、pSource に関連付けられたソース ファイルを探し、ファイルの最初のビデオ ストリームのメディア タイプを取得する。次に、そのタイプを使ってグループの圧縮フォーマットを設定する。圧縮フォーマットの詳細については、「SetSmartRecompressFormat」を参照すること。

IAMTimelineGroup::SetSmartRecompressFormat

IAMTimelineGroup インターフェイス

スマート再圧縮で使用される圧縮フォーマットを指定する。

スマート再圧縮は、オーディオ グループに対してはサポートされない。

構文

HRESULT SetSmartRecompressFormat(
    long *pFormat
);

パラメータ

pFormat
圧縮フォーマットを記述する構造体へのポインタ。現在は、SCompFmt0 構造体のみが有効である。このパラメータは、long 型のポインタにキャストしなければならない。

戻り値

次のいずれかの HRESULT 値を返す。

S_OK成功。
E_POINTERNULL ポインタ引数。
E_INVALIDARG無効な引数。

注意

このメソッドを呼び出して非圧縮フォーマットを指定する前に、同じグループの SetMediaType メソッドを呼び出す。圧縮フォーマットと非圧縮フォーマットは、幅、高さ、およびフレーム レートが同じでなければならない。これらの値が一致していない場合、グループの出力ピンは、圧縮出力ではなく、非圧縮出力を生成する。

このメソッドは、SetOutputFPS メソッドを使って設定されたフレーム レート値をオーバーライドする。

スマート再圧縮フォーマットは、持続的ではない。アプリケーションでスマート再圧縮を使用する場合、プロジェクト ファイルをロードするときに必ず再圧縮フォーマットを設定しなければならない。

IAMTimelineGroup::SetTimeline

IAMTimelineGroup インターフェイス

サポートされていない。代わりに IAMTimeline::AddGroup メソッドを呼び出す。

構文

HRESULT SetTimeline(
    IAMTimeline *pTimeline
);