Method: M3Uzi#generate_encryption_key_line

Defined in:
lib/m3uzi.rb

#generate_encryption_key_line(file) ⇒ Object



132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# File 'lib/m3uzi.rb', line 132

def generate_encryption_key_line(file)
  generate_line = false

  default_iv = @encryption_iv || format_iv(@encryption_sequence)

  if (file.encryption_key_url != :unset) && (file.encryption_key_url != @encryption_key_url)
    @encryption_key_url = file.encryption_key_url
    generate_line = true
  end

  if @encryption_key_url && file.encryption_iv != @encryption_iv
    @encryption_iv = file.encryption_iv
    generate_line = true
  end

  @encryption_sequence += 1

  if generate_line
    if @encryption_key_url.nil?
      "#EXT-X-KEY:METHOD=NONE"
    else
      attrs = ['METHOD=AES-128']
      attrs << 'URI="' + @encryption_key_url.gsub('"','%22').gsub(/[\r\n]/,'').strip + '"'
      attrs << "IV=#{@encryption_iv}" if @encryption_iv
      '#EXT-X-KEY:' + attrs.join(',')
    end
  else
    nil
  end
end