Microsoft DirectX 8.0

IAMLine21Decoder インターフェイス

IAMLine21Decoder インターフェイスは、Line 21 デコーダ フィルタで実装される。このインターフェイスは、クローズド キャプション情報やその設定にアクセスする機能を備えており、主に、アプリケーションがクローズド キャプションの表示をオンまたはオフにするときに使用される。

クローズド キャプション情報は、テレビジョン信号の垂直同期間隔 (VBI) 内のフィールド 1 の Line 21 上で転送される。ビデオ カセット レコーダはこの情報をビデオ テープに記録するので、Line 21 デコーダ フィルタおよびその他の Microsoft® DirectShow® フィルタを使用することで、Line 21 データをキャプチャし、これを AVI (Audio-Video Interleaved) などのメディア ファイル フォーマットでディスクに保存できる。クローズド キャプション情報は、メディア ファイル内で別のストリームとして表示される。

クローズド キャプション テキストは、現在、DVD ムービーに加えてテレビの生放送番組でも使用されている。DVD ムービーの場合は、ビデオ ストリーム内の各 GOP (Group of Pictures) のユーザー データ セクションの一部として、Line 21 データを格納する。WDM (Windows Driver Model) ドライバを備えたテレビジョン レシーバ カードが、Line 21 データを提供する。

アプリケーションが GetDrawBackgroundMode メソッドと SetDrawBackgroundMode メソッドを呼び出すことによって、ユーザーは半透明なクローズド キャプション表示または不透明なクローズド キャプション表示を選択できる。

要件

Il21dec.h が必要である。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterface サポートされているインターフェイスへのポインタを取得する。
AddRef 参照カウントをインクリメントする。
Release 参照カウントをデクリメントする。
IAMLine21Decoder メソッド説明
GetDecoderLevel クローズド キャプション デコーダ レベルを取得する。
GetCurrentService ユーザーによって選択されている現在のクローズド キャプション サービスを取得する。
SetCurrentService 現在のクローズド キャプション サービスを設定する。
GetServiceState クローズド キャプション サービスの状態 (オンまたはオフ) を取得する。
SetServiceState クローズド キャプション サービスの状態を設定する。
GetOutputFormat サイズやビット深度などの出力ビデオ特性に関する情報を取得する。
SetOutputFormat DirectShow Line 21 デコーダ フィルタでは実装されない。サイズやビット深度などの出力ビデオ特性に関する情報を設定する。
GetBackgroundColor オーバーレイのバックグラウンドとして使用する物理的な色を取得する。
SetBackgroundColor オーバーレイのバックグラウンドとして使用する物理的な色を設定する。
GetRedrawAlways レンダラが、各サンプルの出力ビットマップ全体を再描画するかどうかを取得する。
SetRedrawAlways レンダラが、各サンプルの出力ビットマップ全体を再描画することを設定する。
GetDrawBackgroundMode クローズド キャプション テキストの背景が不透明または透明かどうかを取得する。
SetDrawBackgroundMode クローズド キャプション テキストの背景を不透明または透明に設定する。

IAMLine21Decoder::GetBackgroundColor

IAMLine21Decoder インターフェイス

オーバーレイのバックグラウンドとして使用する物理的な色を取得する。

構文

HRESULT GetBackgroundColor(
    DWORD *pdwPhysColor
);

パラメータ

pdwPhysColor
バックグラウンド カラーを示す取得値へのポインタ。カラー値は DWORD 型で、ビット単位の OR で結んだ RGB 3 原色で構成される。各カラー コンポーネントのビット数は、現在のビット深度によって異なる。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。現在の DirectShow の実装では、パラメータが無効な場合は E_INVALIDARG、または成功を示す NOERROR を返す。

注意

デフォルトのバックグラウンド カラーはマジェンタである。

参照

IAMLine21Decoder::SetBackgroundColor

IAMLine21Decoder::GetCurrentService

IAMLine21Decoder インターフェイス

ユーザーによって選択されている現在のクローズド キャプション サービスを取得する。

構文

HRESULT GetCurrentService(
    AM_LINE21_CCSERVICE *lpService
);

パラメータ

lpService
現在のサービスへのポインタ。この値は、AM_LINE21_CCSERVICE 列挙型のメンバである。デフォルト サービスは AM_L21_CCSERVICE_Caption1 である。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。現在の DirectShow の実装では、パラメータが無効な場合は E_INVALIDARG、または成功を示す NOERROR を返す。

参照

IAMLine21Decoder::SetCurrentService

IAMLine21Decoder::GetDecoderLevel

IAMLine21Decoder インターフェイス

クローズド キャプション デコーダ レベルを取得する。

構文

HRESULT GetDecoderLevel(
    AM_LINE21_CCLEVEL *lpLevel
);

パラメータ

lpLevel
取得されるデコーダ レベルへのポインタ。AM_L21_CCLEVEL_TC2 (TC2) のみがチャンネル レベルとしてサポートされている。これは、元の TC1 レベルを拡張したもので、後方互換性を備えている。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。現在の DirectShow の実装では、パラメータが無効な場合は E_INVALIDARG、または成功を示す NOERROR を返す。

注意

このメソッドは、情報の参照専用である。

TC1 および TC2 はテレビジョン セットのデコーダ レベルで、テレビジョンがクローズド キャプションのバイト ペアを処理して目的のクローズド キャプションを出力できるかどうかを表す。Line 21 デコーダは TC2 レベルのデコード機能を備えており、これにはすべての TC1 デコード機能が含まれる。クローズド キャプション表示機能が組み込まれて製造されたテレビジョン セットのうち、最初の 100,000 台は TC1 準拠であった。以降の TV セットは TC2 準拠である。

IAMLine21Decoder::GetDrawBackgroundMode

IAMLine21Decoder インターフェイス

クローズド キャプション テキストのバックグラウンドが不透明または透明であるかどうかを取得する。

構文

HRESULT GetDrawBackgroundMode(
    AM_LINE21_DRAWBGMODE *lpMode
);

パラメータ

lpMode
取得されるモードへのポインタ。モードは AM_L21_DRAWBGMODE_Opaque または AM_L21_DRAWBGMODE_Transparent である。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。現在の DirectShow の実装では、パラメータが無効な場合は E_INVALIDARG、または成功を示す NOERROR を返す。

注意

デフォルトでは、クローズド キャプションのバックグラウンドは不透明である。

参照

IAMLine21Decoder::SetDrawBackgroundMode

IAMLine21Decoder::GetOutputFormat

IAMLine21Decoder インターフェイス

サイズやビット深度などの出力ビデオ特性に関する情報を取得する。

構文

HRESULT GetOutputFormat(
    LPBITMAPINFOHEADER lpbmih
);

パラメータ

lpbmih
取得される BITMAPINFOHEADER 構造体へのポインタ。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。

成功の場合、デフォルトの実装では、ダウンストリーム フィルタが出力フォーマットを定義していなければ S_FALSE、出力フォーマットが定義されていれば S_OK を返す。

注意

デフォルトのビデオ出力サイズは 320 × 240 ピクセルである。

IAMLine21Decoder::GetRedrawAlways

IAMLine21Decoder インターフェイス

レンダラが各サンプルの出力ビットマップ全体を再描画するかどうかを取得する。

構文

HRESULT GetRedrawAlways(
    LPBOOL lpbOption
);

パラメータ

lpbOption
ビットマップ全体が再描画されるかどうかを示す値。デフォルト値は FALSE で、常に再描画されるとは限らないことを表す。TRUE は常に再描画されることを表す。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。現在の DirectShow の実装では、パラメータが無効な場合は E_INVALIDARG、または成功を示す NOERROR を返す。

参照

IAMLine21Decoder::SetRedrawAlways

IAMLine21Decoder::GetServiceState

IAMLine21Decoder インターフェイス

クローズド キャプション サービスの状態 (オンまたはオフ) を取得する。

構文

HRESULT GetServiceState(
    AM_LINE21_CCSTATE *lpState
);

パラメータ

lpState
取得される状態へのポインタ。サポートされる状態値は AM_L21_CCSTATE_On および AM_L21_CCSTATE_Off である。デフォルトでは、クローズド キャプション テキストはオフである。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。現在の DirectShow の実装では、パラメータが無効な場合は E_INVALIDARG、または成功を示す NOERROR を返す。

参照

IAMLine21Decoder::SetServiceState

IAMLine21Decoder::SetBackgroundColor

IAMLine21Decoder インターフェイス

オーバーレイのバックグラウンドとして使用する物理的な色を設定する。

構文

HRESULT SetBackgroundColor(
    DWORD dwPhysColor
);

パラメータ

dwPhysColor
物理的なバックグラウンド カラーを指定する DWORD 値。色は、ビット単位の OR で結んだ RGB 3 原色で指定される。各カラー コンポーネントのビット数は、現在のビット深度によって異なる。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。現在の DirectShow の実装では、パラメータが無効な場合は E_INVALIDARG、または成功を示す NOERROR を返す。

注意

デフォルトのバックグラウンド カラーはマジェンタである。

参照

IAMLine21Decoder::GetBackgroundColor

IAMLine21Decoder::SetCurrentService

IAMLine21Decoder インターフェイス

現在のクローズド キャプション サービスを設定する。

構文

HRESULT SetCurrentService(
    AM_LINE21_CCSERVICE Service
);

パラメータ

Service
設定するサービス。この値は、AM_LINE21_CCSERVICE 列挙型のメンバである。デフォルト サービスは AM_L21_CCSERVICE_Caption1 である。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。現在の DirectShow の実装では、パラメータが無効な場合は E_INVALIDARG、または成功を示す NOERROR を返す。

参照

IAMLine21Decoder::GetCurrentService

IAMLine21Decoder::SetDrawBackgroundMode

IAMLine21Decoder インターフェイス

クローズド キャプション テキストのバックグラウンドを不透明または透明に設定する。

構文

HRESULT SetDrawBackgroundMode(
    AM_LINE21_DRAWBGMODE Mode
);

パラメータ

Mode
設定するモード。サポートされるモードの値は、AM_L21_DRAWBGMODE_Opaque および AM_L21_DRAWBGMODE_Transparent である。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。現在の DirectShow の実装では、パラメータが無効な場合は E_INVALIDARG、または成功を示す NOERROR を返す。

注意

デフォルトでは、クローズド キャプションのバックグラウンドは不透明である。

参照

IAMLine21Decoder::GetDrawBackgroundMode

IAMLine21Decoder::SetOutputFormat

IAMLine21Decoder インターフェイス このメソッドは、DirectShow® Line 21 デコーダ フィルタでは実装されない。サイズやビット深度などの出力ビデオ特性に関する情報を設定する。

構文

HRESULT SetOutputFormat(
    LPBITMAPINFO lpbmi
);

パラメータ

lpbmi
目的の出力フォーマットを格納している指定の BITMAPINFO 構造体へのポインタ。

戻り値

DirectShow Line 21 デコーダ フィルタが実装しているインターフェイスの場合は、E_NOTIMPL を返す。

注意

デフォルトのビデオ出力サイズは 320 × 240 ピクセルである。

参照

IAMLine21Decoder::GetOutputFormat

IAMLine21Decoder::SetRedrawAlways

IAMLine21Decoder インターフェイス

レンダラが各サンプルの出力ビットマップ全体を再描画するかどうかを設定する。

構文

HRESULT SetRedrawAlways(
    BOOL bOption
);

パラメータ

bOption
ビットマップ全体を再描画するかどうかを示す値。TRUE は常に再描画することを表し、FALSE は常に再描画するとは限らないことを表す。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。現在の DirectShow の実装では、パラメータが無効な場合は E_INVALIDARG、または成功を示す NOERROR を返す。

注意

フィルタが、Line 21 デコーダ フィルタに送るバッファをダーティーな状態にしてしまった場合は、フィルタからこのメソッドを呼び出す。通常、ミキサー フィルタは、Line 21 デコーダ フィルタから直接ダウンストリームしているフィルタ グラフの中にある。ミキサー フィルタは、このメソッドを呼び出し、bOption に TRUE を指定して、ビットマップ全体が正しく再描画されることを指定する必要がある。

ダウンストリーム ミキサー、またはその処理が必要な任意のミキサーは、セカンダリ ビデオ ストリームをミックスするときに使用するバッファと同じバッファを、Line 21 デコーダに提供する場合のみ、bOption に TRUE を指定してこのメソッドを呼び出す必要がある。

bOption に TRUE を指定して再描画を行うと、可能な最適化が無効になるので、パフォーマンスは低下し、CPU の負荷は増加する。

参照

IAMLine21Decoder::GetRedrawAlways

IAMLine21Decoder::SetServiceState

IAMLine21Decoder インターフェイス

クローズド キャプション サービスの状態を設定する。

構文

HRESULT SetServiceState(
    AM_LINE21_CCSTATE State
);

パラメータ

State
指定する状態。サポートされる状態値は、AM_L21_CCSTATE_On および AM_L21_CCSTATE_Off である。クローズド キャプション テキストは、デフォルトではオフである。

戻り値

インターフェイスの実装に応じた HRESULT 値を返す。現在の DirectShow の実装では、パラメータが無効な場合は E_INVALIDARG、または成功を示す NOERROR を返す。

参照

IAMLine21Decoder::GetServiceState