ruby-mp3info 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.
- data/History.txt +5 -0
- data/lib/mp3info.rb +14 -12
- metadata +2 -2
data/History.txt
CHANGED
data/lib/mp3info.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# coding:utf-8
|
2
|
-
# $Id: mp3info.rb
|
2
|
+
# $Id: mp3info.rb 98 2008-09-16 11:07:31Z moumar $
|
3
3
|
# License:: Ruby
|
4
4
|
# Author:: Guillaume Pierronnet (mailto:moumar_AT__rubyforge_DOT_org)
|
5
5
|
# Website:: http://ruby-mp3info.rubyforge.org/
|
@@ -18,7 +18,7 @@ end
|
|
18
18
|
|
19
19
|
class Mp3Info
|
20
20
|
|
21
|
-
VERSION = "0.6.
|
21
|
+
VERSION = "0.6.9"
|
22
22
|
|
23
23
|
LAYER = [ nil, 3, 2, 1]
|
24
24
|
BITRATE = {
|
@@ -333,16 +333,18 @@ class Mp3Info
|
|
333
333
|
|
334
334
|
def get_frames_infos(head)
|
335
335
|
# be sure we are in sync
|
336
|
-
if (head & 0xffe00000 != 0xffe00000) || # 11 bit MPEG frame sync
|
337
|
-
(head & 0x00060000 == 0x00060000) || # 2 bit layer type
|
338
|
-
(head & 0x0000f000 == 0x0000f000) || # 4 bit bitrate
|
339
|
-
(head & 0x0000f000 == 0x00000000) || # free format bitstream
|
340
|
-
(head & 0x00000c00 == 0x00000c00) || # 2 bit frequency
|
341
|
-
(head & 0xffff0000 == 0xfffe0000)
|
336
|
+
if ((head & 0xffe00000) != 0xffe00000) || # 11 bit MPEG frame sync
|
337
|
+
((head & 0x00060000) == 0x00060000) || # 2 bit layer type
|
338
|
+
((head & 0x0000f000) == 0x0000f000) || # 4 bit bitrate
|
339
|
+
((head & 0x0000f000) == 0x00000000) || # free format bitstream
|
340
|
+
((head & 0x00000c00) == 0x00000c00) || # 2 bit frequency
|
341
|
+
((head & 0xffff0000) == 0xfffe0000)
|
342
342
|
raise Mp3InfoInternalError
|
343
343
|
end
|
344
344
|
mpeg_version = [2.5, nil, 2, 1][bits(head, 20,19)]
|
345
|
+
|
345
346
|
layer = LAYER[bits(head, 18,17)]
|
347
|
+
raise Mp3InfoInternalError if layer == nil || mpeg_version == nil
|
346
348
|
{ :layer => layer,
|
347
349
|
:bitrate => BITRATE[mpeg_version][layer-1][bits(head, 15,12)-1],
|
348
350
|
:samplerate => SAMPLERATE[mpeg_version][bits(head, 11,10)],
|
@@ -548,9 +550,9 @@ private
|
|
548
550
|
### assumes @file is pointing to char after "TAG" id
|
549
551
|
def gettag1
|
550
552
|
@tag1_parsed = true
|
551
|
-
@tag1["title"] = @file.read(30).
|
552
|
-
@tag1["artist"] = @file.read(30).
|
553
|
-
@tag1["album"] = @file.read(30).
|
553
|
+
@tag1["title"] = @file.read(30).unpack("A*").first
|
554
|
+
@tag1["artist"] = @file.read(30).unpack("A*").first
|
555
|
+
@tag1["album"] = @file.read(30).unpack("A*").first
|
554
556
|
year_t = @file.read(4).to_i
|
555
557
|
@tag1["year"] = year_t unless year_t == 0
|
556
558
|
comments = @file.read(30)
|
@@ -558,7 +560,7 @@ private
|
|
558
560
|
@tag1["tracknum"] = comments.getbyte(-1).to_i
|
559
561
|
comments.chop! #remove the last char
|
560
562
|
end
|
561
|
-
@tag1["comments"] = comments.
|
563
|
+
@tag1["comments"] = comments.unpack("A*").first
|
562
564
|
@tag1["genre"] = @file.getbyte
|
563
565
|
@tag1["genre_s"] = GENRES[@tag1["genre"]] || ""
|
564
566
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-mp3info
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Guillaume Pierronnet
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-09-16 00:00:00 +02:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|