mirror of
https://gitlab.winehq.org/wine/wine.git
synced 2025-08-28 10:13:55 +02:00
238 lines
6.4 KiB
Text
238 lines
6.4 KiB
Text
/*
|
|
* Copyright (C) 2025 Biswapriyo Nath
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
import "oaidl.idl";
|
|
import "ocidl.idl";
|
|
import "bdaiface.idl";
|
|
import "mpeg2structs.idl";
|
|
|
|
interface ISectionList;
|
|
interface IMpeg2Stream;
|
|
|
|
cpp_quote("#define MPEG_PAT_PID 0x0000")
|
|
cpp_quote("#define MPEG_PAT_TID 0x00")
|
|
cpp_quote("#define MPEG_CAT_PID 0x0001")
|
|
cpp_quote("#define MPEG_CAT_TID 0x01")
|
|
cpp_quote("#define MPEG_PMT_TID 0x02")
|
|
cpp_quote("#define MPEG_TSDT_PID 0x0002")
|
|
cpp_quote("#define MPEG_TSDT_TID 0x03")
|
|
cpp_quote("#define ATSC_MGT_PID 0x1ffb")
|
|
cpp_quote("#define ATSC_MGT_TID 0xc7")
|
|
cpp_quote("#define ATSC_VCT_PID 0x1ffb")
|
|
cpp_quote("#define ATSC_VCT_TERR_TID 0xc8")
|
|
cpp_quote("#define ATSC_VCT_CABL_TID 0xc9")
|
|
cpp_quote("#define ATSC_EIT_TID 0xcb")
|
|
cpp_quote("#define ATSC_ETT_TID 0xcc")
|
|
cpp_quote("#define ATSC_RRT_TID 0xca")
|
|
cpp_quote("#define ATSC_RRT_PID 0x1ffb")
|
|
cpp_quote("#define ATSC_STT_PID 0x1ffb")
|
|
cpp_quote("#define ATSC_STT_TID 0xcd")
|
|
cpp_quote("#define ATSC_PIT_TID 0xd0")
|
|
cpp_quote("#define DVB_NIT_PID 0x0010")
|
|
cpp_quote("#define DVB_NIT_ACTUAL_TID 0x40")
|
|
cpp_quote("#define DVB_NIT_OTHER_TID 0x41")
|
|
cpp_quote("#define DVB_SDT_PID 0x0011")
|
|
cpp_quote("#define DVB_SDT_ACTUAL_TID 0x42")
|
|
cpp_quote("#define DVB_SDT_OTHER_TID 0x46")
|
|
cpp_quote("#define DVB_BAT_PID 0x0011")
|
|
cpp_quote("#define DVB_BAT_TID 0x4a")
|
|
cpp_quote("#define DVB_EIT_PID 0x0012")
|
|
cpp_quote("#define DVB_EIT_ACTUAL_TID 0x4e")
|
|
cpp_quote("#define DVB_EIT_OTHER_TID 0x4f")
|
|
cpp_quote("#define DVB_RST_PID 0x0013")
|
|
cpp_quote("#define DVB_RST_TID 0x71")
|
|
cpp_quote("#define DVB_TDT_PID 0x0014")
|
|
cpp_quote("#define DVB_TDT_TID 0x70")
|
|
cpp_quote("#define DVB_ST_PID_16 0x0010")
|
|
cpp_quote("#define DVB_ST_PID_17 0x0011")
|
|
cpp_quote("#define DVB_ST_PID_18 0x0012")
|
|
cpp_quote("#define DVB_ST_PID_19 0x0013")
|
|
cpp_quote("#define DVB_ST_PID_20 0x0014")
|
|
cpp_quote("#define DVB_ST_TID 0x72")
|
|
cpp_quote("#define ISDB_ST_TID 0x72")
|
|
cpp_quote("#define DVB_TOT_PID 0x0014")
|
|
cpp_quote("#define DVB_TOT_TID 0x73")
|
|
cpp_quote("#define DVB_DIT_PID 0x001e")
|
|
cpp_quote("#define DVB_DIT_TID 0x7e")
|
|
cpp_quote("#define DVB_SIT_PID 0x001f")
|
|
cpp_quote("#define DVB_SIT_TID 0x7f")
|
|
cpp_quote("#define ISDB_EMM_TID 0x85")
|
|
cpp_quote("#define ISDB_BIT_PID 0x0024")
|
|
cpp_quote("#define ISDB_BIT_TID 0xc4")
|
|
cpp_quote("#define ISDB_NBIT_PID 0x0025")
|
|
cpp_quote("#define ISDB_NBIT_MSG_TID 0xc5")
|
|
cpp_quote("#define ISDB_NBIT_REF_TID 0xc6")
|
|
cpp_quote("#define ISDB_LDT_PID 0x0025")
|
|
cpp_quote("#define ISDB_LDT_TID 0xc7")
|
|
cpp_quote("#define ISDB_SDTT_PID 0x0023")
|
|
cpp_quote("#define ISDB_SDTT_ALT_PID 0x0028")
|
|
cpp_quote("#define ISDB_SDTT_TID 0xc3")
|
|
cpp_quote("#define ISDB_CDT_PID 0x0029")
|
|
cpp_quote("#define ISDB_CDT_TID 0xc8")
|
|
cpp_quote("#define SCTE_EAS_TID 0xd8")
|
|
cpp_quote("#define SCTE_EAS_IB_PID 0x1ffb")
|
|
cpp_quote("#define SCTE_EAS_OOB_PID 0x1ffc")
|
|
|
|
[
|
|
object,
|
|
uuid(bdcdd913-9ecd-4fb2-81ae-adf747ea75a5),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMpeg2TableFilter : IUnknown
|
|
{
|
|
HRESULT AddPID(PID p);
|
|
HRESULT AddTable(PID p, TID t);
|
|
HRESULT AddExtension(PID p, TID t, TEID e);
|
|
HRESULT RemovePID(PID p);
|
|
HRESULT RemoveTable(PID p, TID t);
|
|
HRESULT RemoveExtension(PID p, TID t, TEID e);
|
|
}
|
|
|
|
[
|
|
uuid(752845f1-758f-4c83-a043-4270c593308e)
|
|
]
|
|
coclass Mpeg2TableFilter
|
|
{
|
|
[default] interface IMpeg2TableFilter;
|
|
}
|
|
|
|
typedef struct Mpeg2TableSampleHdr
|
|
{
|
|
BYTE SectionCount;
|
|
BYTE Reserved[3];
|
|
long SectionOffsets[];
|
|
} Mpeg2TableSampleHdr;
|
|
|
|
[
|
|
uuid(dbaf6c1b-b6a4-4898-ae65-204f0d9509a1),
|
|
version(1.0)
|
|
]
|
|
library Mpeg2DataLib
|
|
{
|
|
importlib("stdole32.tlb");
|
|
importlib("stdole2.tlb");
|
|
|
|
[
|
|
object,
|
|
uuid(9b396d40-f380-4e3c-a514-1a82bf6ebfe6),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMpeg2Data : IUnknown
|
|
{
|
|
HRESULT GetSection(
|
|
[in] PID pid,
|
|
[in] TID tid,
|
|
[in] PMPEG2_FILTER filter,
|
|
[in] DWORD timeout,
|
|
[out] ISectionList **section_list);
|
|
|
|
HRESULT GetTable(
|
|
[in] PID pid,
|
|
[in] TID tid,
|
|
[in] PMPEG2_FILTER filter,
|
|
[in] DWORD timeout,
|
|
[out] ISectionList **section_list);
|
|
|
|
HRESULT GetStreamOfSections(
|
|
[in] PID pid,
|
|
[in] TID tid,
|
|
[in] PMPEG2_FILTER filter,
|
|
[in] HANDLE data_ready_event,
|
|
[out] IMpeg2Stream **mpeg_stream);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(afec1eb5-2a64-46c6-bf4b-ae3ccb6afdb0),
|
|
pointer_default(unique)
|
|
]
|
|
interface ISectionList : IUnknown
|
|
{
|
|
HRESULT Initialize(
|
|
[in] MPEG_REQUEST_TYPE request_type,
|
|
[in] IMpeg2Data *mpeg2_data,
|
|
[in] PMPEG_CONTEXT context,
|
|
[in] PID pid,
|
|
[in] TID tid,
|
|
[in] PMPEG2_FILTER filter,
|
|
[in] DWORD timeout,
|
|
[in] HANDLE done_event);
|
|
|
|
HRESULT InitializeWithRawSections(
|
|
[in] PMPEG_PACKET_LIST mpl_sections);
|
|
|
|
HRESULT CancelPendingRequest(void);
|
|
|
|
HRESULT GetNumberOfSections(
|
|
[out] WORD *count);
|
|
|
|
HRESULT GetSectionData(
|
|
[in] WORD section_number,
|
|
[out] DWORD *raw_packet_length,
|
|
[out] PSECTION *section);
|
|
|
|
HRESULT GetProgramIdentifier(PID *pid);
|
|
|
|
HRESULT GetTableIdentifier(TID *tid);
|
|
}
|
|
|
|
[
|
|
object,
|
|
uuid(400cc286-32a0-4ce4-9041-39571125a635),
|
|
pointer_default(unique)
|
|
]
|
|
interface IMpeg2Stream : IUnknown
|
|
{
|
|
HRESULT Initialize(
|
|
[in] MPEG_REQUEST_TYPE request_type,
|
|
[in] IMpeg2Data *mpeg2_data,
|
|
[in] PMPEG_CONTEXT context,
|
|
[in] PID pid,
|
|
[in] TID tid,
|
|
[in] PMPEG2_FILTER filter,
|
|
[in] HANDLE data_ready_event);
|
|
|
|
HRESULT SupplyDataBuffer(
|
|
[in] PMPEG_STREAM_BUFFER stream_buffer);
|
|
}
|
|
|
|
[
|
|
uuid(73da5d04-4347-45d3-a9dc-fae9ddbe558d)
|
|
]
|
|
coclass SectionList
|
|
{
|
|
[default] interface ISectionList;
|
|
}
|
|
|
|
[
|
|
uuid(f91d96c7-8509-4d0b-ab26-a0dd10904bb7)
|
|
]
|
|
coclass Mpeg2Stream
|
|
{
|
|
[default] interface IMpeg2Stream;
|
|
}
|
|
|
|
[
|
|
uuid(c666e115-bb62-4027-a113-82d643fe2d99)
|
|
]
|
|
coclass Mpeg2Data
|
|
{
|
|
[default] interface IMpeg2Data;
|
|
}
|
|
|
|
} /* Mpeg2DataLib */
|