nu_wav 0.4.5 → 0.5.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 711f1ff9cf1e866c3a00c0be81d4f67aad7c02dc
4
- data.tar.gz: e906d964674f1f2f1811cfe481ceeacbb33f4b90
3
+ metadata.gz: 8c30891ab0c891a3979c1941e18e9c12a1bbd440
4
+ data.tar.gz: 96f2fc0f82f3fcd1bb82b8fa4a88292e2bbb1da4
5
5
  SHA512:
6
- metadata.gz: d618ffb303ad737921f15bd2251621b438a4f3d5b513fbb3d2d6094f87233d35d30b9864423013955d0d4a73a6cf9f4099eb3855767122a65532ad414be6efa9
7
- data.tar.gz: c270464f572ac25f788d774e59a889bdd437cc84e7dcd1611ccdffaa0b608bb2a35269f689267377b6e07180da9c32a6a93c1d076129e4224ccab1e2d049328e
6
+ metadata.gz: 877cb25d33a3679a51a2f7c229628536b7696efeb1385639af751b82b05c11a2fca5e443cddd5217d12c6f287261c6e81212cf8d112b70cb4e7849439ab472e2
7
+ data.tar.gz: ebc5112bf96fee32b4851cd0e1c09a1ea3fe65dda6c5b87aed483bdd7579fc8d8366920136e9b0162e2919ed0fb78611479a3e2d9d6dd9c442e95f35ef358063
@@ -49,7 +49,7 @@ module NuWav
49
49
  out
50
50
  end
51
51
 
52
- def to_binary
52
+ def to_binary(options={})
53
53
  end
54
54
  end
55
55
 
@@ -94,7 +94,7 @@ module NuWav
94
94
  end
95
95
  end
96
96
 
97
- def to_binary
97
+ def to_binary(options={})
98
98
  out = ''
99
99
  out += write_word(@compression_code)
100
100
  out += write_word(@number_of_channels)
@@ -138,7 +138,7 @@ module NuWav
138
138
  "<chunk type:fact samples_number:#{@samples_number} />"
139
139
  end
140
140
 
141
- def to_binary
141
+ def to_binary(options={})
142
142
  "fact" + write_dword(4) + write_dword(@samples_number)
143
143
  end
144
144
 
@@ -159,7 +159,7 @@ module NuWav
159
159
  "<chunk type:mext sound_information:(#{sound_information}) #{(0..15).inject(''){|s,x| "#{s}#{sound_information[x]}"}}, frame_size:#{frame_size}, ancillary_data_length:#{ancillary_data_length}, ancillary_data_def:#{(0..15).inject(''){|s,x| "#{s}#{ancillary_data_def[x]}"}}, reserved:'#{reserved}' />"
160
160
  end
161
161
 
162
- def to_binary
162
+ def to_binary(options={})
163
163
  out = "mext" + write_dword(12)
164
164
  out += write_word(@sound_information)
165
165
  out += write_word(@frame_size)
@@ -192,7 +192,7 @@ module NuWav
192
192
  "<chunk type:bext description:'#{description}', originator:'#{originator}', originator_reference:'#{originator_reference}', origination_date:'#{origination_date}', origination_time:'#{origination_time}', time_reference_low:#{time_reference_low}, time_reference_high:#{time_reference_high}, version:#{version}, umid:#{umid}, reserved:'#{reserved}', coding_history:#{coding_history} />"
193
193
  end
194
194
 
195
- def to_binary
195
+ def to_binary(options={})
196
196
  out = "bext" + write_dword(602 + @coding_history.length )
197
197
  out += write_char(@description, 256)
198
198
  out += write_char(@originator, 32)
@@ -242,7 +242,7 @@ module NuWav
242
242
  "<chunk type:cart version:#{version}, title:#{title}, artist:#{artist}, cut_id:#{cut_id}, client_id:#{client_id}, category:#{category}, classification:#{classification}, out_cue:#{out_cue}, start_date:#{start_date}, start_time:#{start_time}, end_date:#{end_date}, end_time:#{end_time}, producer_app_id:#{producer_app_id}, producer_app_version:#{producer_app_version}, user_def:#{user_def}, level_reference:#{level_reference}, post_timer:#{post_timer}, reserved:#{reserved}, url:#{url}, tag_text:#{tag_text} />"
243
243
  end
244
244
 
245
- def to_binary
245
+ def to_binary(options={})
246
246
  out = "cart" + write_dword(2048 + @tag_text.length )
247
247
  out += write_char(@version,4)
248
248
  out += write_char(@title,64)
@@ -319,12 +319,12 @@ module NuWav
319
319
  "<chunk type:data (size:#{data.size})/>"
320
320
  end
321
321
 
322
- def to_binary
322
+ def to_binary(options={})
323
323
  NuWav::WaveFile.log "data chunk to_binary"
324
324
  d = self.data
325
325
  NuWav::WaveFile.log "got data size = #{d.size} #{d[0,10]}"
326
326
  out = "data" + write_dword(d.size) + d
327
- if d.size.odd?
327
+ if d.size.odd? && !options[:no_pad_byte]
328
328
  NuWav::WaveFile.log "odd, adding a pad byte"
329
329
  out += "\0"
330
330
  end
@@ -1,3 +1,3 @@
1
1
  module NuWav
2
- VERSION = "0.4.5"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -104,8 +104,8 @@ module NuWav
104
104
  end
105
105
  end
106
106
 
107
- def to_file(file_name, add_extension=false)
108
- if add_extension && !(file_name =~ /\.wav/)
107
+ def to_file(file_name, options={})
108
+ if options[:add_extension] && !(file_name =~ /\.wav/)
109
109
  file_name += ".wav"
110
110
  end
111
111
  NuWav::WaveFile.log "NuWav::WaveFile.to_file: file_name = #{file_name}"
@@ -113,7 +113,7 @@ module NuWav
113
113
  #get all the chunks together to get final length
114
114
  chunks_out = [:fmt, :fact, :mext, :bext, :cart, :data].inject([]) do |list, chunk|
115
115
  if self.chunks[chunk]
116
- out = self.chunks[chunk].to_binary
116
+ out = self.chunks[chunk].to_binary(options)
117
117
  NuWav::WaveFile.log out.length
118
118
  list << out
119
119
  end
Binary file
@@ -98,15 +98,34 @@ class TestNuWav < Test::Unit::TestCase
98
98
  assert File.exists?('test_from_mpeg.wav')
99
99
  assert_equal File.size('test_from_mpeg.wav'), 182522
100
100
  File.delete('test_from_mpeg.wav')
101
+ end
102
+
103
+ def test_from_mpeg_no_pad
104
+ w = WaveFile.from_mpeg(File.expand_path(File.dirname(__FILE__) + '/files/test_odd.mp2'))
101
105
 
106
+ File.delete('test_no_pad.wav') rescue nil
107
+ w.to_file('test_no_pad.wav')
108
+ assert File.exists?('test_no_pad.wav')
109
+ assert_equal File.size('test_no_pad.wav'), 962226
110
+ File.delete('test_no_pad.wav')
102
111
 
103
- File.delete('test_from_mpeg.mp2') rescue nil
104
- w.write_data_file('test_from_mpeg.mp2')
105
- assert File.exists?('test_from_mpeg.mp2')
106
- assert_equal File.size('test_from_mpeg.mp2'), 179712
107
- File.delete('test_from_mpeg.mp2')
112
+ File.delete('test_no_pad.wav') rescue nil
113
+ w.to_file('test_no_pad.wav', {:no_pad_byte=>true})
114
+ assert File.exists?('test_no_pad.wav')
115
+ assert_equal File.size('test_no_pad.wav'), 962225
116
+ File.delete('test_no_pad.wav')
108
117
  end
109
-
118
+
119
+ def test_write_data_file
120
+ w = WaveFile.from_mpeg(File.expand_path(File.dirname(__FILE__) + '/files/test.mp2'))
121
+
122
+ File.delete('test_write_data_file.mp2') rescue nil
123
+ w.write_data_file('test_write_data_file.mp2')
124
+ assert File.exists?('test_write_data_file.mp2')
125
+ assert_equal File.size('test_write_data_file.mp2'), 179712
126
+ File.delete('test_write_data_file.mp2')
127
+ end
128
+
110
129
  def unpad(str)
111
130
  str.gsub(/\0*$/, '')
112
131
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nu_wav
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kuklewicz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-10 00:00:00.000000000 Z
11
+ date: 2014-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby-mp3info
@@ -74,6 +74,7 @@ files:
74
74
  - test/files/test.mp2
75
75
  - test/files/test_basic.wav
76
76
  - test/files/test_bwf.wav
77
+ - test/files/test_odd.mp2
77
78
  - test/helper.rb
78
79
  - test/test_nu_wav.rb
79
80
  homepage: http://github.com/kookster/nu_wav
@@ -104,5 +105,6 @@ test_files:
104
105
  - test/files/test.mp2
105
106
  - test/files/test_basic.wav
106
107
  - test/files/test_bwf.wav
108
+ - test/files/test_odd.mp2
107
109
  - test/helper.rb
108
110
  - test/test_nu_wav.rb