Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
savoirfairelinux
jami-daemon
Commits
6421269d
Commit
6421269d
authored
Feb 17, 2009
by
sflphone
Browse files
Use speexdsp only if available
parent
5d896181
Changes
3
Show whitespace changes
Inline
Side-by-side
configure.ac
View file @
6421269d
...
...
@@ -233,10 +233,13 @@ AS_IF([test "x$with_speex" != xno],
[libspeex link test failed. You may use --without-speex to compile without speex codec support.])]
)
]
)
dnl More advanced check in case the libspeexdsp is not installed
AC_CHECK_LIB(speex, speex_preprocess_run, [AC_DEFINE(HAVE_SPEEX_DSP)])
)
AC_DEFINE([HAVE_SPEEX], test "x$with_speex" = "xyes", [Define if you have libspeex])
AM_CONDITIONAL(BUILD_SPEEX, test "x$with_speex" = "xyes" )
AM_CONDITIONAL(HAVE_SPEEX_DSP, $(HAVE_SPEEX_DSP))
dnl Check for ilbc support
AC_ARG_WITH([ilbc],
...
...
src/audio/codecs/Makefile.am
View file @
6421269d
...
...
@@ -11,10 +11,14 @@ endif
if
BUILD_SPEEX
SPEEX_LIB
=
libcodec_speex.so
SPEEX_DSP_LIB
=
if
HAVE_SPEEX_DSP
SPEEX_DSP_LIB
=
-lspeexdsp
endif
libcodec_speex_so_SOURCES
=
speexcodec.cpp
libcodec_speex_so_CFLAGS
=
-fPIC
-g
-Wall
libcodec_speex_so_CXXFLAGS
=
-fPIC
-g
-Wall
libcodec_speex_so_LDFLAGS
=
--shared
-lc
-lspeex
-lspeexdsp
-lm
libcodec_speex_so_LDFLAGS
=
--shared
-lc
-lspeex
$(SPEEX_DSP_LIB)
-lm
INSTALL_SPEEX_RULE
=
install-libcodec_speex_so
endif
...
...
src/audio/codecs/speexcodec.cpp
View file @
6421269d
/*
* Copyright (C) 200
5
Savoir-Faire Linux inc.
* Author:
Yan Morin <yan.morin
@savoirfairelinux.com>
* Author:
Jerome Oufella <jerome.oufella
@savoirfairelinux.com>
* Copyright (C) 200
7-2009
Savoir-Faire Linux inc.
* Author:
Alexandre Savard <alexandre.savard
@savoirfairelinux.com>
* Author:
Emmanuel Milou <emmanuel.milou
@savoirfairelinux.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
...
...
@@ -23,10 +23,8 @@
#include
<speex/speex.h>
#include
<speex/speex_preprocess.h>
class
Speex
:
public
AudioCodec
{
public:
public:
Speex
(
int
payload
=
0
)
:
AudioCodec
(
payload
,
"speex"
),
_speexModePtr
(
NULL
),
...
...
@@ -48,20 +46,7 @@ public:
Speex
&
operator
=
(
const
Speex
&
);
void
initSpeex
()
{
int
enable
=
1
;
int
quality
=
10
;
int
complex
=
10
;
int
attenuation
=
-
10
;
/*
if (_clockRate < 16000 ) {
_speexModePtr = &speex_nb_mode;
} else if (_clockRate < 32000) {
_speexModePtr = &speex_wb_mode;
} else {
_speexModePtr = &speex_uwb_mode;
}
*/
// 8000 HZ --> Narrow-band mode
// TODO Manage the other modes
_speexModePtr
=
&
speex_nb_mode
;
...
...
@@ -73,6 +58,14 @@ public:
// Init the encoder struct
speex_bits_init
(
&
_speex_enc_bits
);
_speex_enc_state
=
speex_encoder_init
(
_speexModePtr
);
#ifdef HAVE_SPEEX_DSP
int
enable
=
1
;
int
quality
=
10
;
int
complex
=
10
;
int
attenuation
=
-
10
;
speex_encoder_ctl
(
_speex_enc_state
,
SPEEX_SET_VAD
,
&
enable
);
speex_encoder_ctl
(
_speex_enc_state
,
SPEEX_SET_DTX
,
&
enable
);
speex_encoder_ctl
(
_speex_enc_state
,
SPEEX_SET_VBR_QUALITY
,
&
quality
);
...
...
@@ -87,6 +80,7 @@ public:
speex_preprocess_ctl
(
_preprocess_state
,
SPEEX_PREPROCESS_SET_NOISE_SUPPRESS
,
&
attenuation
);
speex_preprocess_ctl
(
_preprocess_state
,
SPEEX_PREPROCESS_SET_VAD
,
&
enable
);
speex_preprocess_ctl
(
_preprocess_state
,
SPEEX_PREPROCESS_SET_AGC
,
&
enable
);
#endif
}
...
...
@@ -119,14 +113,18 @@ public:
virtual
int
codecEncode
(
unsigned
char
*
dst
,
short
*
src
,
unsigned
int
size
)
{
speex_bits_reset
(
&
_speex_enc_bits
);
#ifdef HAVE_SPEEX_DSP
speex_encoder_ctl
(
_speex_enc_state
,
SPEEX_SET_SAMPLING_RATE
,
&
_clockRate
);
speex_preprocess_run
(
_preprocess_state
,
src
);
#endif
speex_encode_int
(
_speex_enc_state
,
src
,
&
_speex_enc_bits
);
int
nbBytes
=
speex_bits_write
(
&
_speex_enc_bits
,
(
char
*
)
dst
,
size
);
return
nbBytes
;
}
private:
private:
const
SpeexMode
*
_speexModePtr
;
SpeexBits
_speex_dec_bits
;
SpeexBits
_speex_enc_bits
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment