Commit 763e8237 authored by Jan Ekström's avatar Jan Ekström Committed by Michael Niedermayer

movenc: add support for track names in ISML manifests

This enables having multiple tracks of the same type which would
be treated as different things by the media server (as opposed to
different bit rate versions of the same track). According to the
smooth streaming specification, just setting the systemLanguage
tag is not enough to note that a track with the same attributes
differs from another one.

Reviewed-by: Martin
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 79d232fc
......@@ -3645,6 +3645,7 @@ static int mov_write_isml_manifest(AVIOContext *pb, MOVMuxContext *mov, AVFormat
MOVTrack *track = &mov->tracks[i];
const char *type;
int track_id = track->track_id;
char track_name_buf[32] = { 0 };
AVStream *st = track->st;
AVDictionaryEntry *lang = av_dict_get(st->metadata, "language", NULL,0);
......@@ -3670,6 +3671,23 @@ static int mov_write_isml_manifest(AVIOContext *pb, MOVMuxContext *mov, AVFormat
param_write_int(pb, "systemBitrate", manifest_bit_rate);
param_write_int(pb, "trackID", track_id);
param_write_string(pb, "systemLanguage", lang ? lang->value : "und");
/* Build track name piece by piece: */
/* 1. track type */
av_strlcat(track_name_buf, type, sizeof(track_name_buf));
/* 2. track language, if available */
if (lang)
av_strlcatf(track_name_buf, sizeof(track_name_buf),
"_%s", lang->value);
/* 3. special type suffix */
/* "_cc" = closed captions, "_ad" = audio_description */
if (st->disposition & AV_DISPOSITION_HEARING_IMPAIRED)
av_strlcat(track_name_buf, "_cc", sizeof(track_name_buf));
else if (st->disposition & AV_DISPOSITION_VISUAL_IMPAIRED)
av_strlcat(track_name_buf, "_ad", sizeof(track_name_buf));
param_write_string(pb, "trackName", track_name_buf);
if (track->par->codec_type == AVMEDIA_TYPE_VIDEO) {
if (track->par->codec_id == AV_CODEC_ID_H264) {
uint8_t *ptr;
......
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