Hi Stuart, I have a first pass at the API for multiple rates in the codec2-dev branch:
https://freetel.svn.sourceforge.net/svnroot/freetel/codec2-dev/src/codec2.h Just a mode flag in codec2_create(); Re packet loss repeating the last packet should work OK. The sinusoidal algorithm naturally interpolates from one frame to the next. Speech has a lot of silence in it so in many cases you wont miss the lost packet. Just curious - what is the application you are using Codec 2 for? Thanks for the patch, I tried to apply it but "patch" is complaining about some hidden characters. Could u pls post it to the list a a text file attachment? Thanks, David On Sun, 2011-11-27 at 14:41 +0000, Stuart Marsden wrote: > Great work on the codec. I have found it recently when looking for > MELP alternatives. My use case is for UDP transmission and below the > 2500 rate I do not get any real benefit due to other overheads. I am > therefore glad that the codec will have a choice of rate (might even > be nice to see a 5000 rate). How will this be exposed? I assumed the > api was not fixed yet and I can soon adapt my programme but it would > be interesting to know how the rate will be selected. > > I am using codec2 as part of a Qt programme and linking to it as a > library and have basically wrapped the c2enc and c2dec example in a > QIODevice which makes it quite easy to en/decode stuff without having > to know much about the implementation in the rest of the code. > Because I am using c++ I had to adapt the header file so I could use > it (a patch is below that should allow others to use with c++ and not > change anything for c code). > > I am multicasting to a network with codec2 wrapped in a really simple > protocol. I am just working out my jitter buffer implementation at > the moment but on my reliable home network it works really well. > > I am trying to figure out a simple way to deal with packet loss. I > was thinking of a moving overlapping window so I basically transmit > each frame twice so if I lose a packet I have a chance that I will get > the data from another packet. I just wondered if there is any chance > of an encoding scheme that would mean that I could encode the same > frame two different ways such that any one can produce acceptable > voice quality but if both are available then we get even better > quality. Maybe flipping between wideband/narrowband. Do not know much > about making voice codecs so this could be a bad idea but thought it > might be an efficient way to make the best of my need to transmit each > frame twice. Due to the packet overhead and the short time window for > FEC I see no point in my use case at looking at highly efficient FEC > schemes. > > Anyway thanks for codec2, > Stuart Marsden > > Patch to apply to codec2.h so can be used with c++: > > Index: src/codec2.h > =================================================================== > --- src/codec2.h (revision 309) > +++ src/codec2.h (working copy) > @@ -26,6 +26,9 @@ > along with this program; if not, see <http://www.gnu.org/licenses/>. > */ > > +#ifdef __cplusplus > +extern "C" { > +#endif > #ifndef __CODEC2__ > #define __CODEC2__ > > @@ -39,3 +42,8 @@ > const unsigned char * bits); > > #endif > + > +#ifdef __cplusplus > +} > +#endif > + > > > > > > > In other news I have been steadily working on splitting the combined > > c2sim simulation version of 1400 bit/s into a separate encoder & decoder > > that can support 2500 and 1400. Making the separate encoder and decoder > > exactly match the simulation has exposed and allowed me fix a few small > > bugs. The new version of 2500 is now working, now debugging the > > separate enc/dec versions of 1400. > > > > Thanks, > > > > David > > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure > contains a definitive record of customers, application performance, > security threats, fraudulent activity, and more. Splunk takes this > data and makes sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-novd2d > _______________________________________________ > Freetel-codec2 mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/freetel-codec2 ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity, and more. Splunk takes this data and makes sense of it. IT sense. And common sense. http://p.sf.net/sfu/splunk-novd2d _______________________________________________ Freetel-codec2 mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freetel-codec2
