1 /*
2  * gst-scte-section.h -
3  * Copyright (C) 2013, CableLabs, Louisville, CO 80027
4  *
5  * Authors:
6  *   RUIH Team <ruih@cablelabs.com>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Library General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 of the License, or (at your option) any later version.
12  *
13  * This library is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Library General Public License for more details.
17  *
18  * You should have received a copy of the GNU Library General Public
19  * License along with this library; if not, write to the
20  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
21  * Boston, MA 02110-1301, USA.
22  */
23 
24 #ifndef GST_SCTE_SECTION_H
25 #define GST_SCTE_SECTION_H
26 
27 #include <gst/gst.h>
28 #include <gst/mpegts/gstmpegtssection.h>
29 #include <gst/mpegts/gstmpegtsdescriptor.h>
30 
31 G_BEGIN_DECLS
32 
33 /**
34  * GstMpegtsScteStreamType:
35  * @GST_MPEGTS_STREAM_TYPE_SCTE_SUBTITLING:  SCTE-27 Subtitling
36  * @GST_MPEGTS_STREAM_TYPE_SCTE_ISOCH_DATA:  SCTE-19 Isochronous data
37  * @GST_MPEGTS_STREAM_TYPE_SCTE_DST_NRT:     SCTE-07 Data Service or
38  * Network Resource Table
39  * @GST_MPEGTS_STREAM_TYPE_SCTE_DSMCC_DCB:   Type B - DSM-CC Data Carousel
40  * [IEC 13818-6])
41  * @GST_MPEGTS_STREAM_TYPE_SCTE_SIGNALING:   Enhanced Television Application
42  * Signaling (OC-SP-ETV-AM1.0.1-120614)
43  * @GST_MPEGTS_STREAM_TYPE_SCTE_SYNC_DATA:   SCTE-07 Synchronous data
44  * @GST_MPEGTS_STREAM_TYPE_SCTE_ASYNC_DATA:  SCTE-53 Asynchronous data
45  *
46  * Type of mpeg-ts streams for SCTE
47  *
48  */
49 typedef enum {
50 
51   /* 0x01 - 0x82 : defined in other specs */
52   GST_MPEGTS_STREAM_TYPE_SCTE_SUBTITLING = 0x82,   /* Subtitling data */
53   GST_MPEGTS_STREAM_TYPE_SCTE_ISOCH_DATA = 0x83,   /* Isochronous data */
54   /* 0x84 - 0x94 : defined in other specs */
55   GST_MPEGTS_STREAM_TYPE_SCTE_DST_NRT    = 0x95,   /* DST / NRT data */
56   /* 0x96 - 0xaf : defined in other specs */
57   GST_MPEGTS_STREAM_TYPE_SCTE_DSMCC_DCB  = 0xb0,   /* Data Carousel Type B */
58   /* 0xb1 - 0xbf : User Private (or defined in other specs) */
59   GST_MPEGTS_STREAM_TYPE_SCTE_SIGNALING  = 0xc0,   /* EBIF Signaling */
60   GST_MPEGTS_STREAM_TYPE_SCTE_SYNC_DATA  = 0xc2,   /* Synchronous data */
61   GST_MPEGTS_STREAM_TYPE_SCTE_ASYNC_DATA = 0xc3,   /* Asynchronous data */
62   /* 0xc4 - 0xff : User Private (or defined in other specs) */
63 
64 } GstMpegtsScteStreamType;
65 
66 
67 /**
68  * GstMpegtsSectionSCTETableID:
69  * @GST_MTS_TABLE_ID_SCTE_EAS:    SCTE-18 Emergency Alert System
70  * @GST_MTS_TABLE_ID_SCTE_EBIF:   CL-SP-ETV-AM 1.0.1 EBIF message
71  * @GST_MTS_TABLE_ID_SCTE_EISS:   CL-SP-ETV-AM 1.0.1 EBIF Int. Signaling Sect.
72  * @GST_MTS_TABLE_ID_SCTE_DII:    CL-SP-ETV-AM 1.0.1 DSMCC DII message
73  * @GST_MTS_TABLE_ID_SCTE_DDB:    CL-SP-ETV-AM 1.0.1 DSMCC Data Download Block
74  * @GST_MTS_TABLE_ID_SCTE_SPLICE: SCTE-35 splice information is carried in a
75  * section stream on a separate PID in the program’s Map Table (PMT) allowing
76  * Splice Event notifications to remain associated with the program and pass
77  * through multiplexers.
78  *
79  * Values for a #GstMpegtsSection table_id.
80  *
81  * These are the registered SCTE table_id variants.
82  *
83  * see also: #GstMpegtsSectionTableID
84  */
85 typedef enum {
86 
87   /* 0x01 - 0xd7 : defined in other specs */
88   GST_MTS_TABLE_ID_SCTE_EAS      = 0xd8,     /* emergency alert information */
89   /* 0xd8 - 0xdf : defined in other specs */
90   GST_MTS_TABLE_ID_SCTE_EBIF     = 0xE0,     /* EBIF message */
91   GST_MTS_TABLE_ID_SCTE_RESERVED = 0xE1,
92   GST_MTS_TABLE_ID_SCTE_EISS     = 0xE2,     /* EBIF Int. Signaling Sect. */
93   GST_MTS_TABLE_ID_SCTE_DII      = 0xE3,     /* DSMCC DII message */
94   GST_MTS_TABLE_ID_SCTE_DDB      = 0xE4,     /* DSMCC Data Download Block */
95   /* 0xe5 - 0xfb : defined in other specs */
96   GST_MTS_TABLE_ID_SCTE_SPLICE   = 0xfc,     /* splice information table */
97 
98 } GstMpegtsSectionSCTETableID;
99 
100 G_END_DECLS
101 
102 #endif  /* GST_SCTE_SECTION_H */
103