lame 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.
@@ -182,7 +182,7 @@ module LAME
182
182
 
183
183
  # encoding
184
184
  attach_function :lame_encode_buffer, [:global_flags, :buffer_in, :buffer_in, :int, :buffer_out, :int], :int
185
- attach_function :lame_encode_buffer_interleaved, [:global_flags, :buffer_in, :buffer_in, :int, :buffer_out, :int], :int
185
+ attach_function :lame_encode_buffer_interleaved, [:global_flags, :buffer_in, :int, :buffer_out, :int], :int
186
186
  attach_function :lame_encode_buffer_float, [:global_flags, :buffer_in, :buffer_in, :int, :buffer_out, :int], :int
187
187
  attach_function :lame_encode_buffer_ieee_float, [:global_flags, :buffer_in, :buffer_in, :int, :buffer_out, :int], :int
188
188
  attach_function :lame_encode_buffer_interleaved_ieee_float, [:global_flags, :buffer_in, :int, :buffer_out, :int], :int
@@ -1,3 +1,3 @@
1
1
  module LAME
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -105,6 +105,15 @@ module LAME
105
105
 
106
106
  context "interleaved" do
107
107
 
108
+ context "short-buffer" do
109
+ let(:input_type) { :short }
110
+
111
+ it "encodes" do
112
+ return_code = LAME.lame_encode_buffer_interleaved(@flags_pointer, input_buffer_interleaved, input_buffer_size, output_buffer, output_buffer_size)
113
+ return_code.should >= 0
114
+ end
115
+ end
116
+
108
117
  context "ieee float-buffer" do
109
118
  let(:input_type) { :float }
110
119
 
@@ -24,9 +24,11 @@ describe "Decoding", :slow => true do
24
24
  end
25
25
 
26
26
  it "decodes an MP3 file" do
27
+ @debug = false
28
+
27
29
  # id3
28
30
  id3_length = id3_length(mp3_file)
29
- puts "ID3 length: #{id3_length} bytes"
31
+ puts "ID3 length: #{id3_length} bytes" if @debug
30
32
  mp3_file.read(id3_length)
31
33
 
32
34
  # aid TODO (ignored for now)
@@ -34,7 +36,7 @@ describe "Decoding", :slow => true do
34
36
  # find MP3 sync frame
35
37
 
36
38
  mp3_offset = mpeg_audio_offset(mp3_file, id3_length)
37
- puts "offset: #{mp3_offset}"
39
+ puts "offset: #{mp3_offset}" if @debug
38
40
 
39
41
  @decode_flags = LAME::FFI::DecodeFlags.new
40
42
  @mp3_data = LAME::FFI::MP3Data.new
@@ -46,7 +48,7 @@ describe "Decoding", :slow => true do
46
48
  end until @mp3_data.header_parsed?
47
49
 
48
50
  # Results:
49
- if @mp3_data.header_parsed?
51
+ if @mp3_data.header_parsed? && @debug
50
52
  puts "stereo: #{@mp3_data[:stereo]}"
51
53
  puts "samplerate: #{@mp3_data[:samplerate]}"
52
54
  puts "bitrate: #{@mp3_data[:bitrate]}"
@@ -95,7 +97,7 @@ describe "Decoding", :slow => true do
95
97
 
96
98
  result = LAME.hip_decode1_headersB(@decode_flags, in_buffer, size, out_left, out_right, @mp3_data, enc_delay, enc_padding)
97
99
 
98
- if @mp3_data.header_parsed?
100
+ if @mp3_data.header_parsed? && @debug
99
101
  puts "header parsed @ #{mp3_file.pos}"
100
102
  puts "enc_delay: #{enc_delay.read_array_of_int(1)}"
101
103
  puts "enc_padding: #{enc_padding.read_array_of_int(1)}"
@@ -151,7 +153,7 @@ describe "Decoding", :slow => true do
151
153
  in_data = mp3_file.read(window_size)
152
154
 
153
155
  if LAME::Decoding::MPEGAudioFrameMatcher.new(in_data).match?
154
- puts "match offset @ #{offset} : #{in_data.bytes.to_a[0].to_s(2)} #{in_data.bytes.to_a[1].to_s(2)} #{in_data.bytes.to_a[2].to_s(2)} #{in_data.bytes.to_a[3].to_s(2)}"
156
+ puts "match offset @ #{offset} : #{in_data.bytes.to_a[0].to_s(2)} #{in_data.bytes.to_a[1].to_s(2)} #{in_data.bytes.to_a[2].to_s(2)} #{in_data.bytes.to_a[3].to_s(2)}" if @debug
155
157
  return offset
156
158
  end
157
159
 
@@ -63,6 +63,30 @@ describe "Encoding", :slow => true do
63
63
  # Digest::MD5.hexdigest(File.read(mp3_path_api)).should eql "d1cd92c106e7aac4f5291fd141a19e10"
64
64
  end
65
65
 
66
+ it "encodes a file using interleaved api" do
67
+
68
+ encoder = LAME::Encoder.new
69
+
70
+ encoder.configure do |config|
71
+ config.bitrate = 192
72
+ end
73
+
74
+ File.open(mp3_path_api, "wb") do |file|
75
+
76
+ wav_reader.each_buffer(encoder.framesize) do |read_buffer|
77
+ encoder.encode_interleaved_short(read_buffer.samples.flatten) do |mp3|
78
+ file.write mp3
79
+ end
80
+ end
81
+ encoder.flush do |flush_frame|
82
+ file.write(flush_frame)
83
+ end
84
+ end
85
+
86
+ # TODO: Need a better way to test output..
87
+ # Digest::MD5.hexdigest(File.read(mp3_path_api)).should eql "d1cd92c106e7aac4f5291fd141a19e10"
88
+ end
89
+
66
90
  # This test serves as an example how to use the LAME API
67
91
  it "encodes a wav file" do
68
92
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: lame
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Roel van Dijk
@@ -213,7 +213,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
213
213
  requirements:
214
214
  - - ! '>='
215
215
  - !ruby/object:Gem::Version
216
- hash: -3758969818972899808
216
+ hash: 220624676423183308
217
217
  segments:
218
218
  - 0
219
219
  version: '0'
@@ -222,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
222
  requirements:
223
223
  - - ! '>='
224
224
  - !ruby/object:Gem::Version
225
- hash: -3758969818972899808
225
+ hash: 220624676423183308
226
226
  segments:
227
227
  - 0
228
228
  version: '0'