IAMLine21Decoder Interface


The IAMLine21Decoder interface provides access to closed-captioned information and settings. Closed-captioned information is transmitted in the vertical blanking interval (VBI) of television signals, specifically on line 21 (Line21) of field 1 in the VBI. Video cassette recorders record this information on video tape, and you can use Microsoft® DirectShow™ filters to capture the Line21 data and save it on disk in a media file format such as audio-video interleaved (AVI). The closed-captioned information appears as a separate stream within the media file.

Closed-captioned text is currently used mainly in digital versatile disc (DVD) movies. DVD movies contain Line21 data as part of the user data section of each Group of Pictures (GOP) in the video stream. In the future, new capture cards with Windows Driver Model (WDM) drivers will provide Line21 data.

When to Implement

Note: DirectShow will provide this implementation post-beta 2.

Do not implement this interface. DirectShow provides the Line 21 Decoder, which implements it for you.

When to Use

Applications use this interface when they want to provide closed-captioned text, primarily to turn closed-captioned capabilities on and off. Use this interface in your application or in the filter immediately downstream of the Line21 Decoder filter (typically a mixer filter) to change closed-captioned options, such as the output video's size and whether to make the caption background opaque or transparent. Mixer filters can also change the physical color used for the background color key.

Applications can call the GetDrawBackgroundMode and SetDrawBackgroundMode methods so the user can select transparent or opaque captioning.

Methods in Vtable Order
IUnknown methods Description
QueryInterface Retrieves pointers to supported interfaces.
AddRef Increments the reference count.
Release Decrements the reference count.
IAMLine21Decoder methods Description
GetDecoderLevel Retrieves the closed-captioned decoder level.
GetCurrentService Retrieves the current closed captioning service selected by the user.
SetCurrentService Sets the current closed captioning service.
GetServiceState Retrieves the closed captioning service state (on or off).
SetServiceState Sets the closed captioning service state.
GetOutputFormat Retrieves information about output video characteristics such as size and bit depth.
SetOutputFormat Sets information that describes output video characteristics such as size and bit depth.
GetBackgroundColor Retrieves the physical color to use as background for overlays.
SetBackgroundColor Sets the physical color to use as background for overlays.
GetRedrawAlways Retrieves whether the renderer should redraw the whole output bitmap for each sample.
SetRedrawAlways Sets whether the renderer should redraw the whole output bitmap for each sample.
GetDrawBackgroundMode Retrieves whether the caption text background should be opaque or transparent.
SetDrawBackgroundMode Sets whether to make the caption text background opaque or transparent.


IAMLine21Decoder::GetBackgroundColor

IAMLine21Decoder Interface

Retrieves the physical color to use as background for overlays.


HRESULT GetBackgroundColor(
  DWORD *pdwPhysColor
  );

Parameters
pdwPhysColor
Pointer to the retrieved DWORD value.
Return Values

Returns an HRESULT value that depends on the implementation of the interface. The current DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to indicate success.

Remarks

Magenta is the default background color.

See Also

IAMLine21Decoder::SetBackgroundColor


IAMLine21Decoder::GetCurrentService

IAMLine21Decoder Interface

Retrieves the current closed captioning service selected by the user.


HRESULT GetCurrentService(
  AM_LINE21_CCSERVICE *lpService
  );

Parameters
lpService
Pointer to the current service. This value is a member of the AM_LINE21_CCSERVICE enumerated data type. The default service is AM_L21_CCSERVICE_Caption1.
Return Values

Returns an HRESULT value that depends on the implementation of the interface. The current DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to indicate success.

See Also

IAMLine21Decoder::SetCurrentService


IAMLine21Decoder::GetDecoderLevel

IAMLine21Decoder Interface

Retrieves the closed-captioned decoder level.


HRESULT GetDecoderLevel(
  AM_LINE21_CCLEVEL *lpLevel
  );

Parameters
lpLevel
Pointer to the retrieved decoder level. AM_L21_CCLEVEL_TC2 (TC2) is the only supported operating channel level and is an enhanced and backward-compatible version of the original TC1 level.
Return Values

Returns an HRESULT value that depends on the implementation of the interface. The current DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to indicate success.

Remarks

This method is for informational purposes only.

TC1 and TC2 are television set decoder levels that represent whether the television can handle some closed-captioned byte pairs and produce the desired captioning results. The Line21 Decoder is capable of TC2 level decoding, which includes all TC1 decoding. Only the first 100,000 television sets manufactured that included closed-captioned capability were TC1 compliant; the later TV sets are TC2 compliant.


IAMLine21Decoder::GetDrawBackgroundMode

IAMLine21Decoder Interface

Retrieves whether the caption text background should be opaque or transparent.


HRESULT GetDrawBackgroundMode(
  AM_LINE21_DRAWBGMODE *lpMode
  );

Parameters
lpMode
Retrieved mode. Supported mode values are AM_L21_DRAWBGMODE_Opaque and AM_L21_DRAWBGMODE_Transparent.
Return Values

Returns an HRESULT value that depends on the implementation of the interface. The current DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to indicate success.

Remarks

By default, the caption background is opaque.

See Also

IAMLine21Decoder::SetDrawBackgroundMode


IAMLine21Decoder::GetOutputFormat

IAMLine21Decoder Interface

Retrieves information about output video characteristics such as size and bit depth.


HRESULT GetOutputFormat(
  LPBITMAPINFOHEADER lpbmih
  );

Parameters
lpbmih
Pointer to the retrieved BITMAPINFOHEADER structure.
Return Values

Returns an HRESULT value that depends on the implementation of the interface.

If successful, the default implementation returns S_FALSE if downstream filters haven't defined an output format, or S_OK if an output format has been defined.

Remarks

The default video output size is 320 × 240 pixels.

See Also

IAMLine21Decoder::SetOutputFormat


IAMLine21Decoder::GetRedrawAlways

IAMLine21Decoder Interface

Retrieves whether the renderer should redraw the whole output bitmap for each sample.


HRESULT GetRedrawAlways(
  LPBOOL lpbOption
  );

Parameters
lpbOption
Pointer to a value indicating whether the whole bitmap should be redrawn; FALSE by default, indicating don't always redraw. TRUE means always redraw.
Return Values

Returns an HRESULT value that depends on the implementation of the interface. The current DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to indicate success.

See Also

IAMLine21Decoder::SetRedrawAlways


IAMLine21Decoder::GetServiceState

IAMLine21Decoder Interface

Retrieves the closed captioning service state (on or off).


HRESULT GetServiceState(
  AM_LINE21_CCSTATE *lpState
  );

Parameters
lpState
Pointer to the retrieved state. Supported state values are AM_L21_CCSTATE_On and AM_L21_CCSTATE_Off. Closed-captioned text is off by default.
Return Values

Returns an HRESULT value that depends on the implementation of the interface. The current DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to indicate success.

See Also

IAMLine21Decoder::SetServiceState


IAMLine21Decoder::SetBackgroundColor

IAMLine21Decoder Interface

Sets the physical color to use as background for overlays.


HRESULT SetBackgroundColor(
  DWORD dwPhysColor
  );

Parameters
dwPhysColor
DWORD value that specifies the physical background color.
Return Values

Returns an HRESULT value that depends on the implementation of the interface. The current DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to indicate success.

Remarks

Magenta is the default background color.

See Also

IAMLine21Decoder::GetBackgroundColor


IAMLine21Decoder::SetCurrentService

IAMLine21Decoder Interface

Sets the current closed captioning service.


HRESULT SetCurrentService(
  AM_LINE21_CCSERVICE Service
  );

Parameters
Service
Specified service. This value is a member of the AM_LINE21_CCSERVICE enumerated data type. The default service is AM_L21_CCSERVICE_Caption1.
Return Values

Returns an HRESULT value that depends on the implementation of the interface. The current DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to indicate success.

See Also

IAMLine21Decoder::GetCurrentService


IAMLine21Decoder::SetDrawBackgroundMode

IAMLine21Decoder Interface

Sets whether to make the caption text background opaque or transparent.


HRESULT SetDrawBackgroundMode(
  AM_LINE21_DRAWBGMODE Mode
  );

Parameters
Mode
Mode to set. Supported mode values are AM_L21_DRAWBGMODE_Opaque and AM_L21_DRAWBGMODE_Transparent.
Return Values

Returns an HRESULT value that depends on the implementation of the interface. The current DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to indicate success.

Remarks

By default, the caption background is opaque.

See Also

IAMLine21Decoder::GetDrawBackgroundMode


IAMLine21Decoder::SetOutputFormat

IAMLine21Decoder Interface

Sets information that describes output video characteristics such as size and bit depth.


HRESULT SetOutputFormat(
  LPBITMAPINFO lpbmi
  );

Parameters
lpbmi
Pointer to the specified BITMAPINFO structure containing the desired output format.
Return Values

Returns an HRESULT value that depends on the implementation of the interface.

Remarks

The default video output size is 320 × 240 pixels.

See Also

IAMLine21Decoder::GetOutputFormat


IAMLine21Decoder::SetRedrawAlways

IAMLine21Decoder Interface

Sets whether the renderer should redraw the whole output bitmap for each sample.


HRESULT SetRedrawAlways(
  BOOL bOption
  );

Parameters
bOption
Value indicating whether the whole bitmap should be redrawn. TRUE indicates redraw always, FALSE means do not redraw always.
Return Values

Returns an HRESULT value that depends on the implementation of the interface. The current DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to indicate success.

Remarks

Call this method from your filter if it dirties the buffer that it provides to the Line21 Decoder filter. Typically, a mixer filter resides in the filter graph directly downstream from the Line21 Decoder filter. The mixer filter should call this method and set bOption to TRUE to ensure the entire bitmap is redrawn properly.

A downstream mixer (or any filter that needs to do so) should only call this method with bOption set to TRUE if it provides the same buffer to the Line21 decoder as it uses to mix secondary video streams(s).

Redrawing (setting bOption to TRUE) degrades performance and increases CPU load, because it negates any potential optimizations.

See Also

IAMLine21Decoder::GetRedrawAlways


IAMLine21Decoder::SetServiceState

IAMLine21Decoder Interface

Sets the closed captioning service state.


HRESULT SetServiceState(
  AM_LINE21_CCSTATE State
  );

Parameters
State
Specified state. Supported state values are AM_L21_CCSTATE_On and AM_L21_CCSTATE_Off. Closed-captioned text is off by default.
Return Values

Returns an HRESULT value that depends on the implementation of the interface. The current DirectShow implementation returns E_INVALIDARG if a parameter is invalid or NOERROR to indicate success.

See Also

IAMLine21Decoder::GetServiceState

© 1997 Microsoft Corporation. All rights reserved. Terms of Use.