ruby-ogginfo 0.6.8 → 0.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. data/History.txt +4 -0
  2. data/lib/ogg/page.rb +15 -14
  3. data/lib/ogginfo.rb +2 -2
  4. metadata +19 -10
data/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ === 0.6.9 / 2012-05-18
2
+
3
+ * more robust Ogg pages parsing. (doesn't fail on truncated Ogg files)
4
+
1
5
  === 0.6.8 / 2012-02-28
2
6
 
3
7
  * removed :encoding parameter on OggInfo#new
data/lib/ogg/page.rb CHANGED
@@ -27,24 +27,25 @@ module Ogg
27
27
  page = Page.new(bitstream_serial_no, granule_pos)
28
28
  page.header = header
29
29
  page.sequence_no = sequence_no
30
- raise(StreamError, "got EOF when reading page") if io.eof?
31
30
 
32
- segment_sizes = io.read(segments).unpack("C*")
33
- if options[:skip_body]
34
- body_size = segment_sizes.inject(0) { |sum, i| sum + i }
35
- io.seek(body_size, IO::SEEK_CUR)
36
- else
37
- segment_sizes.each do |size|
38
- break if io.eof?
39
- page.segments << io.read(size)
40
- end
41
- if options[:checksum]
42
- if @checksum != Ogg.compute_checksum(page.pack)
43
- raise(StreamError, "bad checksum: expected #{ @checksum }, got #{ page.checksum }")
31
+ unless io.eof?
32
+ segment_sizes = io.read(segments).unpack("C*")
33
+ if options[:skip_body]
34
+ body_size = segment_sizes.inject(0) { |sum, i| sum + i }
35
+ io.seek(body_size, IO::SEEK_CUR)
36
+ else
37
+ segment_sizes.each do |size|
38
+ break if io.eof?
39
+ page.segments << io.read(size)
40
+ end
41
+ if options[:checksum]
42
+ if @checksum != Ogg.compute_checksum(page.pack)
43
+ raise(StreamError, "bad checksum: expected #{ @checksum }, got #{ page.checksum }")
44
+ end
44
45
  end
45
46
  end
46
47
  end
47
-
48
+
48
49
  page
49
50
  end
50
51
 
data/lib/ogginfo.rb CHANGED
@@ -25,7 +25,7 @@ end
25
25
  class OggInfoError < StandardError ; end
26
26
 
27
27
  class OggInfo
28
- VERSION = "0.6.8"
28
+ VERSION = "0.6.9"
29
29
  extend Forwardable
30
30
  include Ogg
31
31
 
@@ -44,7 +44,7 @@ class OggInfo
44
44
  @length = nil
45
45
  @bitrate = nil
46
46
  filesize = File.size(@filename)
47
- File.open(@filename) do |file|
47
+ File.open(@filename, 'rb') do |file|
48
48
  begin
49
49
  info = read_headers(file)
50
50
  @samplerate = info[:samplerate]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-ogginfo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.8
4
+ version: 0.6.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,12 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-02-28 00:00:00.000000000 +01:00
14
- default_executable:
13
+ date: 2012-05-18 00:00:00.000000000Z
15
14
  dependencies:
16
15
  - !ruby/object:Gem::Dependency
17
16
  name: rdoc
18
- requirement: &71330730 !ruby/object:Gem::Requirement
17
+ requirement: &73429950 !ruby/object:Gem::Requirement
19
18
  none: false
20
19
  requirements:
21
20
  - - ~>
@@ -23,18 +22,29 @@ dependencies:
23
22
  version: '3.10'
24
23
  type: :development
25
24
  prerelease: false
26
- version_requirements: *71330730
25
+ version_requirements: *73429950
26
+ - !ruby/object:Gem::Dependency
27
+ name: rcov
28
+ requirement: &73429430 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '0.9'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: *73429430
27
37
  - !ruby/object:Gem::Dependency
28
38
  name: hoe
29
- requirement: &71330390 !ruby/object:Gem::Requirement
39
+ requirement: &73429100 !ruby/object:Gem::Requirement
30
40
  none: false
31
41
  requirements:
32
42
  - - ~>
33
43
  - !ruby/object:Gem::Version
34
- version: '2.12'
44
+ version: '3.0'
35
45
  type: :development
36
46
  prerelease: false
37
- version_requirements: *71330390
47
+ version_requirements: *73429100
38
48
  description: ! 'ruby-ogginfo gives you access to low level information on ogg files
39
49
 
40
50
  (bitrate, length, samplerate, encoder, etc... ), as well as tag.
@@ -66,7 +76,6 @@ files:
66
76
  - test/test_ruby-ogginfo.rb
67
77
  - test/test_ruby-spxinfo.rb
68
78
  - .gemtest
69
- has_rdoc: true
70
79
  homepage: http://ruby-ogginfo.rubyforge.org/
71
80
  licenses: []
72
81
  post_install_message:
@@ -89,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
98
  version: '0'
90
99
  requirements: []
91
100
  rubyforge_project: ruby-ogginfo
92
- rubygems_version: 1.6.2
101
+ rubygems_version: 1.8.17
93
102
  signing_key:
94
103
  specification_version: 3
95
104
  summary: ruby-ogginfo gives you access to low level information on ogg files (bitrate,