~ubuntu-branches/ubuntu/wily/sflphone/wily

« back to all changes in this revision

Viewing changes to daemon/libs/pjproject-2.1.0/third_party/gsm/src/decode.c

  • Committer: Package Import Robot
  • Author(s): Mark Purcell
  • Date: 2014-01-28 18:23:36 UTC
  • mfrom: (1.1.11)
  • mto: This revision was merged to the branch mainline in revision 24.
  • Revision ID: package-import@ubuntu.com-20140128182336-3xenud1kbnwmf3mz
* New upstream release 
  - Fixes "New Upstream Release" (Closes: #735846)
  - Fixes "Ringtone does not stop" (Closes: #727164)
  - Fixes "[sflphone-kde] crash on startup" (Closes: #718178)
  - Fixes "sflphone GUI crashes when call is hung up" (Closes: #736583)
* Build-Depends: ensure GnuTLS 2.6
  - libucommon-dev (>= 6.0.7-1.1), libccrtp-dev (>= 2.0.6-3)
  - Fixes "FTBFS Build-Depends libgnutls{26,28}-dev" (Closes: #722040)
* Fix "boost 1.49 is going away" unversioned Build-Depends: (Closes: #736746)
* Add Build-Depends: libsndfile-dev, nepomuk-core-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische
 
3
 * Universitaet Berlin.  See the accompanying file "COPYRIGHT" for
 
4
 * details.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
 
5
 */
 
6
 
 
7
/* $Header: /tmp_amd/presto/export/kbs/jutta/src/gsm/RCS/decode.c,v 1.1 1992/10/28 00:15:50 jutta Exp $ */
 
8
 
 
9
#include "config.h"
 
10
#include <stdio.h>
 
11
 
 
12
#include        "private.h"
 
13
#include        "gsm.h"
 
14
#include        "proto.h"
 
15
 
 
16
/*
 
17
 *  4.3 FIXED POINT IMPLEMENTATION OF THE RPE-LTP DECODER
 
18
 */
 
19
 
 
20
static void Postprocessing P2((S,s),
 
21
        struct gsm_state        * S,
 
22
        register word           * s)
 
23
{
 
24
        register int            k;
 
25
        register word           msr = S->msr;
 
26
        register longword       ltmp;   /* for GSM_ADD */
 
27
        register word           tmp;
 
28
 
 
29
        for (k = 160; k--; s++) {
 
30
                tmp = GSM_MULT_R( msr, 28180 );
 
31
                msr = GSM_ADD(*s, tmp);            /* Deemphasis             */
 
32
                *s  = GSM_ADD(msr, msr) & 0xFFF8;  /* Truncation & Upscaling */
 
33
        }
 
34
        S->msr = msr;
 
35
}
 
36
 
 
37
void Gsm_Decoder P8((S,LARcr, Ncr,bcr,Mcr,xmaxcr,xMcr,s),
 
38
        struct gsm_state        * S,
 
39
 
 
40
        word            * LARcr,        /* [0..7]               IN      */
 
41
 
 
42
        word            * Ncr,          /* [0..3]               IN      */
 
43
        word            * bcr,          /* [0..3]               IN      */
 
44
        word            * Mcr,          /* [0..3]               IN      */
 
45
        word            * xmaxcr,       /* [0..3]               IN      */
 
46
        word            * xMcr,         /* [0..13*4]            IN      */
 
47
 
 
48
        word            * s)            /* [0..159]             OUT     */
 
49
{
 
50
        int             j, k;
 
51
        word            erp[40], wt[160];
 
52
        word            * drp = S->dp0 + 120;
 
53
 
 
54
        for (j=0; j <= 3; j++, xmaxcr++, bcr++, Ncr++, Mcr++, xMcr += 13) {
 
55
 
 
56
                Gsm_RPE_Decoding( S, *xmaxcr, *Mcr, xMcr, erp );
 
57
                Gsm_Long_Term_Synthesis_Filtering( S, *Ncr, *bcr, erp, drp );
 
58
 
 
59
                for (k = 0; k <= 39; k++) wt[ j * 40 + k ] =  drp[ k ];
 
60
        }
 
61
 
 
62
        Gsm_Short_Term_Synthesis_Filter( S, LARcr, wt, s );
 
63
        Postprocessing(S, s);
 
64
}