Topics

New package required to build freedv modules in 4.5.0


James Dallas
 

Hi everyone,

I didn't find it obvious in the release announcement, but since this version is only available to those building from source, you will need to install the codec2 package before building 4.5.0 on Linux to take advantage of freedv.

I tried building without it and it build, but freedv didn't show up, either in the GUI or as a compiled .so file. After going and looking at the cmakelist file, I realized that codec2 was needed.

So I did "sudo apt-get install codec2" then rebuilt. And that didn't work either.

I'm trying again after installing libcodec2-dev. I suppose I could also try building latest codec2 from source (the Ubuntu 18 repos use .07-1).

Anybody else have success, and if so, with what steps?


Edouard Griffiths
 
Edited

Hello,

I am wondering how "Not distributed as a binary. Too complex to embed FreeDV library and packages are not up to date" in the first bullet of "Limitations" in the release notes should be interpreted. Also the wiki: https://github.com/f4exb/sdrangel/wiki/Compile-from-source-in-Linux has been updated accordingly.

Brgds, Edouard.


Filipe Laíns (FFY00) <filipe.lains@...>
 

Hey,

To be fair, packages are up to date. You are depending on a development version.

Thanks, Filipe Laíns


James Dallas
 

Yes, I see that make tried to build the FreeDV modules after I downloaded libcodec2-dev, but failed because of some changes.

I am going to try to see if I can build latest codec2 and see if that works.

On Sat, Mar 2, 2019 at 7:54 PM Filipe Laíns (FFY00) <filipe.lains@...> wrote:

Hey,

To be fair, packages are up to date. You are depending on a development version.

Thanks, Filipe Laíns


James Dallas
 

Eduoard,

I interpreted it as, "you will need to build yourself."

What is unclear is what version of codec2 is needed.

I have tried with both 0.7 and 0.8 and doesn't seem to work.

Will try the development branch, but it looks like I'll need to figure out how to build that with speex.


On Sat, Mar 2, 2019 at 7:49 PM Edouard Griffiths <f4exb06@...> wrote:
Hello,

I am wondering how "Not distributed as a binary. Too complex to embed FreeDV library and packages are not up to date" in the first bullet of "Limitations" in the release notes should be interpreted.

Brgds, Edouard.


Edouard Griffiths
 

Hi James,

what about just following the instructions in the Wiki page mentioned just above?

Brgds, Edouard.


James Dallas
 

Ahh! My wandering eye somehow skipped over that.


On Sun, Mar 3, 2019, 2:35 AM Edouard Griffiths <f4exb06@...> wrote:
Hi James,

what about just following the instructions in the Wiki page mentioned just above?

Brgds, Edouard.


Edouard Griffiths
 

Hi,

"-DCODEC2_DIR=/opt/install/codec2" is missing in the final step to compile SDRangel. This has been fixed in the Wiki

Brgds, Edouard.


James Dallas
 

Hi,

I've tried building on Ubuntu 18.04 and keep getting this error while building sdrangel.

Looking at freedv_api.c, it looks to me like the freedv_set_sync function is only useful if using FreeDV 700D? Perhaps this has something to do with why 700D is broken?

[ 75%] Building CXX object plugins/channelrx/demoddatv/CMakeFiles/demoddatv.dir/demoddatv_autogen/mocs_compilation.cpp.o
/opt/build/sdrangel/plugins/channelrx/demodfreedv/freedvdemod.cpp: In member function ‘virtual bool FreeDVDemod::handleMessage(const Message&)’:
/opt/build/sdrangel/plugins/channelrx/demodfreedv/freedvdemod.cpp:390:35: error: ‘unsync’ was not declared in this scope
         freedv_set_sync(m_freeDV, unsync);
                                   ^~~~~~
/opt/build/sdrangel/plugins/channelrx/demodfreedv/freedvdemod.cpp:390:35: note: suggested alternative: ‘isSync’
         freedv_set_sync(m_freeDV, unsync);
                                   ^~~~~~
                                   isSync
/opt/build/sdrangel/plugins/channelrx/demodfreedv/freedvdemod.cpp: In member function ‘void FreeDVDemod::applyFreeDVMode(FreeDVDemodSettings::FreeDVMode)’:
/opt/build/sdrangel/plugins/channelrx/demodfreedv/freedvdemod.cpp:612:35: error: ‘manualsync’ was not declared in this scope
         freedv_set_sync(m_freeDV, manualsync);
                                   ^~~~~~~~~~

I have used the code in the Wikipedia, including the update you just mentioned.



On Sun, Mar 3, 2019 at 4:52 PM Edouard Griffiths <f4exb06@...> wrote:
Hi,

"-DCODEC2_DIR=/opt/install/codec2" is missing in the final step to compile SDRangel. This has been fixed in the Wiki

Brgds, Edouard.


Edouard Griffiths
 

Hi,

are you sure you checkout revision 4067 of codec2-dev ? No issues here.

Brgds, Edouard.


Edouard Griffiths
 

Hi,

there are now two 4.5.0 .deb packages available for Ubuntu 18.04 and 18.10. I could make an internal library to support FreeDV so it does not depend on the more recent updates of codec2-dev. This will be soon available on dev branch and on master at the next release.

Brgds, Edouard.


James Dallas
 

I finally got the build working this morning too. The errors I was getting stopped when I went and methodically cleared out all the crud from different versions of codec2-dev.

Sorry to put you to such trouble Edouard.

Best and 73s,
James AD5NL

On Tue, Mar 5, 2019 at 6:36 AM Edouard Griffiths <f4exb06@...> wrote:
Hi,

there are now two 4.5.0 .deb packages available for Ubuntu 18.04 and 18.10. I could make an internal library to support FreeDV so it does not depend on the more recent updates of codec2-dev. This will be soon available on dev branch and on master at the next release.

Brgds, Edouard.