This allow to remux data packets which are then recognized as ID3 packets. --- libavformat/mpegts.h | 1 + libavformat/mpegtsenc.c | 10 ++++++++++ 2 files changed, 11 insertions(+)
diff --git a/libavformat/mpegts.h b/libavformat/mpegts.h index 0cdbc76..88b504d 100644 --- a/libavformat/mpegts.h +++ b/libavformat/mpegts.h @@ -51,6 +51,7 @@ #define STREAM_TYPE_AUDIO_AAC 0x0f #define STREAM_TYPE_AUDIO_AAC_LATM 0x11 #define STREAM_TYPE_VIDEO_MPEG4 0x10 +#define STREAM_TYPE_METADATA 0x15 #define STREAM_TYPE_VIDEO_H264 0x1b #define STREAM_TYPE_VIDEO_HEVC 0x24 #define STREAM_TYPE_VIDEO_CAVS 0x42 diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index 51677ea..0b8c2c2 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -347,6 +347,9 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) case AV_CODEC_ID_OPUS: stream_type = STREAM_TYPE_PRIVATE_DATA; break; + case AV_CODEC_ID_TIMED_ID3: + stream_type = STREAM_TYPE_METADATA; + break; default: stream_type = STREAM_TYPE_PRIVATE_DATA; break; @@ -599,6 +602,13 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) *q++ = 'L'; *q++ = 'V'; *q++ = 'A'; + } else if (st->codec->codec_id == AV_CODEC_ID_TIMED_ID3) { + *q++ = 0x5; /* MPEG-2 registration descriptor */ + *q++ = 4; + *q++ = 'I'; + *q++ = 'D'; + *q++ = '3'; + *q++ = ' '; } break; } -- 1.9.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel