Class: M3u8::Playlist

Inherits:
Object
  • Object
show all
Defined in:
lib/m3u8/playlist.rb

Overview

Playlist represents an m3u8 playlist, it can be a master playlist or a set of media segments

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Playlist

Returns a new instance of Playlist.



10
11
12
13
# File 'lib/m3u8/playlist.rb', line 10

def initialize(options = {})
  assign_options(options)
  @items = []
end

Instance Attribute Details

#cacheObject

Returns the value of attribute cache.



6
7
8
# File 'lib/m3u8/playlist.rb', line 6

def cache
  @cache
end

#discontinuity_sequenceObject

Returns the value of attribute discontinuity_sequence.



6
7
8
# File 'lib/m3u8/playlist.rb', line 6

def discontinuity_sequence
  @discontinuity_sequence
end

#iframes_onlyObject

Returns the value of attribute iframes_only.



6
7
8
# File 'lib/m3u8/playlist.rb', line 6

def iframes_only
  @iframes_only
end

#independent_segmentsObject

Returns the value of attribute independent_segments.



6
7
8
# File 'lib/m3u8/playlist.rb', line 6

def independent_segments
  @independent_segments
end

#itemsObject

Returns the value of attribute items.



6
7
8
# File 'lib/m3u8/playlist.rb', line 6

def items
  @items
end

#liveObject

Returns the value of attribute live.



6
7
8
# File 'lib/m3u8/playlist.rb', line 6

def live
  @live
end

#sequenceObject

Returns the value of attribute sequence.



6
7
8
# File 'lib/m3u8/playlist.rb', line 6

def sequence
  @sequence
end

#targetObject

Returns the value of attribute target.



6
7
8
# File 'lib/m3u8/playlist.rb', line 6

def target
  @target
end

#typeObject

Returns the value of attribute type.



6
7
8
# File 'lib/m3u8/playlist.rb', line 6

def type
  @type
end

#versionObject

Returns the value of attribute version.



6
7
8
# File 'lib/m3u8/playlist.rb', line 6

def version
  @version
end

Class Method Details

.codecs(options = {}) ⇒ Object



15
16
17
18
# File 'lib/m3u8/playlist.rb', line 15

def self.codecs(options = {})
  item = PlaylistItem.new(options)
  item.codecs
end

.read(input) ⇒ Object



20
21
22
23
# File 'lib/m3u8/playlist.rb', line 20

def self.read(input)
  reader = Reader.new
  reader.read(input)
end

Instance Method Details

#durationObject



52
53
54
55
56
57
58
# File 'lib/m3u8/playlist.rb', line 52

def duration
  duration = 0.0
  items.each do |item|
    duration += item.duration if item.is_a?(M3u8::SegmentItem)
  end
  duration
end

#live?Boolean

Returns:

  • (Boolean)


30
31
32
33
# File 'lib/m3u8/playlist.rb', line 30

def live?
  return false if master?
  @live
end

#master?Boolean

Returns:

  • (Boolean)


35
36
37
38
39
# File 'lib/m3u8/playlist.rb', line 35

def master?
  return @master unless @master.nil?
  return false if playlist_size.zero? && segment_size.zero?
  playlist_size > 0
end

#to_sObject



41
42
43
44
45
# File 'lib/m3u8/playlist.rb', line 41

def to_s
  output = StringIO.open
  write(output)
  output.string
end

#valid?Boolean

Returns:

  • (Boolean)


47
48
49
50
# File 'lib/m3u8/playlist.rb', line 47

def valid?
  return false if playlist_size > 0 && segment_size > 0
  true
end

#write(output) ⇒ Object



25
26
27
28
# File 'lib/m3u8/playlist.rb', line 25

def write(output)
  writer = Writer.new(output)
  writer.write(self)
end