diff options
| author | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2008-02-19 19:47:25 +0000 | 
|---|---|---|
| committer | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2008-02-19 19:47:25 +0000 | 
| commit | ce342bf2524b69b19ea5a4ad604faf1aa40ad19c (patch) | |
| tree | bfc6130a2e8ddc83ad883f42e31b4f1e8b41f599 /sbc/sbcenc.c | |
| parent | a8bdd2f6be0cdb932110290f3534a525d99c5031 (diff) | |
Introduce sbc new API.
Diffstat (limited to 'sbc/sbcenc.c')
| -rw-r--r-- | sbc/sbcenc.c | 30 | 
1 files changed, 25 insertions, 5 deletions
| diff --git a/sbc/sbcenc.c b/sbc/sbcenc.c index cf5e1533..e17f8fdb 100644 --- a/sbc/sbcenc.c +++ b/sbc/sbcenc.c @@ -140,11 +140,31 @@ static void encode(char *filename, int subbands, int joint)  	sbc_init(&sbc, 0L); -	sbc.rate = BE_INT(au_hdr->sample_rate); -	sbc.channels = BE_INT(au_hdr->channels); -	sbc.subbands = subbands; -	sbc.joint = joint; -	sbc.swap = 1; +	switch (BE_INT(au_hdr->sample_rate)) { +	case 16000: +		sbc.frequency = SBC_FREQ_16000; +		break; +	case 32000: +		sbc.frequency = SBC_FREQ_32000; +		break; +	case 44100: +		sbc.frequency = SBC_FREQ_44100; +		break; +	case 48000: +		sbc.frequency = SBC_FREQ_48000; +		break; +	} + +	sbc.subbands = subbands == 4 ? SBC_SB_4 : SBC_SB_8; + +	if (BE_INT(au_hdr->channels) == 1) +		sbc.mode = SBC_MODE_MONO; +	else if (joint) +		sbc.mode = SBC_MODE_JOINT_STEREO; +	else +		sbc.mode = SBC_MODE_STEREO; + +	sbc.endian = SBC_BE;  	count = BE_INT(au_hdr->data_size);  	size = len - BE_INT(au_hdr->hdr_size);  	memmove(input, input + BE_INT(au_hdr->hdr_size), size); | 
