diff --git a/test/sbc/sbc_decoder.py b/test/sbc/sbc_decoder.py index 2c44e0db5..5c7487b26 100755 --- a/test/sbc/sbc_decoder.py +++ b/test/sbc/sbc_decoder.py @@ -200,59 +200,60 @@ def write_wav_file(fout, sample): fout.writeframes(value_str) -# usage = ''' -# Usage: ./sbc_decoder.py input.sbc -# ''' +if __name__ == "__main__": + usage = ''' + Usage: ./sbc_decoder.py input.sbc + ''' -# if (len(sys.argv) < 2): -# print(usage) -# sys.exit(1) -# try: -# infile = sys.argv[1] -# if not infile.endswith('.sbc'): -# print(usage) -# sys.exit(1) + if (len(sys.argv) < 2): + print(usage) + sys.exit(1) + try: + infile = sys.argv[1] + if not infile.endswith('.sbc'): + print(usage) + sys.exit(1) -# wavfile = infile.replace('.sbc', '-decoded.wav') + wavfile = infile.replace('.sbc', '-decoded.wav') -# with open (infile, 'rb') as fin: -# try: -# frame_count = 0 -# while True: -# sbc_frame = SBCFrame(0,0,0,0,0) -# if frame_count % 200 == 0: -# print "== Frame %d ==" % (frame_count) -# err = sbc_unpack_frame(fin, sbc_frame) -# if err: -# print "error, frame_count: ", frame_count -# break - -# sbc_decode(sbc_frame) -# # print sbc_frame.pcm - -# if frame_count == 0: -# fout = wave.open(wavfile, 'w') -# fout.setnchannels(sbc_frame.nr_channels) -# fout.setsampwidth(2) -# fout.setframerate(sampling_frequency[sbc_frame.sampling_frequency]) -# fout.setnframes(0) -# fout.setcomptype = 'NONE' - -# write_wav_file(fout, sbc_frame.pcm) -# frame_count += 1 - -# # if frame_count == 8: -# # fout.close() -# # break + with open (infile, 'rb') as fin: + try: + frame_count = 0 + while True: + sbc_frame = SBCFrame(0,0,0,0,0) + if frame_count % 200 == 0: + print "== Frame %d ==" % (frame_count) + err = sbc_unpack_frame(fin, sbc_frame) + if err: + print "error, frame_count: ", frame_count + break + + sbc_decode(sbc_frame) + # print sbc_frame.pcm + + if frame_count == 0: + fout = wave.open(wavfile, 'w') + fout.setnchannels(sbc_frame.nr_channels) + fout.setsampwidth(2) + fout.setframerate(sampling_frequency[sbc_frame.sampling_frequency]) + fout.setnframes(0) + fout.setcomptype = 'NONE' + + write_wav_file(fout, sbc_frame.pcm) + frame_count += 1 + + # if frame_count == 8: + # fout.close() + # break -# except TypeError: -# fout.close() -# print "DONE, SBC file %s decoded into WAV file %s ", (infile, wavfile) -# exit(0) + except TypeError: + fout.close() + print "DONE, SBC file %s decoded into WAV file %s ", (infile, wavfile) + exit(0) -# except IOError as e: -# print(usage) -# sys.exit(1) + except IOError as e: + print(usage) + sys.exit(1) diff --git a/test/sbc/sbc_encoder.py b/test/sbc/sbc_encoder.py index 988738cc8..2abe9e3fc 100755 --- a/test/sbc/sbc_encoder.py +++ b/test/sbc/sbc_encoder.py @@ -49,9 +49,9 @@ def sbc_analyse(frame, ch, blk, C, debug): if debug: #print "EX:", frame.EX print "X:", X - print "Z:" - print "Y:", Y - print "W:", W + # print "Z:" + # print "Y:", Y + # print "W:", W print "S:", S for sb in range(M): @@ -163,60 +163,63 @@ def sbc_quantization(frame): return 0 +if __name__ == "__main__": + usage = ''' + Usage: ./sbc_encoder.py input.wav block_size nr_subbands bitpool + ''' + nr_blocks = 0 + nr_subbands = 0 -# usage = ''' -# Usage: ./sbc_encoder.py input.wav block_size nr_subbands bitpool -# ''' -# nr_blocks = 0 -# nr_subbands = 0 + if (len(sys.argv) < 5): + print(usage) + sys.exit(1) + try: + infile = sys.argv[1] + if not infile.endswith('.wav'): + print(usage) + sys.exit(1) + nr_blocks = int(sys.argv[2]) + nr_subbands = int(sys.argv[3]) + bitpool = int(sys.argv[4]) + sbcfile = infile.replace('.wav', '-encoded.sbc') -# if (len(sys.argv) < 5): -# print(usage) -# sys.exit(1) -# try: -# infile = sys.argv[1] -# if not infile.endswith('.wav'): -# print(usage) -# sys.exit(1) -# nr_blocks = int(sys.argv[2]) -# nr_subbands = int(sys.argv[3]) -# bitpool = int(sys.argv[4]) -# sbcfile = infile.replace('.wav', '-encoded.sbc') - -# fin = wave.open(infile, 'rb') - -# wav_nr_channels = fin.getnchannels() -# wav_sample_rate = fin.getframerate() -# wav_nr_frames = fin.getnframes() -# sbc_sampling_frequency = sbc_sampling_frequency_index(wav_sample_rate) - -# sbc_frame_count = 0 -# audio_frame_count = 0 - -# while audio_frame_count < wav_nr_frames: -# if sbc_frame_count % 200 == 0: -# print "== Frame %d ==" % (sbc_frame_count) - -# sbc_encoder_frame = SBCFrame(nr_blocks, nr_subbands, wav_nr_channels, sbc_sampling_frequency, bitpool) + fin = wave.open(infile, 'rb') -# wav_nr_audio_frames = sbc_encoder_frame.nr_blocks * sbc_encoder_frame.nr_subbands -# fetch_samples_for_next_sbc_frame(fin, wav_nr_audio_frames, sbc_encoder_frame) -# sbc_encode(sbc_encoder_frame) + wav_nr_channels = fin.getnchannels() + wav_sample_rate = fin.getframerate() + wav_nr_frames = fin.getnframes() + sbc_sampling_frequency = sbc_sampling_frequency_index(wav_sample_rate) + + sbc_frame_count = 0 + audio_frame_count = 0 + + while audio_frame_count < wav_nr_frames: + # if sbc_frame_count % 200 == 0: + print "== Frame %d ==" % (sbc_frame_count) + + sbc_encoder_frame = SBCFrame(nr_blocks, nr_subbands, wav_nr_channels, sbc_sampling_frequency, bitpool) + + wav_nr_audio_frames = sbc_encoder_frame.nr_blocks * sbc_encoder_frame.nr_subbands + fetch_samples_for_next_sbc_frame(fin, wav_nr_audio_frames, sbc_encoder_frame) + sbc_encode(sbc_encoder_frame, 1) + + # stream = frame_to_bitstream(frame) + audio_frame_count += wav_nr_audio_frames + sbc_frame_count += 1 + + if sbc_frame_count == 87: + break; + + # except TypeError: + # fin.close() + # print "DONE, WAV file %s encoded into SBC file %s ", (infile, sbcfile) + + #channels, num_audio_frames, wav_nr_channels, wav_sample_rate = read_waw_file(wavfile) -# # stream = frame_to_bitstream(frame) -# audio_frame_count += wav_nr_audio_frames -# sbc_frame_count += 1 - -# # except TypeError: -# # fin.close() -# # print "DONE, WAV file %s encoded into SBC file %s ", (infile, sbcfile) - -# #channels, num_audio_frames, wav_nr_channels, wav_sample_rate = read_waw_file(wavfile) - - -# except IOError as e: -# print(usage) -# sys.exit(1) + + except IOError as e: + print(usage) + sys.exit(1) diff --git a/test/sbc/sbc_test.py b/test/sbc/sbc_test.py index 94a6abb89..564b81d5a 100755 --- a/test/sbc/sbc_test.py +++ b/test/sbc/sbc_test.py @@ -149,7 +149,6 @@ try: sbc_decoder_frame.nr_channels, sbc_decoder_frame.sampling_frequency, sbc_decoder_frame.bitpool) - sbc_encoder_frame.pcm = np.array(sbc_decoder_frame.pcm) # TODO: join field # TODO: clear memory @@ -158,8 +157,9 @@ try: # sbc_quantization(sbc_encoder_frame) # print "encoder pcm ", sbc_encoder_frame.pcm - sbc_encode(sbc_encoder_frame,frame_count >86) - + # if frame_count > 86: + print sbc_decoder_frame.sb_sample[0][0] + sbc_encode(sbc_encoder_frame,frame_count >= 0) # test err = check_equal(sbc_encoder_frame, sbc_decoder_frame, frame_count) if err: