summaryrefslogtreecommitdiff
path: root/gr-vocoder/lib/codec2_decode_ps_impl.cc
diff options
context:
space:
mode:
authorMarcus Müller <mmueller@gnuradio.org>2019-08-07 21:45:12 +0200
committerMarcus Müller <marcus@hostalia.de>2019-08-09 23:04:28 +0200
commitf7bbf2c1d8d780294f3e016aff239ca35eb6516e (patch)
treee09ab6112e02b2215b2d59ac24d3d6ea2edac745 /gr-vocoder/lib/codec2_decode_ps_impl.cc
parent78431dc6941e3acc67c858277dfe4a0ed583643c (diff)
Tree: clang-format without the include sorting
Diffstat (limited to 'gr-vocoder/lib/codec2_decode_ps_impl.cc')
-rw-r--r--gr-vocoder/lib/codec2_decode_ps_impl.cc123
1 files changed, 60 insertions, 63 deletions
diff --git a/gr-vocoder/lib/codec2_decode_ps_impl.cc b/gr-vocoder/lib/codec2_decode_ps_impl.cc
index c3c682bebd..e0140f06b8 100644
--- a/gr-vocoder/lib/codec2_decode_ps_impl.cc
+++ b/gr-vocoder/lib/codec2_decode_ps_impl.cc
@@ -35,78 +35,75 @@ extern "C" {
#include <assert.h>
namespace gr {
- namespace vocoder {
-
- codec2_decode_ps::sptr
- codec2_decode_ps::make(int mode)
- {
- CODEC2 *codec2;
- int samples_per_frame, bits_per_frame;
-
- // Check the number of input samples and output bits per frame.
- codec2 = codec2_create(mode);
- samples_per_frame = codec2_samples_per_frame(codec2);
- bits_per_frame = codec2_bits_per_frame(codec2);
- codec2_destroy(codec2);
-
- return gnuradio::get_initial_sptr
- (new codec2_decode_ps_impl(mode, samples_per_frame, bits_per_frame));
- }
+namespace vocoder {
+codec2_decode_ps::sptr codec2_decode_ps::make(int mode)
+{
+ CODEC2* codec2;
+ int samples_per_frame, bits_per_frame;
- codec2_decode_ps_impl::codec2_decode_ps_impl (int mode, int samples_per_frame, int bits_per_frame)
- : sync_interpolator("vocoder_codec2_decode_ps",
- io_signature::make(1, 1, bits_per_frame * sizeof(char)),
- io_signature::make (1, 1, sizeof(short)),
- samples_per_frame),
- d_frame_buf((bits_per_frame + 7) / 8, 0)
- {
- if((d_codec2 = codec2_create(mode)) == 0)
- throw std::runtime_error("codec2_decode_ps_impl: codec2_create failed");
- d_samples_per_frame = samples_per_frame;
- d_bits_per_frame = bits_per_frame;
- d_bytes_per_frame = (bits_per_frame + 7) / 8;
- }
+ // Check the number of input samples and output bits per frame.
+ codec2 = codec2_create(mode);
+ samples_per_frame = codec2_samples_per_frame(codec2);
+ bits_per_frame = codec2_bits_per_frame(codec2);
+ codec2_destroy(codec2);
+
+ return gnuradio::get_initial_sptr(
+ new codec2_decode_ps_impl(mode, samples_per_frame, bits_per_frame));
+}
- codec2_decode_ps_impl::~codec2_decode_ps_impl()
- {
- codec2_destroy(d_codec2);
- }
- int
- codec2_decode_ps_impl::work(int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
- {
- const unsigned char *in = (const unsigned char*)input_items[0];
- short *out = (short *) output_items[0];
+codec2_decode_ps_impl::codec2_decode_ps_impl(int mode,
+ int samples_per_frame,
+ int bits_per_frame)
+ : sync_interpolator("vocoder_codec2_decode_ps",
+ io_signature::make(1, 1, bits_per_frame * sizeof(char)),
+ io_signature::make(1, 1, sizeof(short)),
+ samples_per_frame),
+ d_frame_buf((bits_per_frame + 7) / 8, 0)
+{
+ if ((d_codec2 = codec2_create(mode)) == 0)
+ throw std::runtime_error("codec2_decode_ps_impl: codec2_create failed");
+ d_samples_per_frame = samples_per_frame;
+ d_bits_per_frame = bits_per_frame;
+ d_bytes_per_frame = (bits_per_frame + 7) / 8;
+}
+
+codec2_decode_ps_impl::~codec2_decode_ps_impl() { codec2_destroy(d_codec2); }
- assert((noutput_items % d_samples_per_frame) == 0);
+int codec2_decode_ps_impl::work(int noutput_items,
+ gr_vector_const_void_star& input_items,
+ gr_vector_void_star& output_items)
+{
+ const unsigned char* in = (const unsigned char*)input_items[0];
+ short* out = (short*)output_items[0];
- for(int i = 0; i < noutput_items; i += d_samples_per_frame) {
- pack_frame(in, &d_frame_buf[0]);
- codec2_decode (d_codec2, out, const_cast<unsigned char*>(&d_frame_buf[0]));
- in += d_bits_per_frame * sizeof (char);
- out += d_samples_per_frame;
- }
+ assert((noutput_items % d_samples_per_frame) == 0);
- return noutput_items;
+ for (int i = 0; i < noutput_items; i += d_samples_per_frame) {
+ pack_frame(in, &d_frame_buf[0]);
+ codec2_decode(d_codec2, out, const_cast<unsigned char*>(&d_frame_buf[0]));
+ in += d_bits_per_frame * sizeof(char);
+ out += d_samples_per_frame;
}
- void
- codec2_decode_ps_impl::pack_frame(const unsigned char *in_unpacked, unsigned char *out_packed)
- {
- memset((void *) &d_frame_buf[0], 0x00, d_bytes_per_frame);
-
- int byte_idx = 0, bit_idx = 0;
- for(int k = 0; k < d_bits_per_frame; k++) {
- out_packed[byte_idx] |= ((in_unpacked[k] & 0x01) << (7-bit_idx));
- bit_idx = (bit_idx + 1) % 8;
- if (bit_idx == 0) {
- byte_idx++;
- }
- }
+ return noutput_items;
+}
+
+void codec2_decode_ps_impl::pack_frame(const unsigned char* in_unpacked,
+ unsigned char* out_packed)
+{
+ memset((void*)&d_frame_buf[0], 0x00, d_bytes_per_frame);
+
+ int byte_idx = 0, bit_idx = 0;
+ for (int k = 0; k < d_bits_per_frame; k++) {
+ out_packed[byte_idx] |= ((in_unpacked[k] & 0x01) << (7 - bit_idx));
+ bit_idx = (bit_idx + 1) % 8;
+ if (bit_idx == 0) {
+ byte_idx++;
+ }
}
+}
- } /* namespace vocoder */
+} /* namespace vocoder */
} /* namespace gr */