Remove "wvtt" from Master Playlist Codec String

Having "wvtt" in the codec string (in the master playlist) causes
errors on some older Apple products. As including it is optional,
we are opted to omit it to ensure support for all Apple products.

Close #402

Change-Id: Ib1072bcc26a3ff66e3a6d3204789c0c8c678d4db
This commit is contained in:
Aaron Vaage 2018-06-19 14:04:52 -07:00 committed by KongQun Yang
parent 8bba658605
commit 0b9a23b7b9
3 changed files with 12 additions and 2 deletions

View File

@ -5,7 +5,7 @@
#EXT-X-MEDIA:TYPE=SUBTITLES,URI="bear-subtitle-english-text.m3u8",GROUP-ID="default-text-group",NAME="stream_0",AUTOSELECT=YES
#EXT-X-STREAM-INF:BANDWIDTH=1150004,CODECS="avc1.64001e,mp4a.40.2,wvtt",RESOLUTION=640x360,AUDIO="default-audio-group",SUBTITLES="default-text-group"
#EXT-X-STREAM-INF:BANDWIDTH=1150004,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group",SUBTITLES="default-text-group"
bear-640x360-video.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=214291,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8"

View File

@ -5,5 +5,5 @@
#EXT-X-MEDIA:TYPE=SUBTITLES,URI="stream_0.m3u8",GROUP-ID="default-text-group",NAME="stream_0",AUTOSELECT=YES
#EXT-X-STREAM-INF:BANDWIDTH=1105129,CODECS="avc1.64001e,mp4a.40.2,wvtt",RESOLUTION=640x360,AUDIO="default-audio-group",SUBTITLES="default-text-group"
#EXT-X-STREAM-INF:BANDWIDTH=1105129,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group",SUBTITLES="default-text-group"
stream_2.m3u8

View File

@ -58,6 +58,16 @@ std::set<std::string> GetGroupCodecString(
codecs.insert(playlist->codec());
}
// To support some older players, we cannot include "wvtt" in the codec
// string. As per HLS guidelines, "wvtt" is optional. When it is included, it
// can cause playback errors on some Apple produces. Excluding it allows
// playback on all Apple products. See
// https://github.com/google/shaka-packager/issues/402 for all details.
auto wvtt = codecs.find("wvtt");
if (wvtt != codecs.end()) {
codecs.erase(wvtt);
}
return codecs;
}