[FFmpeg-devel] [PATCH] mpegts: Enable muxing of SMPTE KLV data
Jeff Blackburne
jblackburne at gmail.com
Tue Jun 11 18:59:01 CEST 2013
This is basically a re-post of Peter Ross's patch to mux SMPTE
key-length-value data. See these archive links:
http://ffmpeg.org/pipermail/ffmpeg-devel/2012-October/132381.html
http://ffmpeg.org/pipermail/ffmpeg-devel/2012-December/135502.html
The demux patch has already been accepted, and works well for me. I've
tested this patch as well, and it works as expected.
---
libavformat/mpegtsenc.c | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index 0ddae65..0da65a5 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -397,6 +397,16 @@ static void mpegts_write_pmt(AVFormatContext *s,
MpegTSService *service)
*q++ = 'c';
}
break;
+ case AVMEDIA_TYPE_DATA:
+ if (st->codec->codec_id == AV_CODEC_ID_SMPTE_KLV) {
+ *q++ = 0x05; /* MPEG-2 registration descriptor */
+ *q++ = 4;
+ *q++ = 'K';
+ *q++ = 'L';
+ *q++ = 'V';
+ *q++ = 'A';
+ }
+ break;
}
val = 0xf000 | (q - desc_length_ptr - 2);
@@ -977,8 +987,8 @@ static void mpegts_write_pes(AVFormatContext *s,
AVStream *st,
*q++ = len >> 8;
*q++ = len;
val = 0x80;
- /* data alignment indicator is required for subtitle data */
- if (st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE)
+ /* data alignment indicator is required for subtitle and data
streams */
+ if (st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE ||
st->codec->codec_type == AVMEDIA_TYPE_DATA)
val |= 0x04;
*q++ = val;
*q++ = flags;
--
1.7.1
More information about the ffmpeg-devel
mailing list