diff options
author | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2012-06-16 16:50:43 +0200 |
---|---|---|
committer | Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> | 2012-06-16 19:23:00 +0200 |
commit | beceb09acc353d991ef9b315126cbe1dc9f8ab0b (patch) | |
tree | fdd5611f45dd02fdc80f4d53e011e0ed75d1cd79 /gst/mpegtsmux/tsmux | |
parent | 898f6b48be5b8e44f7d531b55fd99c90c9fb7f1d (diff) | |
download | gstreamer-plugins-bad-beceb09acc353d991ef9b315126cbe1dc9f8ab0b.tar.gz |
mpegtsmux: add support for DVB subtitle and teletext streams
See bug #673582.
Conflicts:
gst/mpegtsmux/Makefile.am
Diffstat (limited to 'gst/mpegtsmux/tsmux')
-rw-r--r-- | gst/mpegtsmux/tsmux/tsmuxstream.c | 26 | ||||
-rw-r--r-- | gst/mpegtsmux/tsmux/tsmuxstream.h | 2 |
2 files changed, 28 insertions, 0 deletions
diff --git a/gst/mpegtsmux/tsmux/tsmuxstream.c b/gst/mpegtsmux/tsmux/tsmuxstream.c index f05b72aaf..375401058 100644 --- a/gst/mpegtsmux/tsmux/tsmuxstream.c +++ b/gst/mpegtsmux/tsmux/tsmuxstream.c @@ -175,6 +175,18 @@ tsmux_stream_new (guint16 pid, TsMuxStreamType stream_type) TSMUX_PACKET_FLAG_PES_FULL_HEADER | TSMUX_PACKET_FLAG_PES_EXT_STREAMID; break; + case TSMUX_ST_PS_TELETEXT: + /* needs fixes PES header length */ + stream->pi.pes_header_length = 36; + case TSMUX_ST_PS_DVB_SUBPICTURE: + /* private stream 1 */ + stream->id = 0xBD; + stream->stream_type = TSMUX_ST_PRIVATE_DATA; + stream->pi.flags |= + TSMUX_PACKET_FLAG_PES_FULL_HEADER | + TSMUX_PACKET_FLAG_PES_DATA_ALIGNMENT; + + break; default: g_critical ("Stream type 0x%0x not yet implemented", stream_type); break; @@ -865,6 +877,20 @@ tsmux_stream_get_es_descrs (TsMuxStream * stream, guint8 * buf, guint16 * len) case TSMUX_ST_PS_AUDIO_LPCM: /* FIXME */ break; + case TSMUX_ST_PS_DVB_SUBPICTURE: + /* tag */ + *pos++ = 0x59; + /* FIXME empty descriptor for now; + * should be provided by upstream in event or so ? */ + *pos = 0; + break; + case TSMUX_ST_PS_TELETEXT: + /* tag */ + *pos++ = 0x56; + /* FIXME empty descriptor for now; + * should be provided by upstream in event or so ? */ + *pos = 0; + break; default: break; } diff --git a/gst/mpegtsmux/tsmux/tsmuxstream.h b/gst/mpegtsmux/tsmux/tsmuxstream.h index fb87a1349..b0fef23ee 100644 --- a/gst/mpegtsmux/tsmux/tsmuxstream.h +++ b/gst/mpegtsmux/tsmux/tsmuxstream.h @@ -138,6 +138,8 @@ enum TsMuxStreamType { TSMUX_ST_PS_AUDIO_AC3 = 0x81, TSMUX_ST_PS_AUDIO_DTS = 0x8a, TSMUX_ST_PS_AUDIO_LPCM = 0x8b, + TSMUX_ST_PS_DVB_SUBPICTURE = 0x8c, + TSMUX_ST_PS_TELETEXT = 0x8d, TSMUX_ST_PS_DVD_SUBPICTURE = 0xff, /* Non-standard definitions */ |