summaryrefslogtreecommitdiff
path: root/gst/mpegtsdemux
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2014-06-30 13:20:12 +0100
committerTim-Philipp Müller <tim@centricular.com>2015-07-08 14:50:00 +0100
commiteeaf4d11b707ab5b39ff7f5f4ea208686ebcdba8 (patch)
treefc016ffdb253cf01b1adaf98e1574af6ac0c2c09 /gst/mpegtsdemux
parenta755fbb44021c84535d7f1ecd1ab85fdbb6b9afa (diff)
downloadgstreamer-plugins-bad-eeaf4d11b707ab5b39ff7f5f4ea208686ebcdba8.tar.gz
tsdemux: add support for KLV metadata streams
There's no timestamps for these streams though, we might want to make some up based on the last/next video PTS or so.
Diffstat (limited to 'gst/mpegtsdemux')
-rw-r--r--gst/mpegtsdemux/gstmpegdesc.h1
-rw-r--r--gst/mpegtsdemux/tsdemux.c8
2 files changed, 8 insertions, 1 deletions
diff --git a/gst/mpegtsdemux/gstmpegdesc.h b/gst/mpegtsdemux/gstmpegdesc.h
index 282ce3536..d1256a65d 100644
--- a/gst/mpegtsdemux/gstmpegdesc.h
+++ b/gst/mpegtsdemux/gstmpegdesc.h
@@ -231,5 +231,6 @@
#define DRF_ID_CUEI 0x43554549
#define DRF_ID_ETV1 0x45545631
#define DRF_ID_HEVC 0x48455643
+#define DRF_ID_KLVA 0x4b4c5641 /* defined in RP217 */
#endif /* __GST_MPEG_DESC_H__ */
diff --git a/gst/mpegtsdemux/tsdemux.c b/gst/mpegtsdemux/tsdemux.c
index b06bf4b69..217d5ad35 100644
--- a/gst/mpegtsdemux/tsdemux.c
+++ b/gst/mpegtsdemux/tsdemux.c
@@ -1196,6 +1196,12 @@ create_pad_for_stream (MpegTSBase * base, MpegTSBaseStream * bstream,
"stream-format", G_TYPE_STRING, "byte-stream",
"alignment", G_TYPE_STRING, "nal", NULL);
break;
+ case DRF_ID_KLVA:
+ sparse = TRUE;
+ is_private = TRUE;
+ caps = gst_caps_new_simple ("meta/x-klv",
+ "parsed", G_TYPE_BOOLEAN, TRUE, NULL);
+ break;
}
if (caps)
break;
@@ -1851,7 +1857,7 @@ gst_ts_demux_parse_pes_header (GstTSDemux * demux, TSDemuxStream * stream,
stream->expected_size -= header.header_size;
} else {
/* next packet will have to complete this one */
- GST_ERROR ("invalid header and packet size combination");
+ GST_WARNING ("invalid header and packet size combination, empty packet");
stream->expected_size = 0;
}
}