Fix a number of things in AudioEncoderDecoderIsac*

- Add max_bit_rate and max_payload_size_bytes to config structs.
- Fix support for 48 kHz sample rate.
- Fix iSAC-RED.
- Add method UpdateDecoderSampleRate().
- Update locking structure with a separate lock for local member
variables used by the encoder methods.

BUG=3926
COAUTHOR:kwiberg@webrtc.org

R=minyue@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/41659004

Cr-Commit-Position: refs/heads/master@{#8204}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8204 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
henrik.lundin@webrtc.org
2015-01-29 14:10:32 +00:00
parent 18e758526d
commit bdebccf384
5 changed files with 165 additions and 44 deletions

View File

@ -18,7 +18,7 @@ namespace webrtc {
struct IsacFloat {
typedef ISACStruct instance_type;
static const bool has_32kHz = true;
static const bool has_swb = true;
static const bool has_redundant_encoder = false;
static inline int16_t Control(instance_type* inst,
int32_t rate,
@ -102,6 +102,13 @@ struct IsacFloat {
FATAL() << "Should never be called.";
return -1;
}
static inline int16_t SetMaxPayloadSize(instance_type* inst,
int16_t max_payload_size_bytes) {
return WebRtcIsac_SetMaxPayloadSize(inst, max_payload_size_bytes);
}
static inline int16_t SetMaxRate(instance_type* inst, int32_t max_bit_rate) {
return WebRtcIsac_SetMaxRate(inst, max_bit_rate);
}
};
typedef AudioEncoderDecoderIsacT<IsacFloat> AudioEncoderDecoderIsac;