SECTION 構造体
SECTION 構造体は MPEG-2 テーブル セクションのショート ヘッダーを表す。
構文
typedef struct {
TID TableId;
union
{
MPEG_HEADER_BITS_MIDL S;
WORD W;
} Header;
BYTE SectionData[1];
} SECTION, *PSECTION;
メンバ
TableId
セクションのテーブル識別子 (TID) を指定する。
Header.S
ヘッダー ビットを MPEG_HEADER_BITS_MIDL 構造体として格納する。アプリケーションは、この代わりに Header.W フィールドを使用するべきである。
Header.W
ヘッダー ビットを WORD 型として格納する。個々のビット フィールドを取得するには、このメンバを MPEG_HEADER_BITS 構造体に強制する。
SectionData
セクション データをバイト配列として格納する。配列の長さは Header.W.SectionLength フィールドで指定する。
注意
この構造体は MPEG-2 ショート ヘッダーを表す。このセクションには、ショート ヘッダーを拡張するロング ヘッダーまたは DSM-CC ヘッダーが格納されている場合がある。
- Header.W.SectionSyntaxIndicator ビットが設定されている場合、セクションは長い構文を使用する。この場合、SECTION ポインタを LONG_SECTION ポインタにキャストできる。
- TID が DSM-CC のユーザーからネットワークへのメッセージ (0x3B) またはダウンロード データ メッセージ (0x3C) を示している場合、セクションは DSM-CC ヘッダー構文を使用する。この場合、SECTION ポインタを DSMCC_SECTION ポインタにキャストできる。
次のコードは、Header メンバ内のビット フィールドにアクセスする方法を示している。
SECTION *pSection; // セクション データを指す。
// Header フィールドを MPEG_HEADER_BITS 型に強制する。
MPEG_HEADER_BITS *pHeader = (MPEG_HEADER_BITS*)&pSection->Header.W;
// ここで pHeader ポインタを使用してビット フィールドにアクセスする。
WORD SectionLength = pHeader->SectionLength;
参照