mp3file 0.0.2 → 0.0.3
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.
- data/Gemfile.lock +1 -1
- data/lib/mp3file/mp3_file.rb +9 -2
- data/lib/mp3file/version.rb +1 -1
- data/lib/mp3file.rb +1 -1
- data/spec/files/zeroes.mp3 +0 -0
- data/spec/mp3file/mp3_file_spec.rb +7 -0
- metadata +9 -8
data/Gemfile.lock
CHANGED
data/lib/mp3file/mp3_file.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
module Mp3file
|
2
|
+
class InvalidMP3FileError < Mp3fileError; end
|
3
|
+
|
2
4
|
class MP3File
|
3
5
|
attr_reader(:file, :file_size, :audio_size)
|
4
6
|
attr_reader(:first_header_offset, :first_header)
|
@@ -146,6 +148,7 @@ module Mp3file
|
|
146
148
|
end
|
147
149
|
|
148
150
|
header = nil
|
151
|
+
initial_header_offset = file.tell
|
149
152
|
header_offset = file.tell
|
150
153
|
|
151
154
|
while header.nil?
|
@@ -154,8 +157,12 @@ module Mp3file
|
|
154
157
|
header_offset = file.tell - 4
|
155
158
|
rescue InvalidMP3HeaderError => e
|
156
159
|
header_offset += 1
|
157
|
-
|
158
|
-
|
160
|
+
if header_offset - initial_header_offset > 4096
|
161
|
+
raise InvalidMP3FileError, "Could not find a valid MP3 header in the first 4096 bytes."
|
162
|
+
else
|
163
|
+
file.seek(header_offset, IO::SEEK_SET)
|
164
|
+
retry
|
165
|
+
end
|
159
166
|
end
|
160
167
|
|
161
168
|
# byte = file.readbyte
|
data/lib/mp3file/version.rb
CHANGED
data/lib/mp3file.rb
CHANGED
Binary file
|
@@ -87,4 +87,11 @@ describe Mp3file::MP3File do
|
|
87
87
|
its(:length) { should == 5 }
|
88
88
|
its(:vbr?) { should == false }
|
89
89
|
end
|
90
|
+
|
91
|
+
describe "A file consisting only of zeroes" do
|
92
|
+
it "raises an error" do
|
93
|
+
lambda { Mp3file::MP3File.new(fixture_file('zeroes.mp3')) }.
|
94
|
+
should(raise_error(Mp3file::InvalidMP3FileError))
|
95
|
+
end
|
96
|
+
end
|
90
97
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mp3file
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-08-02 00:00:00.000000000 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
17
|
-
requirement: &
|
17
|
+
requirement: &12396020 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '0'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *12396020
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: rake
|
28
|
-
requirement: &
|
28
|
+
requirement: &12395600 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *12395600
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: bindata
|
39
|
-
requirement: &
|
39
|
+
requirement: &12432520 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *12432520
|
48
48
|
description: Reads MP3 headers and returns their information.
|
49
49
|
email:
|
50
50
|
- ahwatts@gmail.com
|
@@ -80,6 +80,7 @@ files:
|
|
80
80
|
- spec/files/bret_id3v1.mp3
|
81
81
|
- spec/files/bret_id3v2.mp3
|
82
82
|
- spec/files/bret_vbr_6.mp3
|
83
|
+
- spec/files/zeroes.mp3
|
83
84
|
- spec/mp3file/id3v1_tag_spec.rb
|
84
85
|
- spec/mp3file/id3v2/bit_padded_int_spec.rb
|
85
86
|
- spec/mp3file/id3v2/frame_header_spec.rb
|