summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorEdward Hervey <edward@centricular.com>2020-12-14 10:50:02 +0100
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2020-12-14 14:48:03 +0000
commit5d3a0ca6a9e703a77338ab84df97c2d4a18310ca (patch)
tree76bbd2ca639101416f757520f035ef869949d51d /docs
parent76bc578bae093944fbf86335a99bff2d2927a58f (diff)
downloadgstreamer-plugins-bad-5d3a0ca6a9e703a77338ab84df97c2d4a18310ca.tar.gz
mpegts: Update documentation
* Split up into appropriate individual header files * Document more sections and structures * Add well-known list of registration id Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1879>
Diffstat (limited to 'docs')
-rw-r--r--docs/libs/mpegts/index.md99
1 files changed, 98 insertions, 1 deletions
diff --git a/docs/libs/mpegts/index.md b/docs/libs/mpegts/index.md
index 460ea9633..af6997b3e 100644
--- a/docs/libs/mpegts/index.md
+++ b/docs/libs/mpegts/index.md
@@ -1,7 +1,104 @@
-# Mpeg TS helper library
+# MPEG-TS helper library
This library should be linked to by getting cflags and libs from
gstreamer-plugins-bad-{{ gst_api_version.md }}.pc and adding
-lgstmpegts-{{ gst_api_version.md }} to the library flags.
> NOTE: This library API is considered *unstable*
+
+## Purpose
+
+The MPEG-TS helper library provides a collection of definitions, object,
+enumerations and functions to assist with dealing with the base *MPEG 2
+Transport Stream* (MPEG-TS) format (as defined by `ISO/IEC 13818-1` and `ITU-T
+H.222.0`) and its derivates (`DVB`, `ATSC`, `SCTE`, `ARIB`, `Blu-ray`, `AVCHD`,
+...).
+
+
+This library provides helpers for dealing with:
+
+* The various Section Information (SI) and Program-Specific Information (SI),
+ handled with the [GstMpegtsSection](GstMpegtsSection) object and related
+ functions.
+
+* The various descriptors present in SI/PSI, handled with the
+ [GstMpegtsDescriptor](GstMpegtsDescriptor) object and related functions.
+
+
+This library does not cover:
+
+* Parsing MPEG-TS packets (PSI or PES) and extracting the sections. One can use
+ an existing demuxer/parser element for this, or parse the packets
+ themselves.
+
+* Generate and multiplex MPEG-TS packets and sections. One can use an existing
+ muxer element for this.
+
+Applications, or external elements, can interact with the existing MPEG-TS
+elements via [messages](gst_message_new_mpegts_section) (to receive sections) or
+[events](gst_mpegts_section_send_event) (to send sections).
+
+## Specification and References
+
+As much as possible, the information contained in this library is based on the
+official Specification and/or References listed below:
+
+### `MPEG-TS`
+
+This is the base specification from which all variants are derived. It covers
+the basic sections (for program signalling) and descriptors. All variants must
+abide by this specification.
+
+* `ISO/IEC 13818-1` and `ITU-T H.222.0`: *"Information technology – Generic
+ coding of moving pictures and associated audio information: Systems"*. The two
+ specifications are identical, the ITU one is more easily available (*nudge*).
+
+### `SMPTE-RA` : *SMPTE Registration Authority*
+The official registration authority for MPEG-TS. This is used for the base
+[Registration Descriptor](gst_mpegts_descriptor_parse_registration) which
+allows to unambiguously identify a stream when it is not specified in a standard
+(yet).
+
+* <http://smpte-ra.org/>
+
+### `DVB` : *Digital Video Broadcasting*
+
+This standards body covers the variant of MPEG-TS used in Europe, Oceania, and
+most of Asia and Africa. The standards are actually published by the `ETSI`
+(European Telecommunications Standards Institute).
+
+* `ETSI EN 300 468`: *"Digital Video Broadcasting (DVB); Specification for
+ Service Information (SI) in DVB systems"*. Covers all the sections and
+ descriptors used in DVB variants.
+* `ETSI EN 101 154`: *"Digital Video Broadcasting (DVB);Specification for the
+ use of Video and Audio Coding in Broadcast and Broadband
+ Applications"*. Provides more details about signalling/sectios for audio/video
+ codecs.
+
+### `ATSC` : *Advanced Television Systems Committee*
+
+This set of standards covers the variants of MPEG-TS used in North America.
+* `ATSC A/53-3` : *"ATSC Digital Television Standard, Part 3 – Service Multiplex
+ and Transport Subsystem Characteristics"*. How ATSC extends the base MPEG-TS.
+* `ATSC A/65` : *"ATSC Standard:Program and System Information Protocol for
+ Terrestrial Broadcast and Cable"*. Covers all sections and descriptors used in
+ ATSC 1.0 variants.
+* `ATSC A/90` : *"ATSC Data Broadcast Standard"*. Extensions for data transfer
+ (i.e. DSM-CC).
+* `ATSC A/107` : *"ATSC 2.0 Standard"*. Adds a few more descriptors.
+* `ATSC Code Points Registry` : The list of stream types, decriptor types,
+ etc... used by ATSC standards.
+
+### `SCTE` : *Society of Cable Telecommunications Engineers*
+
+This set of standards evolved in parallel with ATSC in North-America. Most of it
+has been merged into ATSC and other standards since.
+
+* `ANSI/SCTE 35` : *"Digital Program Insertion Cueing Message for Cable"*
+
+### `DSM-CC` : "Digital Storage Media - Command & Control"
+
+This ISO standard is the base for asynchronously carrying "files" over mpeg-ts.
+
+* `ISO/IEC 13818-6` : *"Information technology — Generic coding of moving
+ pictures and associated audio information — Part 6: Extensions for DSM-CC"*.