From 07c1df918ebb06f850817272fdcca325c1ffe52d Mon Sep 17 00:00:00 2001 From: bajankristof Date: Thu, 17 Jul 2025 15:54:46 +0200 Subject: [PATCH 1/2] fix(mpeg-dash): quote GROUP-ID in EXT-X-MEDIA for HLS --- lib/ffmpeg/dash/adaptation_set.rb | 2 +- spec/ffmpeg/dash/adaptation_set_spec.rb | 6 +++--- spec/ffmpeg/dash/manifest_spec.rb | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) 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/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" From 3f6e15d929336aac5eccb821cd644dee7977f8d1 Mon Sep 17 00:00:00 2001 From: bajankristof Date: Thu, 17 Jul 2025 15:57:37 +0200 Subject: [PATCH 2/2] chore: update version to 8.1.0-beta.1 and document changes --- CHANGELOG | 5 +++++ lib/ffmpeg/version.rb | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) 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/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