From be34e44a579daf869e3f34013e3e17025c94370e Mon Sep 17 00:00:00 2001 From: Bradley Falzon Date: Mon, 7 Dec 2015 11:40:56 +1030 Subject: [PATCH] Use segment Keyformat and Keyformatversions on MediaPlaylist.Encode() Previously, when a segment has different encryption parameters than the default playlist, the Encode() function uses the segment's parameters for all parameters but Keyformat and Keyformatversions. This change uses the segment's Keyformat and Keyformatversions when the segments are encoded, allowing these parameters to change per segment and not requiring a playlist to have a key set. --- writer.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/writer.go b/writer.go index 927d490a..aabd878e 100644 --- a/writer.go +++ b/writer.go @@ -454,14 +454,14 @@ func (p *MediaPlaylist) Encode() *bytes.Buffer { p.buf.WriteString(",IV=") p.buf.WriteString(seg.Key.IV) } - if p.Key.Keyformat != "" { + if seg.Key.Keyformat != "" { p.buf.WriteString(",KEYFORMAT=\"") - p.buf.WriteString(p.Key.Keyformat) + p.buf.WriteString(seg.Key.Keyformat) p.buf.WriteRune('"') } - if p.Key.Keyformatversions != "" { + if seg.Key.Keyformatversions != "" { p.buf.WriteString(",KEYFORMATVERSIONS=\"") - p.buf.WriteString(p.Key.Keyformatversions) + p.buf.WriteString(seg.Key.Keyformatversions) p.buf.WriteRune('"') } p.buf.WriteRune('\n')