IIsdbSiParser2
COM公式ドキュメント
Integrated Services Digital Broadcast (ISDB) トランスポートストリームから program specific information (PSI) テーブルおよびサービス情報テーブルを取得するメソッドを実装します。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
Integrated Services Digital Broadcast (ISDB) トランスポートストリームから service description table (SDT) を取得します。SDT は、MPEG-2 トランスポートストリーム内のサービスの名前やその他のパラメーターを列挙します。
| tableId | BYTE | in | 取得するテーブルの種類を示すテーブル識別子。SDT の場合、この値は実際のトランスポートストリームでは 0x42、別のストリームでは 0x46 です。 |
| pwTransportStreamId | WORD* | inoptional | transport_stream_id フィールドへのポインター。このフィールド値は、SDT を含むトランスポートストリームを一意に識別します。 |
| ppSDT | IISDB_SDT** | out | IISDB_SDT インターフェイスへのポインターを受け取ります。このインターフェイスを使用してテーブル内の情報を取得します。 呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
Integrated Services Digital Broadcasting (ISDB) トランスポートストリームから broadcaster information table (BIT) を取得します。BIT には、ブロードキャスター単位と、各ブロードキャスター単位のサービス情報伝送パラメーターが含まれます。
| tableId | BYTE | in | 取得するテーブルの種類を示すテーブル識別子。BIT の場合、この値は 0xC4 です。 |
| pwOriginalNetworkId | WORD* | inoptional | BIT の original_network_id フィールドへのポインター。このフィールドには、MPEG-2 トランスポートストリームを送出するブロードキャスターの識別子が含まれます。 |
| ppBIT | IISDB_BIT** | out | IISDB_BIT インターフェイスへのポインターを受け取ります。このインターフェイスを使用してテーブル内の情報を取得します。 呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
Integrated Services Digital Broadcast (ISDB) トランスポートストリームから network board information table (NBIT) を取得します。NBIT は、多重化されたトランスポートストリームに含まれる番組を記述します。
| tableId | BYTE | in | 取得するテーブルの種類を示すテーブル識別子。NBIT の場合、テーブルが network board information 本体を含むときはこの値は 0xC5、network board information を取得するための参照情報を含むときは 0xC6 です。 |
| pwOriginalNetworkId | WORD* | inoptional | NBIT の original_network_id フィールドへのポインター。このフィールドには、MPEG-2 トランスポートストリームを送出するブロードキャスターの識別子が含まれます。 |
| ppNBIT | IISDB_NBIT** | out | IISDB_NBIT インターフェイスへのポインターを受け取ります。このインターフェイスを使用してテーブル内の情報を取得します。 呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
Integrated Services Digital Broadcast (ISDB) トランスポートストリームから linked description table (LDT) を取得します。LDT には、他のテーブルから参照情報を収集するために使用されるデータが含まれます。
| tableId | BYTE | in | 取得するテーブルの種類を示すテーブル識別子。LDT の場合、この値は 0xC7 です。 |
| pwOriginalServiceId | WORD* | inoptional | LDT の original_service_id フィールドへのポインター。このフィールドには、このトランスポートストリームのサービスの識別子が含まれます。 |
| ppLDT | IISDB_LDT** | out | IISDB_LDT インターフェイスへのポインターを受け取ります。このインターフェイスを使用してテーブル内の情報を取得します。 呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
Integrated Services Digital Broadcast (ISDB) トランスポートストリームから software download trigger table (SDTT) を取得します。SDTT には、サービス識別子、スケジュール、更新対象の受信機種別などのダウンロード情報が含まれます。
| tableId | BYTE | in | 取得するテーブルの種類を示すテーブル識別子。SDTT の場合、この値は 0xC34 です。 |
| pwTableIdExt | WORD* | inoptional | SDTT の table_id_extension フィールドの値。このフィールド値は、SDTT の特定のインスタンスを識別します。 |
| ppSDTT | IISDB_SDTT** | out | IISDB_SDTT インターフェイスへのポインターを受け取ります。このインターフェイスを使用してテーブル内の情報を取得します。 呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
Integrated Services Digital Broadcasting (ISDB) トランスポートストリームから common data table (CDT) を取得します。CDT には、受信機に必要で不揮発性メモリに保存されるデータ(企業ロゴなど)が含まれます。
| tableId | BYTE | in | 取得するテーブルの種類を示すテーブル識別子。CDT の場合、この値は 0xC8 です。 |
| bSectionNumber | BYTE | in | CDT の section_number フィールドの値を指定します。 |
| pwDownloadDataId | WORD* | inoptional | CDT の download_data_id フィールド値へのポインター。 |
| ppCDT | IISDB_CDT** | out | IISDB_CDT インターフェイスへのポインターを受け取ります。このインターフェイスを使用してテーブル内の情報を取得します。 呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
Integrated Services Digital Broadcast (ISDB) トランスポートストリームから entitlement management message (EMM) テーブルを取得します。
| pid | WORD | in | EMM を伝送するトランスポートストリームパケットの packet identifier (PID) を指定します。 |
| wTableIdExt | WORD | in | EMM の table_id フィールドの値。このフィールド値は、EMM 内のサブテーブルを識別します。 |
| ppEMM | IISDB_EMM** | out | IISDB_EMM インターフェイスへのポインターを受け取ります。このインターフェイスを使用してテーブル内の情報を取得します。 呼び出し元はインターフェイスを解放する必要があります。 |
戻り値
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IIsdbSiParser2 "{900E4BB7-18CD-453F-98BE-3BE6AA211772}" #usecom global IIsdbSiParser2 IID_IIsdbSiParser2 "{}" #comfunc global IIsdbSiParser2_GetSDT 19 int,var,sptr #comfunc global IIsdbSiParser2_GetBIT 20 int,var,sptr #comfunc global IIsdbSiParser2_GetNBIT 21 int,var,sptr #comfunc global IIsdbSiParser2_GetLDT 22 int,var,sptr #comfunc global IIsdbSiParser2_GetSDTT 23 int,var,sptr #comfunc global IIsdbSiParser2_GetCDT 24 int,int,var,sptr #comfunc global IIsdbSiParser2_GetEMM 25 int,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IIsdbSiParser2 "{900E4BB7-18CD-453F-98BE-3BE6AA211772}" #usecom global IIsdbSiParser2 IID_IIsdbSiParser2 "{}" #comfunc global IIsdbSiParser2_GetSDT 19 int,sptr,sptr #comfunc global IIsdbSiParser2_GetBIT 20 int,sptr,sptr #comfunc global IIsdbSiParser2_GetNBIT 21 int,sptr,sptr #comfunc global IIsdbSiParser2_GetLDT 22 int,sptr,sptr #comfunc global IIsdbSiParser2_GetSDTT 23 int,sptr,sptr #comfunc global IIsdbSiParser2_GetCDT 24 int,int,sptr,sptr #comfunc global IIsdbSiParser2_GetEMM 25 int,int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。