# File lib/icanhasaudio/mpeg/decoder.rb, line 15 def decode input, output buf = skip_id3_header(input) decode_headers_for(buf) while !mp3data.header_parsed? decode_headers_for(input.read(100)) end mp3data.nsamp = MP3Data::MAX_U_32_NUM unless mp3data.total_frames > 0 wav = WAV::File.new(output) wav.write_header(0x7FFFFFFF, 0, num_channels, in_samplerate) if !@raw native_decode(input, wav) if !@raw && attempt_rewind(wav) wav.write_header(@wavsize + 44, 0, num_channels, in_samplerate) end end