Commit 4a4437c0 authored by Anssi Hannula's avatar Anssi Hannula

avformat/mpegts: demux timed ID3 metadata

Used in some HLS streams ("Timed Metadata for HTTP Live Streaming").

This is just ID3 tags at arbitrary stream positions, but I still added
"timed" to the codec name to avoid confusion with regular non-stream ID3
tags.
Signed-off-by: 's avatarAnssi Hannula <anssi.hannula@iki.fi>
parent 61d43a26
...@@ -513,6 +513,7 @@ enum AVCodecID { ...@@ -513,6 +513,7 @@ enum AVCodecID {
AV_CODEC_ID_OTF = MKBETAG( 0 ,'O','T','F'), AV_CODEC_ID_OTF = MKBETAG( 0 ,'O','T','F'),
AV_CODEC_ID_SMPTE_KLV = MKBETAG('K','L','V','A'), AV_CODEC_ID_SMPTE_KLV = MKBETAG('K','L','V','A'),
AV_CODEC_ID_DVD_NAV = MKBETAG('D','N','A','V'), AV_CODEC_ID_DVD_NAV = MKBETAG('D','N','A','V'),
AV_CODEC_ID_TIMED_ID3 = MKBETAG('T','I','D','3'),
AV_CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it AV_CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
......
...@@ -2622,6 +2622,12 @@ static const AVCodecDescriptor codec_descriptors[] = { ...@@ -2622,6 +2622,12 @@ static const AVCodecDescriptor codec_descriptors[] = {
.name = "dvd_nav_packet", .name = "dvd_nav_packet",
.long_name = NULL_IF_CONFIG_SMALL("DVD Nav packet"), .long_name = NULL_IF_CONFIG_SMALL("DVD Nav packet"),
}, },
{
.id = AV_CODEC_ID_TIMED_ID3,
.type = AVMEDIA_TYPE_DATA,
.name = "timed_id3",
.long_name = NULL_IF_CONFIG_SMALL("timed ID3 metadata"),
},
}; };
......
...@@ -662,6 +662,7 @@ static const StreamType REGD_types[] = { ...@@ -662,6 +662,7 @@ static const StreamType REGD_types[] = {
static const StreamType METADATA_types[] = { static const StreamType METADATA_types[] = {
{ MKTAG('K','L','V','A'), AVMEDIA_TYPE_DATA, AV_CODEC_ID_SMPTE_KLV }, { MKTAG('K','L','V','A'), AVMEDIA_TYPE_DATA, AV_CODEC_ID_SMPTE_KLV },
{ MKTAG('I','D','3',' '), AVMEDIA_TYPE_DATA, AV_CODEC_ID_TIMED_ID3 },
{ 0 }, { 0 },
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment