$Id$ Welcome to biTStream! ===================== biTStream is a set of C headers allowing a simpler access to binary structures such as specified by MPEG, DVB, IETF, etc. biTStream vs. libdvbpsi ======================= libdvbpsi converts binary structures to C structures. Lists are implemented with chained lists of C structures. biTStream is lower level, and more efficient: fewer memory allocations, fewer memory copies. It also features a better separation between layers and specifications. Extending biTStream =================== A lot of MPEG and DVB tables and descriptors are not implemented yet, or are incomplete. Patches are very welcome. Though biTStream is originally targeted at video applications in general and MPEG-2 transport stream in particular, the same principle can be followed with other binary data types, and patches are welcome here too. Just try to follow a coherent directory naming. My coding style is Linux kernel + Hungarian conventions. Really, I do not care about the coding style of new files; do (WTF) you want. However, for existing files, please try to follow the original conventions. biTStream is released under the MIT license because since it is a direct application of standards, there is no added value. The MIT license doesn't require you to contribute back your changes, and you can use biTStream in proprietary applications. However, if you add new structures, or fix bugs in current structures, you'd be very nice to contribute them (again, there is no point in concealing this). Thanks. Supported SI tables =================== * Program Allocation Table (PAT) * Conditional Access Table (CAT) * Program Map Table (PMT) * Network Information Table (NIT) * Bouquet Association Table (BAT) * Service Definition Table (SDT) * Event Information Table (EIT) * Time and Date Table (TDT) * Time Offset Table (TOT) * Running Status Table (RST) * Stuffing Table (ST) * Discontinuity Information Table (DIT) Supported MPEG descriptors ========================== * Descriptor 0x02: Video stream descriptor * Descriptor 0x03: Audio stream descriptor * Descriptor 0x04: Hierarchy descriptor * Descriptor 0x05: Registration descriptor * Descriptor 0x06: Data stream alignment descriptor * Descriptor 0x07: Target Background Grid descriptor * Descriptor 0x08: Video Window descriptor * Descriptor 0x09: Conditional access descriptor * Descriptor 0x0A: ISO-639 language descriptor * Descriptor 0x0B: System clock descriptor * Descriptor 0x0C: Multiplex buffer utilization descriptor * Descriptor 0x0D: Copyright descriptor * Descriptor 0x0E: Maximum bitrate descriptor * Descriptor 0x0F: Private data indicator descriptor * Descriptor 0x10: Smoothing buffer descriptor * Descriptor 0x11: STD descriptor * Descriptor 0x12: IBP descriptor * Descriptor 0x1b: MPEG-4 video descriptor * Descriptor 0x1c: MPEG-4 audio descriptor Supported DVB descriptors ========================= * Descriptor 0x40: Network name descriptor * Descriptor 0x41: Service list descriptor * Descriptor 0x43: Satellite delivery system descriptor * Descriptor 0x44: Cable delivery system descriptor * Descriptor 0x46: VBI teletext descriptor * Descriptor 0x47: Bouquet name descriptor * Descriptor 0x48: Service descriptor * Descriptor 0x4a: Linkage descriptor (partially implemented) * Descriptor 0x4d: Short event descriptor * Descriptor 0x4e: Extended event descriptor * Descriptor 0x52: Stream identifier descriptor * Descriptor 0x54: Content descriptor * Descriptor 0x55: Parental rating descriptor * Descriptor 0x56: Teletext descriptor * Descriptor 0x58: Local time offset descriptor * Descriptor 0x59: Subtitling descriptor * Descriptor 0x5a: Terrestrial delivery system descriptor * Descriptor 0x5f: Private data specifier descriptor * Descriptor 0x6a: AC-3 descriptor [p] Legend: [p] - Partitial support, only parser is implemented. To see what is unsupported look in the TODO file. Example usage ============= To see biTSream in action look in examples directory.
-
Georgi Chorbadzhiyski authoreddb9b0179