Hello Vadim,

Thank you, you bit exact testing sound great.  Thanks for explaining the
autotools issues.  I tried "sh autogen.sh" but was told I need Autoconf
version 2.68.  U will try to get that installed.

I'm testing the patch against svn 1045 and noticed a few things:

i) Thru hunting down a patch reject I noticed The fdmdv.c modem has been
modified - have you tested you test those changes?  Some testing ideas
are in README_fdmdv.txt, for example comparing the demod performance to
the reference Octave simulation.  I'm right in the middle of using the
combined modem/codec at present and must be sure no little problems
creep in.

ii) The patch has somehow reverse some recent changes I made to fifo.c,
not sure if I am doing something wrong in applying the patch.

Re using the codec for last resort VOIP yes I am getting interest from
several companies in that area.  I think the quality of Codec 2 isn't
quite there yet (e.g. across all samples, speakers, recording
conditions).  However there is still plenty of development we can do in
that area, and I anticipate we will hit the lower end of current g. VOIP
codec quality in future.  At a much lower bit rate.

Cheers,

David

On Tue, 2012-11-20 at 13:11 +0400, Markovtsev Vadim wrote:
> Hello David,
> 
>  
> 
> I will try to answer your comments.
> 
>  
> 
> > a) I am not very familiar or skilled with autotools et, so sorry of
> this
> 
> > is an obvious question. Will everyone have to run autogen.sh every
> time
> 
> > they check out Codec 2?
> 
>  
> 
> Basically, yes, and it is a best practice. You see, shipping
> configure, ltmain.sh, missing, libtool, etc. scripts together with the
> source code can result in confusion and problems if GNU autotools
> installed on the target computer are of a different version. For
> example, your autoconf version is 2.59 and mine is 2.68. 2.68
> generates different libtool script on Samsung Tizen OS, and simply
> building the project with
> 
>  
> 
> ./configure
> 
> make
> 
>  
> 
> fails with “cannot find .Tpo” libtool auxiliary files. So
> pre-generated configure is not guaranteed to work on all the Linux
> systems zoo.
> 
> Recommended way is to provide an “autogen.sh” (standard name) script
> which runs autotools to create “configure” and installs native scripts
> like libtool, missing or compile into the project directory.
> 
>  
> 
> But, one can append call to “configure” at the end of autogen.sh,
> freeing the developer from executing it by hand. This approach is used
> in many Gstreamer projects, for example. Please note that configuring
> (that is, building) the project in the same source directory is a
> really bad practice. You should never mix source code and object
> files/binaries/libtool.
> 
>  
> 
> > b) Do we still edit to Makefile.am to configure the build system
> 
>  
> 
> Yep. This is almost untouched.
> 
> Good-ol’ configure.in is now configure.ac with exactly the same
> syntax. I just modified it a little bit to enable package checking
> with pkg-config, remove autotools warnings and add some options
> (--enable-tizen, etc.) Here is the description of “configure” life
> cycle:
> 
>  
> 
> configure.ac -> (aclocal) -> configure.in -> (autoconf) -> configure
> 
>  
> 
> > c) How have you verified that the changes (in particular to the
> default
> 
> > x86 code) have no effect on the output speech quality?  For example
> are
> 
> > the output speech samples identical to the output from rev 947 on
> x86?
> 
>  
> 
> I used the most reliable verification method – bit exactness. I
> encoded/decoded a 20-minute radio broadcast with c2demo from vanilla
> codec2, then applied my patch to 947 revision, then
> 
>  
> 
> 1) cd codec2/src
> 
>  
> 
> We get to the src directory of codec2
> 
>  
> 
> 2)find -name '*.c' -exec sed -i -e 's/sinf(/sin(/g' -e
> 's/cosf(/cos(/g' -e 's/tanf(/tan(/g' -e 's/atan2f(/atan2(/g' -e
> 's/powf(/pow(/g' -e 's/log10f(/log10(/g' -e 's/floorf(/floor(/g' -e
> 's/ceilf(/ceil(/g' -e 's/fabsf(/fabs(/g' -e 's/sqrtf(/sqrt(/g' -e
> 's/fmodf(/fmod(/g' {} \;
> 
>  
> 
> This finds all *.c source files and reverts *f math functions to
> double-precision variants, e.g. sinf() becomes sin() again.
> 
>  
> 
> 3)sed -i 's/-ffast-math//' Makefile.am
> 
>  
> 
> This cancels “fast math” gcc option.
> 
>  
> 
> 4)phase.c, near line 96, uncomment
> 
>  
> 
>     phi_ = -atan2(Pw[b].imag,Pw[b].real);
> 
>     H[m].real = Am*cos(phi_);
> 
>     H[m].imag = Am*sin(phi_);
> 
>  
> 
> and comment the alternative calculations below.
> 
>  
> 
> Now, after the complete codec2 rebuild we repeat c2demo
> encoding/decoding. The second file is bit to bit identical to the
> first one (checked with cmp [file_before] [file_after]).
> 
>  
> 
> So the only changes which affect the sound are 2), 3) and 4). 2) and
> 3) are obvious, while 4) just works faster. Personally, with these
> changes off, I do not hear any difference.
> 
>  
> 
> > Also I am curious - what is your (or your employers) application for
> 
> > Codec 2?
> 
>  
> 
> We are investigating the possibility of using codec2 as the last
> resort VoIP audio codec when the channel bandwidth becomes extremely
> narrow. In some application.
> 
>  
> 
>  
> 
> Regards,
> 
> Vadim Markovtsev,
> 
> Engineer, Algorithmic Lab,
> 
> Moscow R&D center, Samsung Electronics
> 
>  
> 
> > Hello Vadim,
> 
> > 
> 
> > Thank you for that patch, it's clear you have put a lot of work into
> 
> > this.  
> 
> > 
> 
> > I have had a first look through the patch. It's a lot to absorb for
> me,
> 
> > and I am currently working hard on the fdmdv2 project.  So it will
> be a
> 
> > little while before I can work through it all.
> 
> > 
> 
> > Some questions/comments:
> 
> > 
> 
> > Re 1):
> 
> > 
> 
> > a) I am not very familiar or skilled with autotools et, so sorry of
> this
> 
> > is an obvious question. Will everyone have to run autogen.sh every
> time
> 
> > they check out Codec 2?
> 
> > 
> 
> > b) Do we still edit to Makefile.am to configure the build system?
> 
> > 
> 
> > Re (3) & (4) & (5) there are quite a lot of changes.  I am sensitive
> to
> 
> > changes in these areas as a small error could introduce hard to find
> 
> > errors in the codec output.
> 
> > 
> 
> > c) How have you verified that the changes (in particular to the
> default
> 
> > x86 code) have no effect on the output speech quality?  For example
> are
> 
> > the output speech samples identical to the output from rev 947 on
> x86?
> 
> > 
> 
> > Also I am curious - what is your (or your employers) application for
> 
> > Codec 2?
> 
> > 
> 
> > Thanks,
> 
> > 
> 
> > David
> 
> 
> ------------------------------------------------------------------------------
> Monitor your physical, virtual and cloud infrastructure from a single
> web console. Get in-depth insight into apps, servers, databases, vmware,
> SAP, cloud infrastructure, etc. Download 30-day Free Trial.
> Pricing starts from $795 for 25 servers or applications!
> http://p.sf.net/sfu/zoho_dev2dev_nov
> _______________________________________________ Freetel-codec2 mailing list 
> [email protected] 
> https://lists.sourceforge.net/lists/listinfo/freetel-codec2



------------------------------------------------------------------------------
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

Reply via email to