Git Product home page Git Product logo

gr-dsd's Introduction

gr-dsd

Author: Clayton Smith
Email: [email protected]

The goal of this project is to package Digital Speech Decoder (DSD) as a GNU Radio block, so that it can be easily used with software radio peripherals such as the Ettus Research USRP or RTL2832U-based USB TV tuners.

Dependencies:

  • GNU Radio 3.7, 3.8, 3.9, or 3.10
  • libsndfile (libsndfile1-dev package in Ubuntu)
  • BOOST C++ source libraries (libboost-all-dev in Ubuntu)
  • libcppunit-dev
  • libitpp-dev
  • liblog4cpp5-dev
  • swig

Build instructions:

mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

After running the above commands, "DSD Block" should appear under the "DSD" category in GNU Radio Companion, and "block_ff" will be available in the "dsd" Python package.

The block expects 48000 samples per second input, and outputs sound at 8000 samples per second. The input should be FM-demodulated (for example, with GNU Radio's Quadrature Demod block) and should be between -1 and 1 while receiving digital signals. (A quadrature demod gain of 1.6 works well for me for EDACS Provoice.) The input signal should also be free of DC bias, so make sure you are tuned accurately, or filter out DC.

To save CPU cycles, the block detects when the input is zero and avoids sending it through DSD. Thus it helps to put a squelch block before gr-dsd, especially if you're using many copies of gr-dsd in parallel.

The underlying DSD and mbelib were taken from:

No modifications to mbelib were required, but DSD has been modified to bypass the sound card. The GNU Radio block itself was adapted from the gr-howto-write-a-block sample included with GNU Radio.

Contributions are welcome!

gr-dsd's People

Contributors

argilo avatar michaellass avatar tylert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gr-dsd's Issues

Audio underruns

During the first minute or so of audio decoding, audio underruns occur. (GNU Radio reports them by printing out "aU".) As a result, the audio stutters. I'm not sure yet why this occurs, so some investigation is necessary.

error: 'make_block_sptr' is not a member of 'gnuradio'

Hello!
Can't compile, any advice?

GNU Radio 3.10.5.1
GCC 12.2.1

/home/master/SDR/gr-dsd/lib/dsd_block_ff_impl.cc: In static member function 'static gr::dsd::dsd_block_ff::sptr gr::dsd::dsd_block_ff::make(gr::dsd::dsd_frame_mode, gr::dsd::dsd_modulation_optimizations, int, bool, int)':
/home/master/SDR/gr-dsd/lib/dsd_block_ff_impl.cc:31:22: error: 'make_block_sptr' is not a member of 'gnuradio'
31 | return gnuradio::make_block_sptr<dsd_block_ff_impl>(
| ^~~~~~~~~~~~~~~
/home/master/SDR/gr-dsd/lib/dsd_block_ff_impl.cc:31:55: error: expected primary-expression before '>' token
31 | return gnuradio::make_block_sptr<dsd_block_ff_impl>(
| ^
make[2]: *** [lib/CMakeFiles/gnuradio-dsd.dir/build.make:76: lib/CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:271: lib/CMakeFiles/gnuradio-dsd.dir/all] Error 2

cmake issue

I'm looking for some help to understand why this is failing to compile.

~/pybombs/src/gr-dsd/build$ cmake ..
-- Boost version: 1.58.0
File "", line 3
print sysconfig.get_python_lib(plat_specific=True, prefix='')
^
SyntaxError: invalid syntax
CMake Error at cmake/Modules/GrPython.cmake:103 (file):
file FILE([TO_CMAKE_PATH|TO_NATIVE_PATH] path result) must be called with
exactly three arguments.
Call Stack (most recent call first):
cmake/Modules/GrSwig.cmake:25 (include)
swig/CMakeLists.txt:28 (include)

Traceback (most recent call last):
File "", line 2, in
TypeError: Unicode-objects must be encoded before hashing
File "", line 3
print sysconfig.get_python_lib(plat_specific=True, prefix='')
^
SyntaxError: invalid syntax
CMake Error at cmake/Modules/GrPython.cmake:103 (file):
file FILE([TO_CMAKE_PATH|TO_NATIVE_PATH] path result) must be called with
exactly three arguments.
Call Stack (most recent call first):
python/CMakeLists.txt:23 (include)

Traceback (most recent call last):
File "", line 2, in
TypeError: Unicode-objects must be encoded before hashing
CMake Error at cmake/Modules/GrPython.cmake:115 (add_custom_target):
add_custom_target cannot create target "ALL" because another target with
the same name already exists. The existing target is a custom target
created in source directory "/home/dader/pybombs/src/gr-dsd/swig". See
documentation for policy CMP0002 for more details.
Call Stack (most recent call first):
cmake/Modules/GrPython.cmake:214 (GR_UNIQUE_TARGET)
python/CMakeLists.txt:31 (GR_PYTHON_INSTALL)

-- Found LibSndFile: /usr/lib/arm-linux-gnueabihf/libsndfile.so
-- Configuring incomplete, errors occurred!
See also "/home/dader/pybombs/src/gr-dsd/CMakeFiles/CMakeOutput.log".

AttributeError: type object 'dsd' has no attribute 'dsd_block_ff'

When I try to use the block with Gnuradio 3.8 (In manjaro and Ubuntu) the program throw the following error.

Traceback (most recent call last):
File "/home/user/pruebas/dsd/dsd.py", line 211, in
main()
File "/home/user/pruebas/dsd/dsd.py", line 189, in main
tb = top_block_cls()
File "/home/user/pruebas/dsd/dsd.py", line 142, in init
self.dsd_block_ff_0 = dsd.dsd_block_ff(dsd.dsd_FRAME_AUTO_DETECT,dsd.dsd_MOD_AUTO_SELECT,3,True,2)
AttributeError: type object 'dsd' has no attribute 'dsd_block_ff'

Make DSD options configurable

Currently the DSD options are hard coded to "-fp -u 10 -v 1 -mg" for EDACS Provoice in the constructor of dsd_block_ff. DSD's full suite of options should be exposed so that other radio systems can be decoded.

Segmentation fault when compiling

I've just discovered this project that looks awesome, unfortunately when I try to compile it I get a segmentation fault:

 63%] Building C object dsd/CMakeFiles/dsd.dir/src/p25p1_hdu.c.o
[ 65%] Building C object dsd/CMakeFiles/dsd.dir/src/p25p1_heuristics.c.o
[ 67%] Building C object dsd/CMakeFiles/dsd.dir/src/p25p1_ldu.c.o
[ 68%] Building C object dsd/CMakeFiles/dsd.dir/src/p25p1_ldu1.c.o
[ 70%] Building C object dsd/CMakeFiles/dsd.dir/src/p25p1_ldu2.c.o
[ 72%] Building C object dsd/CMakeFiles/dsd.dir/src/p25p1_tdu.c.o
[ 73%] Building C object dsd/CMakeFiles/dsd.dir/src/pa_devs.c.o
[ 75%] Building C object dsd/CMakeFiles/dsd.dir/src/p25p1_tdulc.c.o
[ 77%] Building C object dsd/CMakeFiles/dsd.dir/src/provoice.c.o
[ 78%] Building C object dsd/CMakeFiles/dsd.dir/src/x2tdma_data.c.o
[ 80%] Building C object dsd/CMakeFiles/dsd.dir/src/x2tdma_voice.c.o
[ 81%] Building CXX object dsd/CMakeFiles/dsd.dir/src/Hamming.cpp.o
[ 83%] Building CXX object dsd/CMakeFiles/dsd.dir/src/p25p1_check_hdu.cpp.o
[ 85%] Building CXX object dsd/CMakeFiles/dsd.dir/src/p25p1_check_ldu.cpp.o
[ 86%] Building CXX object dsd/CMakeFiles/dsd.dir/src/p25p1_check_nid.cpp.o
[ 88%] Building C object dsd/CMakeFiles/dsd.dir/git_ver.c.o
[ 88%] Built target dsd_swig_swig_2d0df
Scanning dependencies of target pygen_swig_1f5d3
[ 90%] Generating dsd_swig.pyc
[ 91%] Generating dsd_swig.pyo
[ 91%] Built target pygen_swig_1f5d3
[ 93%] Linking CXX static library libdsd.a
[ 93%] Built target dsd
Scanning dependencies of target gnuradio-dsd
[ 95%] Building CXX object lib/CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o
In file included from /tmp/gr-dsd/lib/dsd_block_ff_impl.h:28:0,
                 from /tmp/gr-dsd/lib/dsd_block_ff_impl.cc:26:
/tmp/gr-dsd/dsd/include/dsd.h:25:0: warning: "__USE_XOPEN" redefined
 #define __USE_XOPEN
 
In file included from /usr/include/c++/6.3.1/x86_64-pc-linux-gnu/bits/os_defines.h:39:0,
                 from /usr/include/c++/6.3.1/x86_64-pc-linux-gnu/bits/c++config.h:507,
                 from /usr/include/c++/6.3.1/cstddef:49,
                 from /usr/include/boost/config/compiler/gcc.hpp:165,
                 from /usr/include/boost/config.hpp:39,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:17,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/gnuradio/types.h:27,
                 from /usr/include/gnuradio/runtime_types.h:27,
                 from /usr/include/gnuradio/io_signature.h:27,
                 from /tmp/gr-dsd/lib/dsd_block_ff_impl.cc:25:
/usr/include/features.h:276:0: note: this is the location of the previous definition
 # define __USE_XOPEN 1
 
[ 96%] Linking CXX shared library libgnuradio-dsd-1.0.0git.so
[ 96%] Built target gnuradio-dsd
Scanning dependencies of target _dsd_swig
[ 98%] Building CXX object swig/CMakeFiles/_dsd_swig.dir/dsd_swigPYTHON_wrap.cxx.o
/tmp/gr-dsd/dsd/include/p25p1_check_hdu.h:19: warning: argument 'fixed_error' of command @param is not found in the argument list of check_and_fix_golay_24_12(char *dodeca, char *parity, int *fixed_errors)
/tmp/gr-dsd/dsd/include/p25p1_check_hdu.h:25: warning: The following parameters of check_and_fix_golay_24_12(char *dodeca, char *parity, int *fixed_errors) are not documented:
  parameter 'fixed_errors'
/tmp/gr-dsd/dsd/include/p25p1_check_hdu.h:10: warning: argument 'fixed_error' of command @param is not found in the argument list of check_and_fix_golay_24_6(char *hex, char *parity, int *fixed_errors)
/tmp/gr-dsd/dsd/include/p25p1_check_hdu.h:16: warning: The following parameters of check_and_fix_golay_24_6(char *hex, char *parity, int *fixed_errors) are not documented:
  parameter 'fixed_errors'
/tmp/gr-dsd/dsd/include/p25p1_check_ldu.h:35: warning: Found unknown command `\fixed_parity'
/tmp/gr-dsd/dsd/include/p25p1_check_ldu.h:37: warning: The following parameters of encode_reedsolomon_24_12_13(char *hex_data, char *fixed_parity) are not documented:
  parameter 'fixed_parity'
/tmp/gr-dsd/dsd/include/p25p1_check_ldu.h:50: warning: Found unknown command `\fixed_parity'
/tmp/gr-dsd/dsd/include/p25p1_check_ldu.h:52: warning: The following parameters of encode_reedsolomon_24_16_9(char *hex_data, char *fixed_parity) are not documented:
  parameter 'fixed_parity'
/tmp/gr-dsd/dsd/include/p25p1_hdu.h:26: warning: argument 'output' of command @param is not found in the argument list of read_dibit_update_analog_data(dsd_opts *opts, dsd_state *state, char *buffer, unsigned int count, int *status_count, AnalogSignal *analog_signal_array, int *analog_signal_index)
/tmp/gr-dsd/dsd/include/p25p1_hdu.h:40: warning: The following parameters of read_dibit_update_analog_data(dsd_opts *opts, dsd_state *state, char *buffer, unsigned int count, int *status_count, AnalogSignal *analog_signal_array, int *analog_signal_index) are not documented:
  parameter 'buffer'
/tmp/gr-dsd/dsd/include/p25p1_ldu.h:36: warning: argument 'Dibits' of command @param is not found in the argument list of correct_hamming_dibits(char *hex_data, int hex_count, AnalogSignal *analog_signal_array)
/tmp/gr-dsd/dsd/include/p25p1_ldu.h:39: warning: Found unknown command `\count'
/tmp/gr-dsd/dsd/include/p25p1_ldu.h:42: warning: The following parameters of correct_hamming_dibits(char *hex_data, int hex_count, AnalogSignal *analog_signal_array) are not documented:
  parameter 'hex_data'
  parameter 'hex_count'
/tmp/gr-dsd/dsd/include/p25p1_ldu.h:16: warning: Found unknown command `\status_count'
/tmp/gr-dsd/dsd/include/p25p1_ldu.h:19: warning: The following parameters of process_IMBE(dsd_opts *opts, dsd_state *state, int *status_count) are not documented:
  parameter 'status_count'
/tmp/gr-dsd/dsd/include/p25p1_ldu.h:22: warning: argument 'analog_singal_array' of command @param is not found in the argument list of read_and_correct_hex_word(dsd_opts *opts, dsd_state *state, char *hex, int *status_count, AnalogSignal *analog_signal_array, int *analog_signal_index)
/tmp/gr-dsd/dsd/include/p25p1_ldu.h:32: warning: The following parameters of read_and_correct_hex_word(dsd_opts *opts, dsd_state *state, char *hex, int *status_count, AnalogSignal *analog_signal_array, int *analog_signal_index) are not documented:
  parameter 'analog_signal_array'
make[2]: *** [docs/doxygen/CMakeFiles/doxygen_target.dir/build.make:62: docs/doxygen/xml] Segmentation fault (core dumped)
make[1]: *** [CMakeFiles/Makefile2:585: docs/doxygen/CMakeFiles/doxygen_target.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[100%] Linking CXX shared module _dsd_swig.so
[100%] Built target _dsd_swig
make: *** [Makefile:139: all] Error 2

I'm compiling it in x86_64, I'm on Arch Linux with the kernel 4.9.9-1-ARCH

No module named dsd_swig

Hi, I've just built gr-dsd from source but when I try to import dsd in my python script I get this error:

from dsd import block_ff as dsd_block_ff
Traceback (most recent call last):
File "", line 1, in
File "**/usr/lib/python2.7/dist-packages/**dsd/init.py", line 45, in
from dsd_swig import *
ImportError: No module named dsd_swig

I've also checked the PYTHON_PATH running:
python -c "import sys; print '\n'.join(sys.path)"

and the response is:

/usr/local/lib/python2.7/dist-packages/ShinySDR-0.0.0-py2.7.egg
/usr/local/lib/python2.7/dist-packages/ephem-3.7.6.0-py2.7-linux-armv7l.egg
/usr/local/lib/python2.7/dist-packages/txWS-0.9.1-py2.7.egg
/usr/local/lib/python2.7/dist-packages/Twisted-16.3.2-py2.7-linux-armv7l.egg
/usr/local/lib/python2.7/dist-packages/zope.interface-4.2.0-py2.7-linux-armv7l.egg
/usr/lib/python2.7/dist-packages
/usr/lib/python2.7
/usr/lib/python2.7/plat-arm-linux-gnueabihf
/usr/lib/python2.7/lib-tk
/usr/lib/python2.7/lib-old
/usr/lib/python2.7/lib-dynload
/usr/local/lib/python2.7/dist-packages
/usr/lib/python2.7/dist-packages/PILcompat
/usr/lib/python2.7/dist-packages/gtk-2.0
/usr/lib/pymodules/python2.7
/usr/lib/python2.7/dist-packages/wx-3.0-gtk2

Searching for "gr-dsd" in the filesystem:

/usr/lib/libgr-dsd.so
/usr/local/lib/libgr-dsd.so

Any idea?
How can I fix this error?
Thank you =)

Add sample GRC & Python code

To make it easier for new users, sample .grc and .py files should be included that demonstrate how to use the block.

gr-dsd ported to GNU Radio 3.10

A few days ago I ported the gr-dsd GNU Radio module to build and run under GNU Radio master branch (GNU Radio version 3.10), and I was able to listen to a 2m D-STAR repeater nearby using a slightly modified GRC workfllow (https://github.com/fventuri/gr-dsd/blob/gnuradio-3.10/examples/w4rng.grc)

The repository with my changes to gr-dsd for GNU radio 3.10 is here: https://github.com/fventuri/gr-dsd/tree/gnuradio-3.10

I also saw Josh Morman's post on the 'gnuradio-discuss' mailing list (https://lists.gnu.org/archive/html/discuss-gnuradio/2021-07/msg00003.html) a few days ago, where he suggests that GNU Radio OOT modules like gr-dsd follow a branch naming similar to the one used by GNU Radio.

If you are interested in these changes to make gr-dsd compatible with GNU Radio 3.10, please let me know and we can figure out together the best way to incorporate them in your project.

Regards,
Franco Venturi K4VZ

Fix compiler warnings

There are some compiler warnings that should be fixed:

In file included from /home/argilo/git/gr-dsd-build/include/dsd_block_ff.h:30:0,
from /home/argilo/git/gr-dsd-build/lib/dsd_block_ff.cc:32:
/home/argilo/git/gr-dsd-build/dsd/dsd.h:23:0: warning: "__USE_XOPEN" redefined [enabled by default]
/usr/include/features.h:251:0: note: this is the location of the previous definition

/usr/bin/ld: Warning: alignment 4 of symbol exitflag' in CMakeFiles/gr-dsd.dir/dsd_block_ff.cc.o is smaller than 16 in ../dsd/libdsd.a(dsd_mbe.c.o) /usr/bin/ld: Warning: alignment 4 of symbolexitflag' in CMakeFiles/gr-dsd.dir/dsd_block_ff.cc.o is smaller than 16 in ../dsd/libdsd.a(dsd_frame_sync.c.o)

In file included from /home/argilo/git/gr-dsd-build/include/dsd_block_ff.h:30:0,
from /home/argilo/git/gr-dsd-build/swig/dsd_swigPYTHON_wrap.cxx:4370:
/home/argilo/git/gr-dsd-build/dsd/dsd.h:23:0: warning: "__USE_XOPEN" redefined [enabled by default]
/usr/include/features.h:251:0: note: this is the location of the previous definition

Does not compile on OSX

Would be nice to have it also on the Mac...

[ 69%] Building CXX object lib/CMakeFiles/gr-dsd.dir/dsd_block_ff.cc.o
Linking CXX shared library libgr-dsd.dylib
Undefined symbols for architecture x86_64:
"pmt::dict_has_key(boost::intrusive_ptrpmt::pmt_base const&, boost::intrusive_ptrpmt::pmt_base const&)", referenced from:
gr::basic_block::has_msg_port(boost::intrusive_ptrpmt::pmt_base) in dsd_block_ff.cc.o

Building error on Debian with GR3.9

Kali-linux (equivalent Debian-tested), x86_64
Python 3.9.9
GR 3.9.4

[ 86%] Building CXX object lib/CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o
In file included from /opt/gr-dsd/lib/dsd_block_ff_impl.h:15,
                 from /opt/gr-dsd/lib/dsd_block_ff_impl.cc:12:
/opt/gr-dsd/dsd/include/dsd.h:25: warning: "__USE_XOPEN" redefined
   25 | #define __USE_XOPEN
      | 
In file included from /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h:586,
                 from /usr/include/c++/11/cstddef:49,
                 from /usr/include/gnuradio/types.h:15,
                 from /usr/include/gnuradio/runtime_types.h:15,
                 from /usr/include/gnuradio/io_signature.h:15,
                 from /usr/include/gnuradio/basic_block.h:15,
                 from /usr/include/gnuradio/block.h:15,
                 from /usr/include/gnuradio/sync_block.h:15,
                 from /usr/include/gnuradio/sync_decimator.h:15,
                 from /opt/gr-dsd/lib/../include/dsd/dsd_block_ff.h:11,
                 from /opt/gr-dsd/lib/dsd_block_ff_impl.h:11,
                 from /opt/gr-dsd/lib/dsd_block_ff_impl.cc:12:
/usr/include/features.h:346: note: this is the location of the previous definition
  346 | # define __USE_XOPEN    1
      | 
[ 88%] Linking CXX shared library libgnuradio-dsd.so
/usr/bin/ld: ../dsd/libdsd.a(dsd_main.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(dsd_mbe.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(dsd_serial.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(p25p1_heuristics.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(dsd_audio.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(dsd_file.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(dsd_frame.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(dsd_frame_sync.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(dsd_symbol.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(dsd_upsample.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(dstar.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(nxdn_data.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(nxdn_voice.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(p25p1_hdu.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(p25p1_ldu1.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(p25p1_ldu2.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(p25p1_tdu.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(p25p1_tdulc.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(provoice.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(x2tdma_data.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(x2tdma_voice.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(dmr_data.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(dmr_voice.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(dsd_dibit.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(p25_lcw.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
/usr/bin/ld: ../dsd/libdsd.a(p25p1_ldu.c.o):(.bss+0x0): multiple definition of `exitflag'; CMakeFiles/gnuradio-dsd.dir/dsd_block_ff_impl.cc.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [lib/CMakeFiles/gnuradio-dsd.dir/build.make:113: lib/libgnuradio-dsd.so.1.0.0.0] Error 1
make[1]: *** [CMakeFiles/Makefile2:271: lib/CMakeFiles/gnuradio-dsd.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

I need to add liborc-0.4-dev package to built at kubuntu 20

Hi,
First of all I would like to thank for this code.
I just installed a new kubuntu 20.04.2 LTS to test this code. I installed GNR Radio 3.8.1.0 (Python 3.8.5) with all dependencies, using apt-get.
Then, I read the README.md from here and could compile well. Just I had to add liborc-0.4-dev package.
So I propose to include liborc-0.4-dev package at Dependencies.
Besides I would like to contribute with the project.
Best regards.
Marcelo

Fixed-length audio buffer should be replaced

The gr-dsd block functions as a derived from gr_sync_decimator, and so is expected to provide exactly one output sample for each six input samples (since the input rate is 48000 and the output rate is 8000). Audio output from DSD is bursty, so sometimes we get more back than we can return in the block's work function. Thus there is a buffer (named "output_buffer") that buffers any excess. Because I was lazy, I made this a fixed-length buffer (80000 bytes long), and there is no overflow checking. There's probably a limit to how far ahead DSD can get, but this needs to be investigated. Or the fixed-length buffer could be replaced with one that expands as needed.

Running multiple instance with GR3.7

I am running a graph with multiple gr-dsd blocks that are running simultaneously. They are writing into a wav file sink. This worked fine with GR3.6, but with GR3.7 the gr-dsd blocks seem to interrupt each other. If one starts recording, it seems to stop the other ones. Has anyone else come across this? Any thoughts on what to look into?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.