[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] [gnuradio] 06/09: vocoder: Fixed GSM GRC bindings and
From: |
git |
Subject: |
[Commit-gnuradio] [gnuradio] 06/09: vocoder: Fixed GSM GRC bindings and improved docs, provided example |
Date: |
Fri, 7 Mar 2014 17:52:59 +0000 (UTC) |
This is an automated email from the git hooks/post-receive script.
trondeau pushed a commit to branch master
in repository gnuradio.
commit e44fe2887ad3755c9320b77d8ac3e5162a9ac665
Author: Martin Braun <address@hidden>
Date: Fri Mar 7 16:18:16 2014 +0100
vocoder: Fixed GSM GRC bindings and improved docs, provided example
---
gr-vocoder/doc/vocoder.dox | 10 +
gr-vocoder/examples/loopback-gsmfr.grc | 1078 ++++++++++++++++++++
gr-vocoder/grc/vocoder_gsm_fr_decode_ps.xml | 1 +
gr-vocoder/grc/vocoder_gsm_fr_encode_sp.xml | 1 +
.../include/gnuradio/vocoder/gsm_fr_decode_ps.h | 5 +-
.../include/gnuradio/vocoder/gsm_fr_encode_sp.h | 9 +-
gr-vocoder/lib/gsm_fr_encode_sp_impl.cc | 2 +-
7 files changed, 1100 insertions(+), 6 deletions(-)
diff --git a/gr-vocoder/doc/vocoder.dox b/gr-vocoder/doc/vocoder.dox
index 3973ca5..0e12566 100644
--- a/gr-vocoder/doc/vocoder.dox
+++ b/gr-vocoder/doc/vocoder.dox
@@ -20,4 +20,14 @@ by using:
help(vocoder)
\endcode
+\section using Using the vocoders
+
+Note that most vocoders use short inputs instead of floats. This means you
+must convert audio signals from float to short by using a type conversion
+and a scaling factor. See the examples.
+
+The format of the encoded audio is different for every encoder. See the
+individual block's documention for the data format. Encoded data is usually
+a vector of fixed length, and can either be packed or unpacked.
+
*/
diff --git a/gr-vocoder/examples/loopback-gsmfr.grc
b/gr-vocoder/examples/loopback-gsmfr.grc
new file mode 100644
index 0000000..f1c0e06
--- /dev/null
+++ b/gr-vocoder/examples/loopback-gsmfr.grc
@@ -0,0 +1,1078 @@
+<?xml version='1.0' encoding='ASCII'?>
+<flow_graph>
+ <timestamp>Fri Mar 7 16:29:26 2014</timestamp>
+ <block>
+ <key>options</key>
+ <param>
+ <key>id</key>
+ <value>loopback_gsmfr</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>title</key>
+ <value>GSM Full-Rate 06.10 Codec Looback Test</value>
+ </param>
+ <param>
+ <key>author</key>
+ <value>Martin Braun</value>
+ </param>
+ <param>
+ <key>description</key>
+ <value>An example how to use the GSM-FR Vocoder</value>
+ </param>
+ <param>
+ <key>window_size</key>
+ <value>1280, 1024</value>
+ </param>
+ <param>
+ <key>generate_options</key>
+ <value>qt_gui</value>
+ </param>
+ <param>
+ <key>category</key>
+ <value>Custom</value>
+ </param>
+ <param>
+ <key>run_options</key>
+ <value>prompt</value>
+ </param>
+ <param>
+ <key>run</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>max_nouts</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>realtime_scheduling</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(0, -1)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>samp_rate</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>48000</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(186, 0)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable</key>
+ <param>
+ <key>id</key>
+ <value>scale</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>2**12</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(301, -1)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>qtgui_time_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_time_sink_x_0_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>Audio Pre-Encoding</value>
+ </param>
+ <param>
+ <key>size</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>srate</key>
+ <value>8000</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>tr_mode</key>
+ <value>qtgui.TRIG_MODE_FREE</value>
+ </param>
+ <param>
+ <key>tr_slope</key>
+ <value>qtgui.TRIG_SLOPE_POS</value>
+ </param>
+ <param>
+ <key>tr_level</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>tr_delay</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_chan</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_tag</key>
+ <value>""</value>
+ </param>
+ <param>
+ <key>entags</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(434, 202)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>rational_resampler_xxx</key>
+ <param>
+ <key>id</key>
+ <value>rational_resampler_xxx_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>fff</value>
+ </param>
+ <param>
+ <key>interp</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>decim</key>
+ <value>6</value>
+ </param>
+ <param>
+ <key>taps</key>
+ <value></value>
+ </param>
+ <param>
+ <key>fbw</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(204, 94)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>virtual_sink_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>Unencoded Speech</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(508, 25)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_source</key>
+ <param>
+ <key>id</key>
+ <value>virtual_source_1_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>Decoded Speech</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(3, 449)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_source</key>
+ <param>
+ <key>id</key>
+ <value>virtual_source_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>Unencoded Speech</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(-1, 389)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>variable_qtgui_check_box</key>
+ <param>
+ <key>id</key>
+ <value>play_encoded</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>label</key>
+ <value>Encode Audio</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>int</value>
+ </param>
+ <param>
+ <key>value</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>true</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>false</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(834, 0)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blks2_selector</key>
+ <param>
+ <key>id</key>
+ <value>blks2_selector_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
+ <value>2</value>
+ </param>
+ <param>
+ <key>num_outputs</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>input_index</key>
+ <value>play_encoded</value>
+ </param>
+ <param>
+ <key>output_index</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(280, 411)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>rational_resampler_xxx</key>
+ <param>
+ <key>id</key>
+ <value>rational_resampler_xxx_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>fff</value>
+ </param>
+ <param>
+ <key>interp</key>
+ <value>6</value>
+ </param>
+ <param>
+ <key>decim</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>taps</key>
+ <value></value>
+ </param>
+ <param>
+ <key>fbw</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(478, 400)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>audio_sink</key>
+ <param>
+ <key>id</key>
+ <value>audio_sink_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>samp_rate</key>
+ <value>48000</value>
+ </param>
+ <param>
+ <key>device_name</key>
+ <value></value>
+ </param>
+ <param>
+ <key>ok_to_block</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>num_inputs</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(706, 424)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_float_to_short</key>
+ <param>
+ <key>id</key>
+ <value>blocks_float_to_short_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>scale</key>
+ <value>scale</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(417, 119)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>audio_source</key>
+ <param>
+ <key>id</key>
+ <value>audio_source_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>samp_rate</key>
+ <value>48000</value>
+ </param>
+ <param>
+ <key>device_name</key>
+ <value></value>
+ </param>
+ <param>
+ <key>ok_to_block</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>num_outputs</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(0, 117)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_wavfile_source</key>
+ <param>
+ <key>id</key>
+ <value>blocks_wavfile_source_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>False</value>
+ </param>
+ <param>
+ <key>file</key>
+ <value>speech_audio_at_48_kHz.wav</value>
+ </param>
+ <param>
+ <key>repeat</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>nchan</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(-1, 225)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>vocoder_gsm_fr_encode_sp</key>
+ <param>
+ <key>id</key>
+ <value>vocoder_gsm_fr_encode_sp_1</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(592, 123)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_vector_to_stream</key>
+ <param>
+ <key>id</key>
+ <value>blocks_vector_to_stream_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>num_items</key>
+ <value>33</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(857, 119)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>virtual_sink_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>Encoded Speech</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1052, 119)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_stream_to_vector</key>
+ <param>
+ <key>id</key>
+ <value>blocks_stream_to_vector_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>byte</value>
+ </param>
+ <param>
+ <key>num_items</key>
+ <value>33</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(272, 312)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_source</key>
+ <param>
+ <key>id</key>
+ <value>virtual_source_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>Encoded Speech</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(-1, 312)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>vocoder_gsm_fr_decode_ps</key>
+ <param>
+ <key>id</key>
+ <value>vocoder_gsm_fr_decode_ps_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(485, 316)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>virtual_sink</key>
+ <param>
+ <key>id</key>
+ <value>virtual_sink_2</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>stream_id</key>
+ <value>Decoded Speech</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1012, 364)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>qtgui_time_sink_x</key>
+ <param>
+ <key>id</key>
+ <value>qtgui_time_sink_x_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>type</key>
+ <value>float</value>
+ </param>
+ <param>
+ <key>name</key>
+ <value>Audio Post-Encoding</value>
+ </param>
+ <param>
+ <key>size</key>
+ <value>1024</value>
+ </param>
+ <param>
+ <key>srate</key>
+ <value>8000</value>
+ </param>
+ <param>
+ <key>ymin</key>
+ <value>-1</value>
+ </param>
+ <param>
+ <key>ymax</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>nconnections</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>update_time</key>
+ <value>0.10</value>
+ </param>
+ <param>
+ <key>tr_mode</key>
+ <value>qtgui.TRIG_MODE_FREE</value>
+ </param>
+ <param>
+ <key>tr_slope</key>
+ <value>qtgui.TRIG_SLOPE_POS</value>
+ </param>
+ <param>
+ <key>tr_level</key>
+ <value>0.0</value>
+ </param>
+ <param>
+ <key>tr_delay</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_chan</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>tr_tag</key>
+ <value>""</value>
+ </param>
+ <param>
+ <key>entags</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>gui_hint</key>
+ <value></value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(1012, 240)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <block>
+ <key>blocks_short_to_float</key>
+ <param>
+ <key>id</key>
+ <value>blocks_short_to_float_0</value>
+ </param>
+ <param>
+ <key>_enabled</key>
+ <value>True</value>
+ </param>
+ <param>
+ <key>vlen</key>
+ <value>1</value>
+ </param>
+ <param>
+ <key>scale</key>
+ <value>scale</value>
+ </param>
+ <param>
+ <key>affinity</key>
+ <value></value>
+ </param>
+ <param>
+ <key>minoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>maxoutbuf</key>
+ <value>0</value>
+ </param>
+ <param>
+ <key>_coordinate</key>
+ <value>(762, 312)</value>
+ </param>
+ <param>
+ <key>_rotation</key>
+ <value>0</value>
+ </param>
+ </block>
+ <connection>
+ <source_block_id>audio_source_0</source_block_id>
+ <sink_block_id>rational_resampler_xxx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>rational_resampler_xxx_0</source_block_id>
+ <sink_block_id>blocks_float_to_short_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_wavfile_source_0</source_block_id>
+ <sink_block_id>rational_resampler_xxx_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>rational_resampler_xxx_0</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_0_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>rational_resampler_xxx_0</source_block_id>
+ <sink_block_id>virtual_sink_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_1</source_block_id>
+ <sink_block_id>blks2_selector_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_1_0</source_block_id>
+ <sink_block_id>blks2_selector_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>1</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_short_to_float_0</source_block_id>
+ <sink_block_id>virtual_sink_2</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>rational_resampler_xxx_1</source_block_id>
+ <sink_block_id>audio_sink_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blks2_selector_0</source_block_id>
+ <sink_block_id>rational_resampler_xxx_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_float_to_short_0</source_block_id>
+ <sink_block_id>vocoder_gsm_fr_encode_sp_1</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>vocoder_gsm_fr_decode_ps_0</source_block_id>
+ <sink_block_id>blocks_short_to_float_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>vocoder_gsm_fr_encode_sp_1</source_block_id>
+ <sink_block_id>blocks_vector_to_stream_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_vector_to_stream_0</source_block_id>
+ <sink_block_id>virtual_sink_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>virtual_source_0</source_block_id>
+ <sink_block_id>blocks_stream_to_vector_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_stream_to_vector_0</source_block_id>
+ <sink_block_id>vocoder_gsm_fr_decode_ps_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+ <connection>
+ <source_block_id>blocks_short_to_float_0</source_block_id>
+ <sink_block_id>qtgui_time_sink_x_0</sink_block_id>
+ <source_key>0</source_key>
+ <sink_key>0</sink_key>
+ </connection>
+</flow_graph>
diff --git a/gr-vocoder/grc/vocoder_gsm_fr_decode_ps.xml
b/gr-vocoder/grc/vocoder_gsm_fr_decode_ps.xml
index 44290f8..bef07fb 100644
--- a/gr-vocoder/grc/vocoder_gsm_fr_decode_ps.xml
+++ b/gr-vocoder/grc/vocoder_gsm_fr_decode_ps.xml
@@ -12,6 +12,7 @@
<sink>
<name>in</name>
<type>byte</type>
+ <vlen>33</vlen>
</sink>
<source>
<name>out</name>
diff --git a/gr-vocoder/grc/vocoder_gsm_fr_encode_sp.xml
b/gr-vocoder/grc/vocoder_gsm_fr_encode_sp.xml
index 13f6f3f..4c3eab7 100644
--- a/gr-vocoder/grc/vocoder_gsm_fr_encode_sp.xml
+++ b/gr-vocoder/grc/vocoder_gsm_fr_encode_sp.xml
@@ -16,6 +16,7 @@
<source>
<name>out</name>
<type>byte</type>
+ <vlen>33</vlen>
</source>
</block>
diff --git a/gr-vocoder/include/gnuradio/vocoder/gsm_fr_decode_ps.h
b/gr-vocoder/include/gnuradio/vocoder/gsm_fr_decode_ps.h
index 9979763..b9aa664 100644
--- a/gr-vocoder/include/gnuradio/vocoder/gsm_fr_decode_ps.h
+++ b/gr-vocoder/include/gnuradio/vocoder/gsm_fr_decode_ps.h
@@ -32,13 +32,16 @@ namespace gr {
/*!
* \brief GSM 06.10 Full Rate Vocoder Decoder
* \ingroup audio_blk
+ *
+ * Input: Vector of 33 bytes per 160 input samples
+ * Output: 16-bit shorts representing speech samples
*/
class VOCODER_API gsm_fr_decode_ps : virtual public sync_interpolator
{
public:
// gr::vocoder::gsm_fr_decode_ps::sptr
typedef boost::shared_ptr<gsm_fr_decode_ps> sptr;
-
+
/*!
* \brief Make GSM decoder block.
*/
diff --git a/gr-vocoder/include/gnuradio/vocoder/gsm_fr_encode_sp.h
b/gr-vocoder/include/gnuradio/vocoder/gsm_fr_encode_sp.h
index 98d88bb..5cfbc65 100644
--- a/gr-vocoder/include/gnuradio/vocoder/gsm_fr_encode_sp.h
+++ b/gr-vocoder/include/gnuradio/vocoder/gsm_fr_encode_sp.h
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2005,2011,2013 Free Software Foundation, Inc.
+ * Copyright 2005,2011,2013,2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -33,14 +33,15 @@ namespace gr {
* \brief GSM 06.10 Full Rate Vocoder Encoder
* \ingroup audio_blk
*
- * shorts in; 33 byte packets out
+ * Input: 16-bit shorts representing speech samples
+ * Output: Vector of 33 bytes per 160 input samples
*/
class VOCODER_API gsm_fr_encode_sp : virtual public sync_decimator
{
public:
// gr::vocoder::gsm_fr_encode_sp::sptr
typedef boost::shared_ptr<gsm_fr_encode_sp> sptr;
-
+
/*!
* \brief Make GSM encoder block.
*/
@@ -48,6 +49,6 @@ namespace gr {
};
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
#endif /* INCLUDED_VOCODER_GSM_FR_ENCODE_SP_H */
diff --git a/gr-vocoder/lib/gsm_fr_encode_sp_impl.cc
b/gr-vocoder/lib/gsm_fr_encode_sp_impl.cc
index 143a73b..0c3afe8 100644
--- a/gr-vocoder/lib/gsm_fr_encode_sp_impl.cc
+++ b/gr-vocoder/lib/gsm_fr_encode_sp_impl.cc
@@ -71,4 +71,4 @@ namespace gr {
}
} /* namespace vocoder */
-} /* namespace gr */
+} /* namespace gr */
- [Commit-gnuradio] [gnuradio] branch master updated (ca69ec5 -> f08f0f2), git, 2014/03/07
- [Commit-gnuradio] [gnuradio] 02/09: Merge branch 'maint', git, 2014/03/07
- [Commit-gnuradio] [gnuradio] 07/09: runtime: adds ability to output flowgraph in dot format (resolves issue 245)., git, 2014/03/07
- [Commit-gnuradio] [gnuradio] 08/09: Merge remote-tracking branch 'mbant/vocoder-fixes', git, 2014/03/07
- [Commit-gnuradio] [gnuradio] 05/09: vocoder: Fixed packing problem with Codec2, + GRC bindings, added example, git, 2014/03/07
- [Commit-gnuradio] [gnuradio] 09/09: vocoder: cleaned up documentation (removed warning on trademark symbol), git, 2014/03/07
- [Commit-gnuradio] [gnuradio] 03/09: Merge remote-tracking branch 'drmpeg/rs-optimize', git, 2014/03/07
- [Commit-gnuradio] [gnuradio] 04/09: fec: adding small comments in rs encoder about duplicated lines., git, 2014/03/07
- [Commit-gnuradio] [gnuradio] 01/09: Add a lookup table to the encoder inner loop for byte mode only (used by the ATSC transmitter)., git, 2014/03/07
- [Commit-gnuradio] [gnuradio] 06/09: vocoder: Fixed GSM GRC bindings and improved docs, provided example,
git <=