m3u8 0.6.5 → 0.6.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9771b4d74b91d96ee4c6eca99cce96fb16705233
4
- data.tar.gz: 39dca18b7625bcceedb21f1dab3aa8363a773a17
3
+ metadata.gz: 59afb153649738feaf50a0c63229cce241a3be9e
4
+ data.tar.gz: 56d7ee49319b9be6d6feecb3c9b591e5461b8402
5
5
  SHA512:
6
- metadata.gz: 79a97144562036dccad8cd96e4c753890a6616920707a617e50b84e2d6ec5c7f1648be6bfa1d34508446bda93f5b510ba0d98680caebdc325f233e917b6a2c3f
7
- data.tar.gz: 81d6de6a6162f2820da6d2d0e652ae0b1917177214203530ccc5004eb56382b5e69249781a79add1dfa8949599a4b9e1dafaacb181ed90a59411be458c97d228
6
+ metadata.gz: 153894fa6fc82485c37cd5f67f8126d7692d1f22bb74c8afb94b2586f2dbd311ed2d2f63df5f62dbe9bd89fd94bfcad19f2efead08a4929893df365470b24085
7
+ data.tar.gz: 4b642321d954e3ac44598052ae0c44164bfdf6f22c46e95ab4f03674cbc43244006dd6cfc35d901128c31b1ca9571e56718960753e687c7754cbc574389e8cab
data/CHANGELOG.md CHANGED
@@ -1,3 +1,5 @@
1
+ #### 0.6.6 (3/30/2016) - Merged pull request #14 from [raphi](https://github.com/raphi). Adds support for non-standard name attribute on #EXT-X-STREAM-INF tags.
2
+
1
3
  #### 0.6.5 (3/18/2016) - Merged pull requests #11 from [jviney](https://github.com/jviney). Adds codec string for main profile level 4.1.
2
4
 
3
5
  #### 0.6.4 (2/21/2016) - Merged pull requests #8, #9, and #10 from [jviney](https://github.com/jviney). Adds FRAME-RATE attribute to PlayListItem, fixes NONE option for CLOSED-CAPTIONS attribute.
data/Gemfile CHANGED
@@ -2,8 +2,3 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in m3u8.gemspec
4
4
  gemspec
5
-
6
- gem 'coveralls', require: false
7
- gem 'guard'
8
- gem 'guard-rspec', require: false
9
- gem 'simplecov', require: false
@@ -6,7 +6,7 @@ module M3u8
6
6
  attr_accessor :program_id, :width, :height, :codecs, :bandwidth,
7
7
  :audio_codec, :level, :profile, :video, :audio, :uri,
8
8
  :average_bandwidth, :subtitles, :closed_captions, :iframe,
9
- :frame_rate
9
+ :frame_rate, :name
10
10
  MISSING_CODEC_MESSAGE = 'Audio or video codec info should be provided.'
11
11
 
12
12
  def initialize(params = {})
@@ -69,7 +69,8 @@ module M3u8
69
69
  frame_rate: parse_frame_rate(attributes['FRAME-RATE']),
70
70
  video: attributes['VIDEO'], audio: attributes['AUDIO'],
71
71
  uri: attributes['URI'], subtitles: attributes['SUBTITLES'],
72
- closed_captions: attributes['CLOSED-CAPTIONS'] }
72
+ closed_captions: attributes['CLOSED-CAPTIONS'],
73
+ name: attributes['NAME'] }
73
74
  end
74
75
 
75
76
  def parse_average_bandwidth(value)
@@ -112,7 +113,8 @@ module M3u8
112
113
  audio_format,
113
114
  video_format,
114
115
  subtitles_format,
115
- closed_captions_format].compact.join(',')
116
+ closed_captions_format,
117
+ name_format].compact.join(',')
116
118
  end
117
119
 
118
120
  def program_id_format
@@ -168,6 +170,11 @@ module M3u8
168
170
  end
169
171
  end
170
172
 
173
+ def name_format
174
+ return if name.nil?
175
+ %(NAME="#{name}")
176
+ end
177
+
171
178
  def audio_codec
172
179
  return if @audio_codec.nil?
173
180
  return 'mp4a.40.2' if @audio_codec.downcase == 'aac-lc'
data/lib/m3u8/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # M3u8 provides parsing, generation, and validation of m3u8 playlists
2
2
  module M3u8
3
- VERSION = '0.6.5'
3
+ VERSION = '0.6.6'
4
4
  end
data/m3u8.gemspec CHANGED
@@ -20,5 +20,9 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency 'bundler'
22
22
  spec.add_development_dependency 'rake'
23
- spec.add_development_dependency 'rspec', '~> 3.3'
23
+ spec.add_development_dependency 'rspec', '~> 3.4'
24
+ spec.add_development_dependency 'coveralls'
25
+ spec.add_development_dependency 'guard'
26
+ spec.add_development_dependency 'guard-rspec'
27
+ spec.add_development_dependency 'simplecov'
24
28
  end
@@ -20,7 +20,8 @@ describe M3u8::PlaylistItem do
20
20
  input = %(#EXT-X-STREAM-INF:CODECS="avc",BANDWIDTH=540,) +
21
21
  %(PROGRAM-ID=1,RESOLUTION=1920x1080,FRAME-RATE=23.976,) +
22
22
  %(AVERAGE-BANDWIDTH=550,AUDIO="test",VIDEO="test2",) +
23
- %(SUBTITLES="subs",CLOSED-CAPTIONS="caps",URI="test.url")
23
+ %(SUBTITLES="subs",CLOSED-CAPTIONS="caps",URI="test.url",) +
24
+ %(NAME="1080p")
24
25
  item = M3u8::PlaylistItem.parse(input)
25
26
  expect(item.program_id).to eq '1'
26
27
  expect(item.codecs).to eq 'avc'
@@ -34,12 +35,14 @@ describe M3u8::PlaylistItem do
34
35
  expect(item.subtitles).to eq 'subs'
35
36
  expect(item.closed_captions).to eq 'caps'
36
37
  expect(item.uri).to eq 'test.url'
38
+ expect(item.name).to eq '1080p'
37
39
  end
38
40
 
39
41
  it 'should parse m3u8 into current instance' do
40
42
  input = %(#EXT-X-STREAM-INF:CODECS="avc",BANDWIDTH=540,) +
41
43
  %(PROGRAM-ID=1,AUDIO="test",VIDEO="test2",) +
42
- %(SUBTITLES="subs",CLOSED-CAPTIONS="caps",URI="test.url")
44
+ %(SUBTITLES="subs",CLOSED-CAPTIONS="caps",URI="test.url",) +
45
+ %(NAME="SD")
43
46
  item = M3u8::PlaylistItem.new
44
47
  item.parse(input)
45
48
  expect(item.program_id).to eq '1'
@@ -53,6 +56,7 @@ describe M3u8::PlaylistItem do
53
56
  expect(item.subtitles).to eq 'subs'
54
57
  expect(item.closed_captions).to eq 'caps'
55
58
  expect(item.uri).to eq 'test.url'
59
+ expect(item.name).to eq 'SD'
56
60
  end
57
61
  end
58
62
 
@@ -75,13 +79,13 @@ describe M3u8::PlaylistItem do
75
79
 
76
80
  hash = { codecs: 'avc', bandwidth: 540, uri: 'test.url', audio: 'test',
77
81
  video: 'test2', average_bandwidth: 500, subtitles: 'subs',
78
- frame_rate: 30, closed_captions: 'caps' }
82
+ frame_rate: 30, closed_captions: 'caps', name: 'SD' }
79
83
  item = M3u8::PlaylistItem.new(hash)
80
84
  output = item.to_s
81
85
  expected = %(#EXT-X-STREAM-INF:CODECS="avc",BANDWIDTH=540,) +
82
86
  %(AVERAGE-BANDWIDTH=500,FRAME-RATE=30.000,) +
83
87
  %(AUDIO="test",VIDEO="test2",SUBTITLES="subs",) +
84
- %(CLOSED-CAPTIONS="caps"\ntest.url)
88
+ %(CLOSED-CAPTIONS="caps",NAME="SD"\ntest.url)
85
89
  expect(output).to eq expected
86
90
  end
87
91
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: m3u8
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.6.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seth Deckard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-18 00:00:00.000000000 Z
11
+ date: 2016-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -44,14 +44,70 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.3'
47
+ version: '3.4'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.3'
54
+ version: '3.4'
55
+ - !ruby/object:Gem::Dependency
56
+ name: coveralls
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard-rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
55
111
  description: Generate and parse m3u8 playlists for HTTP Live Streaming (HLS).
56
112
  email:
57
113
  - seth@deckard.me