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
35dae9e9
Commit
35dae9e9
authored
Oct 12, 2011
by
Tristan Matthews
Browse files
* #7131: remove (void), rename _foobar
parent
be6905d9
Changes
16
Hide whitespace changes
Inline
Side-by-side
daemon/src/audio/audiorecorder.cpp
View file @
35dae9e9
...
...
@@ -59,7 +59,7 @@ AudioRecorder::AudioRecorder(AudioRecord *arec, MainBuffer *mb) : Thread()
/**
* Reimplementation of run()
*/
void
AudioRecorder
::
run
(
void
)
void
AudioRecorder
::
run
()
{
int
bufferLength
=
10000
;
...
...
daemon/src/audio/audiortp/audio_rtp_record_handler.cpp
View file @
35dae9e9
...
...
@@ -104,7 +104,7 @@ void AudioRtpRecordHandler::putDtmfEvent(int digit)
std
::
ofstream
teststream
(
"test_process_data_encode.raw"
);
#endif
int
AudioRtpRecordHandler
::
processDataEncode
(
void
)
int
AudioRtpRecordHandler
::
processDataEncode
()
{
SFLDataFormat
*
micData
=
audioRtpRecord_
.
decData_
;
unsigned
char
*
micDataEncoded
=
audioRtpRecord_
.
encodedData_
;
...
...
daemon/src/audio/audiortp/audio_srtp_session.cpp
View file @
35dae9e9
...
...
@@ -135,7 +135,7 @@ void AudioSrtpSession::setRemoteCryptoInfo(sfl::SdesNegotiator& nego)
}
}
void
AudioSrtpSession
::
initializeLocalMasterKey
(
void
)
void
AudioSrtpSession
::
initializeLocalMasterKey
()
{
_debug
(
"AudioSrtp: Init local master key"
);
...
...
@@ -156,7 +156,7 @@ void AudioSrtpSession::initializeLocalMasterKey(void)
memcpy
(
localMasterKey_
,
random_key
,
localMasterKeyLength_
);
}
void
AudioSrtpSession
::
initializeLocalMasterSalt
(
void
)
void
AudioSrtpSession
::
initializeLocalMasterSalt
()
{
// @TODO key may have different length depending on cipher suite
localMasterSaltLength_
=
sfl
::
CryptoSuites
[
localCryptoSuite_
].
masterSaltLength
/
8
;
...
...
@@ -212,7 +212,7 @@ void AudioSrtpSession::unBase64ConcatenatedKeys(std::string base64keys)
delete
[]
output
;
}
void
AudioSrtpSession
::
initializeRemoteCryptoContext
(
void
)
void
AudioSrtpSession
::
initializeRemoteCryptoContext
()
{
_debug
(
"AudioSrtp: Initialize remote crypto context"
);
...
...
@@ -239,7 +239,7 @@ void AudioSrtpSession::initializeRemoteCryptoContext(void)
}
void
AudioSrtpSession
::
initializeLocalCryptoContext
(
void
)
void
AudioSrtpSession
::
initializeLocalCryptoContext
()
{
_debug
(
"AudioSrtp: Initialize local crypto context"
);
...
...
daemon/src/audio/audiortp/zrtp_session_callback.cpp
View file @
35dae9e9
...
...
@@ -131,7 +131,7 @@ ZrtpSessionCallback::secureOn(std::string cipher)
}
void
ZrtpSessionCallback
::
secureOff
(
void
)
ZrtpSessionCallback
::
secureOff
()
{
_debug
(
"Zrtp: Secure mode is off"
);
Manager
::
instance
().
getDbusManager
()
->
getCallManager
()
->
secureZrtpOff
(
_sipcall
->
getCallId
());
...
...
daemon/src/audio/audiortp/zrtp_session_callback.h
View file @
35dae9e9
...
...
@@ -49,9 +49,9 @@ class ZrtpSessionCallback: public ZrtpUserCallback {
ZrtpSessionCallback
(
SIPCall
*
sipcall
);
void
secureOn
(
std
::
string
cipher
);
void
secureOff
(
void
);
void
secureOff
();
void
showSAS
(
std
::
string
sas
,
bool
verified
);
void
zrtpNotSuppOther
(
void
);
void
zrtpNotSuppOther
();
void
showMessage
(
GnuZrtpCodes
::
MessageSeverity
sev
,
int32_t
subCode
);
void
zrtpNegotiationFailed
(
GnuZrtpCodes
::
MessageSeverity
severity
,
int
subCode
);
void
confirmGoClear
();
...
...
daemon/src/audio/codecs/alaw.cpp
View file @
35dae9e9
...
...
@@ -40,33 +40,33 @@ class Alaw : public sfl::AudioCodec {
// 8 PCMA A 8000 1 [RFC3551]
Alaw
(
int
payload
=
8
)
:
sfl
::
AudioCodec
(
payload
,
"PCMA"
)
{
_
clockRate
=
8000
;
_
frameSize
=
160
;
// samples, 20 ms at 8kHz
_
channel
=
1
;
_
bitrate
=
64
;
_
hasDynamicPayload
=
false
;
clockRate
_
=
8000
;
frameSize
_
=
160
;
// samples, 20 ms at 8kHz
channel
_
=
1
;
bitrate
_
=
64
;
hasDynamicPayload
_
=
false
;
}
virtual
~
Alaw
()
{}
virtual
int
decode
(
short
*
dst
,
unsigned
char
*
src
,
size_t
buf_size
)
{
assert
(
buf_size
==
_
frameSize
/
2
/* compression factor = 2:1 */
*
sizeof
(
SFLDataFormat
));
unsigned
char
*
end
=
src
+
buf_size
;
assert
(
buf_size
==
frameSize
_
/
2
/* compression factor = 2:1 */
*
sizeof
(
SFLDataFormat
));
unsigned
char
*
end
=
src
+
buf_size
;
while
(
src
<
end
)
while
(
src
<
end
)
*
dst
++
=
ALawDecode
(
*
src
++
);
return
_
frameSize
;
return
frameSize
_
;
}
virtual
int
encode
(
unsigned
char
*
dst
,
short
*
src
,
size_t
buf_size
)
{
assert
(
buf_size
>=
_
frameSize
/
2
/* compression factor = 2:1 */
*
sizeof
(
SFLDataFormat
));
uint8
*
end
=
dst
+
_
frameSize
;
assert
(
buf_size
>=
frameSize
_
/
2
/* compression factor = 2:1 */
*
sizeof
(
SFLDataFormat
));
uint8
*
end
=
dst
+
frameSize
_
;
while
(
dst
<
end
)
while
(
dst
<
end
)
*
dst
++
=
ALawEncode
(
*
src
++
);
return
_
frameSize
/
2
/* compression factor = 2:1 */
*
sizeof
(
SFLDataFormat
);
return
frameSize
_
/
2
/* compression factor = 2:1 */
*
sizeof
(
SFLDataFormat
);
}
...
...
@@ -80,9 +80,9 @@ class Alaw : public sfl::AudioCodec {
alaw
&=
0x7f
;
if
(
alaw
>=
0x20
)
{
if
(
alaw
>=
0x20
)
{
linear
|=
0x100
;
// Put in MSB
uint
shift
=
(
alaw
>>
4
)
-
1
;
uint
shift
=
(
alaw
>>
4
)
-
1
;
linear
<<=
shift
;
}
...
...
@@ -97,7 +97,7 @@ class Alaw : public sfl::AudioCodec {
int
p
=
pcm16
;
uint
a
;
// u-law value we are forming
if
(
p
<
0
)
{
if
(
p
<
0
)
{
p
=
~
p
;
a
=
0x00
;
// sign = 0
}
else
{
...
...
daemon/src/audio/codecs/audiocodec.cpp
View file @
35dae9e9
...
...
@@ -37,32 +37,27 @@ using std::ptrdiff_t;
namespace
sfl
{
AudioCodec
::
AudioCodec
(
uint8
payload
,
const
std
::
string
&
codecName
)
:
_
codecName
(
codecName
),
_
clockRate
(
8000
),
_
channel
(
1
),
_
bitrate
(
0.0
),
_
hasDynamicPayload
(
false
),
_
payload
(
payload
)
codecName
_
(
codecName
),
clockRate
_
(
8000
),
channel
_
(
1
),
bitrate
_
(
0.0
),
hasDynamicPayload
_
(
false
),
payload
_
(
payload
)
{
init
(
payload
,
_
clockRate
);
init
(
payload
,
clockRate
_
);
}
AudioCodec
::
AudioCodec
(
const
AudioCodec
&
codec
)
:
_
codecName
(
codec
.
_
codecName
),
_
clockRate
(
codec
.
_
clockRate
),
_
channel
(
codec
.
_
channel
),
_
bitrate
(
codec
.
_
bitrate
),
_
hasDynamicPayload
(
false
),
_
payload
(
codec
.
_
payload
)
codecName
_
(
codec
.
codecName
_
),
clockRate
_
(
codec
.
clockRate
_
),
channel
_
(
codec
.
channel
_
),
bitrate
_
(
codec
.
bitrate
_
),
hasDynamicPayload
_
(
false
),
payload
_
(
codec
.
payload
_
)
{
init
(
codec
.
_
payload
,
codec
.
_
clockRate
);
init
(
codec
.
payload
_
,
codec
.
clockRate
_
);
}
void
AudioCodec
::
init
(
uint8
payloadType
,
uint32
clockRate
)
{
_payloadFormat
=
new
ost
::
DynamicPayloadFormat
(
payloadType
,
clockRate
);
_hasDynamicPayload
=
(
_payload
>=
96
&&
_payload
<=
127
)
?
true
:
false
;
payloadFormat_
=
new
ost
::
DynamicPayloadFormat
(
payloadType
,
clockRate
);
// If g722 (payload 9), we need to init libccrtp symetric sessions with using
// dynamic payload format. This way we get control on rtp clockrate.
if
(
_payload
==
9
)
{
_hasDynamicPayload
=
true
;
}
hasDynamicPayload_
=
((
payload_
>=
96
and
payload_
<=
127
)
or
payload_
==
9
);
}
std
::
string
AudioCodec
::
getMimeType
()
const
...
...
@@ -72,47 +67,47 @@ std::string AudioCodec::getMimeType() const
std
::
string
AudioCodec
::
getMimeSubtype
()
const
{
return
_
codecName
;
return
codecName
_
;
}
const
ost
::
PayloadFormat
&
AudioCodec
::
getPayloadFormat
()
{
return
(
*
_
payloadFormat
)
;
return
*
payloadFormat
_
;
}
uint8
AudioCodec
::
getPayloadType
(
void
)
const
uint8
AudioCodec
::
getPayloadType
()
const
{
return
_
payload
;
return
payload
_
;
}
bool
AudioCodec
::
hasDynamicPayload
(
void
)
const
bool
AudioCodec
::
hasDynamicPayload
()
const
{
return
_
hasDynamicPayload
;
return
hasDynamicPayload
_
;
}
uint32
AudioCodec
::
getClockRate
(
void
)
const
uint32
AudioCodec
::
getClockRate
()
const
{
return
_
clockRate
;
return
clockRate
_
;
}
unsigned
AudioCodec
::
getFrameSize
(
void
)
const
unsigned
AudioCodec
::
getFrameSize
()
const
{
return
_
frameSize
;
return
frameSize
_
;
}
uint8
AudioCodec
::
getChannel
(
void
)
const
uint8
AudioCodec
::
getChannel
()
const
{
return
_
channel
;
return
channel
_
;
}
double
AudioCodec
::
getBitRate
(
void
)
const
double
AudioCodec
::
getBitRate
()
const
{
return
_
bitrate
;
return
bitrate
_
;
}
AudioCodec
::~
AudioCodec
()
{
delete
_
payloadFormat
;
delete
payloadFormat
_
;
}
}
// end namespace sfl
daemon/src/audio/codecs/audiocodec.h
View file @
35dae9e9
...
...
@@ -111,7 +111,7 @@ class AudioCodec : public Codec {
* @Override
*/
void
setPayloadType
(
uint8
pt
)
{
_
payload
=
pt
;
payload
_
=
pt
;
}
/**
...
...
@@ -141,29 +141,29 @@ class AudioCodec : public Codec {
protected:
/** Holds SDP-compliant codec name */
std
::
string
_
codecName
;
// what we put inside sdp
std
::
string
codecName
_
;
// what we put inside sdp
/** Clock rate or sample rate of the codec, in Hz */
uint32
_
clockRate
;
uint32
clockRate
_
;
/** Number of channel 1 = mono, 2 = stereo */
uint8
_
channel
;
uint8
channel
_
;
/** codec frame size in samples*/
unsigned
_
frameSize
;
unsigned
frameSize
_
;
/** Bitrate */
double
_
bitrate
;
double
bitrate
_
;
/** Bandwidth */
double
_
bandwidth
;
double
bandwidth
_
;
bool
_
hasDynamicPayload
;
bool
hasDynamicPayload
_
;
private:
uint8
_
payload
;
uint8
payload
_
;
ost
::
DynamicPayloadFormat
*
_
payloadFormat
;
ost
::
DynamicPayloadFormat
*
payloadFormat
_
;
void
init
(
uint8
payloadType
,
uint32
clockRate
);
};
...
...
daemon/src/audio/codecs/celtcodec.cpp
View file @
35dae9e9
...
...
@@ -37,17 +37,15 @@
class
Celt
:
public
sfl
::
AudioCodec
{
public:
Celt
(
int
payload
=
115
)
:
sfl
::
AudioCodec
(
payload
,
"celt"
)
{
_clockRate
=
32000
;
_frameSize
=
320
;
// fixed frameSize, TODO: support variable size from 64 to 512
_channel
=
1
;
_bitrate
=
0
;
_hasDynamicPayload
=
true
;
Celt
(
int
payload
=
115
)
:
sfl
::
AudioCodec
(
payload
,
"celt"
)
{
clockRate_
=
32000
;
frameSize_
=
320
;
// fixed frameSize, TODO: support variable size from 64 to 512
channel_
=
1
;
bitrate_
=
0
;
hasDynamicPayload_
=
true
;
int
error
=
0
;
_
mode
=
celt_mode_create
(
_
clockRate
,
_
frameSize
,
&
error
);
mode
_
=
celt_mode_create
(
clockRate
_
,
frameSize
_
,
&
error
);
if
(
error
!=
CELT_OK
)
{
switch
(
error
)
{
...
...
@@ -78,72 +76,58 @@ class Celt : public sfl::AudioCodec {
}
if
(
_
mode
==
NULL
)
if
(
mode
_
==
NULL
)
throw
std
::
runtime_error
(
"Celt: Failed to create Celt mode"
);
// bytes_per_packet = 1024;
// if (bytes_per_packet < 0 || bytes_per_packet > MAX_PACKET)
// {
// throw std::runtime_error("bytes per packet must be between 0 and %d");
// }
// celt_mode_info(mode, CELT_GET_FRAME_SIZE, &frame_size);
// celt_mode_info(mode, CELT_GET_NB_CHANNELS, &_channel);
_enc
=
celt_encoder_create
(
_mode
,
_channel
,
&
error
);
enc_
=
celt_encoder_create
(
mode_
,
channel_
,
&
error
);
dec_
=
celt_decoder_create
(
mode_
,
channel_
,
&
error
);
_dec
=
celt_decoder_create
(
_mode
,
_channel
,
&
error
);
celt_encoder_ctl
(
_enc
,
CELT_SET_COMPLEXITY
(
2
));
celt_decoder_ctl
(
_dec
,
CELT_SET_COMPLEXITY
(
2
));
celt_encoder_ctl
(
_enc
,
CELT_SET_PREDICTION
(
2
));
celt_decoder_ctl
(
_dec
,
CELT_SET_PREDICTION
(
2
));
celt_encoder_ctl
(
enc_
,
CELT_SET_COMPLEXITY
(
2
));
celt_decoder_ctl
(
dec_
,
CELT_SET_COMPLEXITY
(
2
));
celt_encoder_ctl
(
enc_
,
CELT_SET_PREDICTION
(
2
));
celt_decoder_ctl
(
dec_
,
CELT_SET_PREDICTION
(
2
));
}
Celt
(
const
Celt
&
);
Celt
&
operator
=
(
const
Celt
&
);
~
Celt
()
{
celt_encoder_destroy
(
_
enc
);
celt_decoder_destroy
(
_
dec
);
celt_mode_destroy
(
_
mode
);
celt_encoder_destroy
(
enc
_
);
celt_decoder_destroy
(
dec
_
);
celt_mode_destroy
(
mode
_
);
}
virtual
int
decode
(
short
*
dst
,
unsigned
char
*
src
,
size_t
buf_size
)
{
#ifdef BUILD_CELT_91 // == 91
//int err = 0;
/*err =*/
celt_decode
(
_dec
,
src
,
buf_size
,
(
celt_int16
*
)
dst
,
_frameSize
);
celt_decode
(
dec_
,
src
,
buf_size
,
(
celt_int16
*
)
dst
,
frameSize_
);
#endif
#ifdef BUILD_CELT_71
//int err = 0; // FIXME: check error code
/*err =*/
celt_decode
(
_dec
,
src
,
buf_size
,
(
celt_int16
*
)
dst
);
celt_decode
(
dec_
,
src
,
buf_size
,
(
celt_int16
*
)
dst
);
#endif
return
_
frameSize
;
return
frameSize
_
;
}
virtual
int
encode
(
unsigned
char
*
dst
,
short
*
src
,
size_t
buf_size
)
{
int
len
=
0
;
#ifdef BUILD_CELT_91// == 91
len
=
celt_encode
(
_
enc
,
(
celt_int16
*
)
src
,
_
frameSize
,
dst
,
buf_size
);
len
=
celt_encode
(
enc
_
,
(
celt_int16
*
)
src
,
frameSize
_
,
dst
,
buf_size
);
#endif
#ifdef BUILD_CELT_71
len
=
celt_encode
(
_
enc
,
(
celt_int16
*
)
src
,
(
celt_int16
*
)
src
,
dst
,
buf_size
);
len
=
celt_encode
(
enc
_
,
(
celt_int16
*
)
src
,
(
celt_int16
*
)
src
,
dst
,
buf_size
);
#endif
return
len
;
}
private:
CELTMode
*
_mode
;
CELTEncoder
*
_enc
;
CELTDecoder
*
_dec
;
CELTMode
*
mode_
;
celt_int32
_celt_frame_size
;
celt_int32
skip
;
CELTEncoder
*
enc_
;
CELTDecoder
*
dec_
;
celt_int32
celt_frame_size_
;
celt_int32
skip_
;
};
// the class factories
...
...
daemon/src/audio/codecs/g722.cpp
View file @
35dae9e9
...
...
@@ -51,11 +51,11 @@ class G722 : public sfl::AudioCodec {
G722
(
int
payload
=
9
)
:
sfl
::
AudioCodec
(
payload
,
"G722"
)
{
_
clockRate
=
16000
;
_
frameSize
=
320
;
// samples, 20 ms at 16kHz
_
channel
=
1
;
_
bitrate
=
64
;
_
hasDynamicPayload
=
false
;
clockRate
_
=
16000
;
frameSize
_
=
320
;
// samples, 20 ms at 16kHz
channel
_
=
1
;
bitrate
_
=
64
;
hasDynamicPayload
_
=
false
;
decode_s
=
new
g722_decode_state_t
;
...
...
@@ -72,19 +72,18 @@ class G722 : public sfl::AudioCodec {
}
virtual
int
decode
(
short
*
dst
,
unsigned
char
*
src
,
size_t
buf_size
)
{
assert
(
buf_size
==
_
frameSize
/
sizeof
(
SFLDataFormat
)
*
encode_s
->
bits_per_sample
/
8
);
assert
(
buf_size
==
frameSize
_
/
sizeof
(
SFLDataFormat
)
*
encode_s
->
bits_per_sample
/
8
);
return
g722_decode
((
int16_t
*
)
dst
,
(
const
uint8_t
*
)
src
,
buf_size
);
}
virtual
int
encode
(
unsigned
char
*
dst
,
short
*
src
,
size_t
buf_size
)
{
int
out
=
g722_encode
((
uint8_t
*
)
dst
,
(
const
int16_t
*
)
src
,
_
frameSize
);
int
out
=
g722_encode
((
uint8_t
*
)
dst
,
(
const
int16_t
*
)
src
,
frameSize
_
);
assert
((
size_t
)
out
<=
buf_size
);
return
out
;
}
void
g722_encode_init
(
void
)
{
encode_s
->
itu_test_mode
=
FALSE
;
// 8 => 64 kbps; 7 => 56 kbps; 6 => 48 kbps
...
...
daemon/src/audio/codecs/g722.h
View file @
35dae9e9
...
...
@@ -136,11 +136,11 @@ typedef struct {
extern
"C"
{
#endif
void
g722_encode_init
(
void
);
void
g722_encode_init
();
int
g722_encode_release
();
int
g722_encode
(
uint8_t
g722_data
[],
const
int16_t
amp
[],
int
len
);
void
g722_decode_init
(
void
);
void
g722_decode_init
();
int
g722_decode_release
();
int
g722_decode
(
int16_t
amp
[],
const
uint8_t
g722_data
[],
int
len
);
...
...
daemon/src/audio/codecs/gsmcodec.cpp
View file @
35dae9e9
...
...
@@ -46,17 +46,17 @@ class Gsm : public sfl::AudioCodec {
public:
// _payload should be 3
Gsm
(
int
payload
=
3
)
:
sfl
::
AudioCodec
(
payload
,
"GSM"
),
_
decode_gsmhandle
(
NULL
),
_
encode_gsmhandle
(
NULL
)
{
_
clockRate
=
8000
;
_
frameSize
=
160
;
// samples, 20 ms at 8kHz
_
channel
=
1
;
_
bitrate
=
13.3
;
_
hasDynamicPayload
=
false
;
if
(
!
(
_
decode_gsmhandle
=
gsm_create
()))
Gsm
(
int
payload
=
3
)
:
sfl
::
AudioCodec
(
payload
,
"GSM"
),
decode_gsmhandle
_
(
NULL
),
encode_gsmhandle
_
(
NULL
)
{
clockRate
_
=
8000
;
frameSize
_
=
160
;
// samples, 20 ms at 8kHz
channel
_
=
1
;
bitrate
_
=
13.3
;
hasDynamicPayload
_
=
false
;
if
(
!
(
decode_gsmhandle
_
=
gsm_create
()))
throw
std
::
runtime_error
(
"ERROR: decode_gsm_create
\n
"
);
if
(
!
(
_
encode_gsmhandle
=
gsm_create
()))
if
(
!
(
encode_gsmhandle
_
=
gsm_create
()))
throw
std
::
runtime_error
(
"ERROR: encode_gsm_create
\n
"
);
}
...
...
@@ -65,30 +65,28 @@ class Gsm : public sfl::AudioCodec {
Gsm
&
operator
=
(
const
Gsm
&
);
virtual
~
Gsm
(
void
)
{
gsm_destroy
(
_
decode_gsmhandle
);
gsm_destroy
(
_
encode_gsmhandle
);
gsm_destroy
(
decode_gsmhandle
_
);
gsm_destroy
(
encode_gsmhandle
_
);
}
virtual
int
decode
(
short
*
dst
,
unsigned
char
*
src
,
size_t
buf_size
)
{
assert
(
buf_size
==
33
);
(
void
)
buf_size
;
if
(
gsm_decode
(
_
decode_gsmhandle
,
(
gsm_byte
*
)
src
,
(
gsm_signal
*
)
dst
)
<
0
)
if
(
gsm_decode
(
decode_gsmhandle
_
,
(
gsm_byte
*
)
src
,
(
gsm_signal
*
)
dst
)
<
0
)
throw
std
::
runtime_error
(
"ERROR: gsm_decode
\n
"
);
return
_
frameSize
;
return
frameSize
_
;
}
virtual
int
encode
(
unsigned
char
*
dst
,
short
*
src
,
size_t
buf_size
)
{
(
void
)
buf_size
;
assert
(
buf_size
>=
33
);
gsm_encode
(
_
encode_gsmhandle
,
(
gsm_signal
*
)
src
,
(
gsm_byte
*
)
dst
);
gsm_encode
(
encode_gsmhandle
_
,
(
gsm_signal
*
)
src
,
(
gsm_byte
*
)
dst
);
return
33
;
}
private:
gsm
_
decode_gsmhandle
;
gsm
_
encode_gsmhandle
;
gsm
decode_gsmhandle
_
;
gsm
encode_gsmhandle
_
;
};
extern
"C"
sfl
::
Codec
*
create
()
...
...
daemon/src/audio/codecs/speexcodec.h
View file @
35dae9e9
...
...
@@ -71,22 +71,22 @@ class Speex : public sfl::AudioCodec {
112
==
PAYLOAD_CODEC_SPEEX_32000
);
int
type
=
payload
-
110
;
_
clockRate
=
clockRate
[
type
];
_
frameSize
=
frameSize
[
type
];
_
channel
=
1
;
_
bitrate
=
bitRate
[
type
];
_
hasDynamicPayload
=
dynamicPayload
[
type
];
clockRate
_
=
clockRate
[
type
];
frameSize
_
=
frameSize
[
type
];
channel
_
=
1
;
bitrate
_
=
bitRate
[
type
];
hasDynamicPayload
_
=
dynamicPayload
[
type
];
// Init the decoder struct
speex_bits_init
(
&
_
speex_dec_bits
);
_
speex_dec_state
=
speex_decoder_init
(
speexMode
[
type
]);
speex_bits_init
(
&
speex_dec_bits
_
);
speex_dec_state
_
=
speex_decoder_init
(
speexMode
[
type
]);
// Init the encoder struct
speex_bits_init
(
&
_
speex_enc_bits
);
_
speex_enc_state
=
speex_encoder_init
(
speexMode
[
type
]);
speex_bits_init
(
&
speex_enc_bits
_
);
speex_enc_state
_
=
speex_encoder_init
(
speexMode
[
type
]);
speex_encoder_ctl
(
_
speex_enc_state
,
SPEEX_SET_SAMPLING_RATE
,
&
_
clockRate
);
speex_decoder_ctl
(
_
speex_dec_state
,
SPEEX_GET_FRAME_SIZE
,
&
_
speex_frame_size
);
speex_encoder_ctl
(
speex_enc_state
_
,
SPEEX_SET_SAMPLING_RATE
,
&
clockRate
_
);
speex_decoder_ctl
(
speex_dec_state
_
,
SPEEX_GET_FRAME_SIZE
,
&
speex_frame_size
_
);
}
Speex
(
const
Speex
&
);
...
...
@@ -94,32 +94,32 @@ class Speex : public sfl::AudioCodec {
~
Speex
()
{
// Destroy the decoder struct
speex_bits_destroy
(
&
_
speex_dec_bits
);
speex_decoder_destroy
(
_
speex_dec_state
);
_
speex_dec_state
=
0
;
speex_bits_destroy
(
&
speex_dec_bits
_
);
speex_decoder_destroy
(
speex_dec_state
_
);
speex_dec_state
_
=
0
;
// Destroy the encoder struct
speex_bits_destroy
(
&
_
speex_enc_bits
);
speex_encoder_destroy
(
_
speex_enc_state
);
_
speex_enc_state
=
0
;
speex_bits_destroy
(
&
speex_enc_bits
_
);
speex_encoder_destroy
(
speex_enc_state
_
);
speex_enc_state
_
=
0
;
}
virtual
int
decode
(
short
*
dst
,
unsigned
char
*
src
,
size_t
buf_size
)
{
speex_bits_read_from
(
&
_
speex_dec_bits
,
(
char
*
)
src
,
buf_size
);
speex_decode_int
(
_
speex_dec_state
,
&
_
speex_dec_bits
,
dst
);
return
_
frameSize
;
speex_bits_read_from
(
&
speex_dec_bits
_
,
(
char
*
)
src
,
buf_size
);
speex_decode_int
(
speex_dec_state
_
,
&
speex_dec_bits
_
,
dst
);
return
frameSize
_
;
}