From eeaf4d11b707ab5b39ff7f5f4ea208686ebcdba8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 30 Jun 2014 13:20:12 +0100 Subject: [PATCH] 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. --- gst/mpegtsdemux/gstmpegdesc.h | 1 + gst/mpegtsdemux/tsdemux.c | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gst/mpegtsdemux/gstmpegdesc.h b/gst/mpegtsdemux/gstmpegdesc.h index 282ce3536e..d1256a65d5 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 b06bf4b69e..217d5ad35b 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; } }