[FFmpeg-cvslog] lavf/mpegtsenc: set metadata stream type and write descriptor for ID3 packets

Stefano Sabatini git at videolan.org
Thu May 19 18:43:29 CEST 2016


ffmpeg | branch: master | Stefano Sabatini <stefasab at gmail.com> | Sat Mar 26 12:02:49 2016 +0100| [1ab8e03a457a01df11eeb6ee13a0ca66f07ff863] | committer: Stefano Sabatini

lavf/mpegtsenc: set metadata stream type and write descriptor for ID3 packets

This allow to remux data packets which are then recognized as ID3 packets.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1ab8e03a457a01df11eeb6ee13a0ca66f07ff863
---

 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 8be24fa..93cbac1 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -353,6 +353,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;
@@ -605,6 +608,13 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service)
                 *q++ = 'L';
                 *q++ = 'V';
                 *q++ = 'A';
+            } else if (st->codecpar->codec_id == AV_CODEC_ID_TIMED_ID3) {
+                *q++ = 0x5; /* MPEG-2 registration descriptor */
+                *q++ = 4;
+                *q++ = 'I';
+                *q++ = 'D';
+                *q++ = '3';
+                *q++ = ' ';
             }
             break;
         }



More information about the ffmpeg-cvslog mailing list