diff --git a/CHANGELOG b/CHANGELOG index 0d40ed4..c679907 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +== 8.1.0-beta.1 2025-07-17 + +Fixes: +* Correctly implement HLS specification for EXT-X-MEDIA and GROUP-ID. + == 8.1.0-beta 2025-07-15 Improvements: diff --git a/lib/ffmpeg/dash/adaptation_set.rb b/lib/ffmpeg/dash/adaptation_set.rb index 1cb768b..1475781 100644 --- a/lib/ffmpeg/dash/adaptation_set.rb +++ b/lib/ffmpeg/dash/adaptation_set.rb @@ -107,7 +107,7 @@ def to_m3u8mt(group_id: content_type, default: true, autoselect: true) m3u8t( 'EXT-X-MEDIA', 'TYPE' => content_type.upcase, - 'GROUP-ID' => group_id, + 'GROUP-ID' => quote(group_id), 'NAME' => quote(lang || 'und'), 'LANGUAGE' => quote(lang || 'und'), 'DEFAULT' => default ? 'YES' : 'NO', diff --git a/lib/ffmpeg/version.rb b/lib/ffmpeg/version.rb index 12c542a..72f6399 100644 --- a/lib/ffmpeg/version.rb +++ b/lib/ffmpeg/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module FFMPEG - VERSION = '8.1.0-beta' + VERSION = '8.1.0-beta.1' end diff --git a/spec/ffmpeg/dash/adaptation_set_spec.rb b/spec/ffmpeg/dash/adaptation_set_spec.rb index 818255c..4f29331 100644 --- a/spec/ffmpeg/dash/adaptation_set_spec.rb +++ b/spec/ffmpeg/dash/adaptation_set_spec.rb @@ -133,7 +133,7 @@ it 'returns an EXT-X-MEDIA tag' do is_expected.to eq( '#EXT-X-MEDIA:TYPE=AUDIO,' \ - 'GROUP-ID=audio,NAME="und",LANGUAGE="und",DEFAULT=YES,AUTOSELECT=YES,URI="stream2.m3u8"' + 'GROUP-ID="audio",NAME="und",LANGUAGE="und",DEFAULT=YES,AUTOSELECT=YES,URI="stream2.m3u8"' ) end end @@ -147,7 +147,7 @@ it 'returns an EXT-X-MEDIA tag' do is_expected.to eq( '#EXT-X-MEDIA:TYPE=VIDEO,' \ - 'GROUP-ID=video,NAME="und",LANGUAGE="und",DEFAULT=NO,AUTOSELECT=NO,URI="stream0.m3u8"' + 'GROUP-ID="video",NAME="und",LANGUAGE="und",DEFAULT=NO,AUTOSELECT=NO,URI="stream0.m3u8"' ) end end @@ -177,7 +177,7 @@ it 'uses the specified language' do is_expected.to eq( '#EXT-X-MEDIA:TYPE=AUDIO,' \ - 'GROUP-ID=audio,NAME="en",LANGUAGE="en",DEFAULT=YES,AUTOSELECT=YES,URI="stream0.m3u8"' + 'GROUP-ID="audio",NAME="en",LANGUAGE="en",DEFAULT=YES,AUTOSELECT=YES,URI="stream0.m3u8"' ) end end diff --git a/spec/ffmpeg/dash/manifest_spec.rb b/spec/ffmpeg/dash/manifest_spec.rb index 5c8a610..d41e418 100644 --- a/spec/ffmpeg/dash/manifest_spec.rb +++ b/spec/ffmpeg/dash/manifest_spec.rb @@ -86,7 +86,7 @@ is_expected.to eq(<<~M3U8.strip) #EXTM3U #EXT-X-VERSION:6 - #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID=audio,NAME="und",LANGUAGE="und",DEFAULT=YES,AUTOSELECT=YES,URI="stream2.m3u8" + #EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="und",LANGUAGE="und",DEFAULT=YES,AUTOSELECT=YES,URI="stream2.m3u8" #EXT-X-STREAM-INF:BANDWIDTH=2500000,CODECS="avc1.640028",RESOLUTION=1920x1080,AUDIO="audio" stream0.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=1250000,CODECS="avc1.640028",RESOLUTION=1280x720,AUDIO="audio"