mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-04 13:29:59 -05:00
fix prototypes of sbc functions a bit
This commit is contained in:
parent
794775bb51
commit
291d21c4ba
3 changed files with 32 additions and 17 deletions
|
|
@ -949,7 +949,7 @@ static int a2dp_process_render(struct userdata *u) {
|
||||||
void *d;
|
void *d;
|
||||||
const void *p;
|
const void *p;
|
||||||
unsigned frame_count;
|
unsigned frame_count;
|
||||||
int written;
|
size_t written;
|
||||||
uint64_t writing_at;
|
uint64_t writing_at;
|
||||||
|
|
||||||
pa_assert(u);
|
pa_assert(u);
|
||||||
|
|
@ -975,14 +975,14 @@ static int a2dp_process_render(struct userdata *u) {
|
||||||
writing_at = u->write_index;
|
writing_at = u->write_index;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
int encoded;
|
ssize_t encoded;
|
||||||
|
|
||||||
if (!u->write_memchunk.memblock)
|
if (!u->write_memchunk.memblock)
|
||||||
pa_sink_render_full(u->sink, u->block_size, &u->write_memchunk);
|
pa_sink_render_full(u->sink, u->block_size, &u->write_memchunk);
|
||||||
|
|
||||||
p = (const uint8_t*) pa_memblock_acquire(u->write_memchunk.memblock) + u->write_memchunk.index;
|
p = (const uint8_t*) pa_memblock_acquire(u->write_memchunk.memblock) + u->write_memchunk.index;
|
||||||
encoded = sbc_encode(&a2dp->sbc,
|
encoded = sbc_encode(&a2dp->sbc,
|
||||||
(void*) p, u->write_memchunk.length,
|
p, u->write_memchunk.length,
|
||||||
d, left,
|
d, left,
|
||||||
&written);
|
&written);
|
||||||
|
|
||||||
|
|
@ -997,10 +997,11 @@ static int a2dp_process_render(struct userdata *u) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
pa_assert(written >= 0);
|
|
||||||
|
|
||||||
pa_assert((size_t) encoded <= u->write_memchunk.length);
|
pa_assert((size_t) encoded <= u->write_memchunk.length);
|
||||||
|
pa_assert((size_t) encoded == sbc_get_codesize(&a2dp->sbc));
|
||||||
|
|
||||||
pa_assert((size_t) written <= left);
|
pa_assert((size_t) written <= left);
|
||||||
|
pa_assert((size_t) written == sbc_get_frame_length(&a2dp->sbc));
|
||||||
|
|
||||||
/* pa_log_debug("SBC: encoded: %d; written: %d", encoded, written); */
|
/* pa_log_debug("SBC: encoded: %d; written: %d", encoded, written); */
|
||||||
|
|
||||||
|
|
@ -1019,7 +1020,7 @@ static int a2dp_process_render(struct userdata *u) {
|
||||||
|
|
||||||
frame_count++;
|
frame_count++;
|
||||||
|
|
||||||
} while ((uint8_t*) d - (uint8_t*) a2dp->buffer + written < (ptrdiff_t) u->link_mtu);
|
} while (((uint8_t*) d - ((uint8_t*) a2dp->buffer + sbc_get_frame_length(&a2dp->sbc))) < (ptrdiff_t) u->link_mtu);
|
||||||
|
|
||||||
/* write it to the fifo */
|
/* write it to the fifo */
|
||||||
memset(a2dp->buffer, 0, sizeof(*header) + sizeof(*payload));
|
memset(a2dp->buffer, 0, sizeof(*header) + sizeof(*payload));
|
||||||
|
|
|
||||||
|
|
@ -1044,8 +1044,10 @@ int sbc_decode(sbc_t *sbc, void *input, int input_len, void *output,
|
||||||
return framelen;
|
return framelen;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sbc_encode(sbc_t *sbc, void *input, int input_len, void *output,
|
ssize_t sbc_encode(sbc_t *sbc,
|
||||||
int output_len, int *written)
|
const void *input, size_t input_len,
|
||||||
|
void *output, size_t output_len,
|
||||||
|
size_t *written)
|
||||||
{
|
{
|
||||||
struct sbc_priv *priv;
|
struct sbc_priv *priv;
|
||||||
int framelen, samples;
|
int framelen, samples;
|
||||||
|
|
@ -1133,9 +1135,9 @@ void sbc_finish(sbc_t *sbc)
|
||||||
memset(sbc, 0, sizeof(sbc_t));
|
memset(sbc, 0, sizeof(sbc_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
int sbc_get_frame_length(sbc_t *sbc)
|
size_t sbc_get_frame_length(sbc_t *sbc)
|
||||||
{
|
{
|
||||||
int ret;
|
size_t ret;
|
||||||
uint8_t subbands, channels, blocks, joint;
|
uint8_t subbands, channels, blocks, joint;
|
||||||
struct sbc_priv *priv;
|
struct sbc_priv *priv;
|
||||||
|
|
||||||
|
|
@ -1164,7 +1166,7 @@ int sbc_get_frame_length(sbc_t *sbc)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int sbc_get_frame_duration(sbc_t *sbc)
|
unsigned sbc_get_frame_duration(sbc_t *sbc)
|
||||||
{
|
{
|
||||||
uint8_t subbands, blocks;
|
uint8_t subbands, blocks;
|
||||||
uint16_t frequency;
|
uint16_t frequency;
|
||||||
|
|
@ -1202,7 +1204,7 @@ int sbc_get_frame_duration(sbc_t *sbc)
|
||||||
return (1000000 * blocks * subbands) / frequency;
|
return (1000000 * blocks * subbands) / frequency;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t sbc_get_codesize(sbc_t *sbc)
|
size_t sbc_get_codesize(sbc_t *sbc)
|
||||||
{
|
{
|
||||||
uint16_t subbands, channels, blocks;
|
uint16_t subbands, channels, blocks;
|
||||||
struct sbc_priv *priv;
|
struct sbc_priv *priv;
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
/* sampling frequency */
|
/* sampling frequency */
|
||||||
#define SBC_FREQ_16000 0x00
|
#define SBC_FREQ_16000 0x00
|
||||||
|
|
@ -84,11 +85,22 @@ int sbc_reinit(sbc_t *sbc, unsigned long flags);
|
||||||
int sbc_parse(sbc_t *sbc, void *input, int input_len);
|
int sbc_parse(sbc_t *sbc, void *input, int input_len);
|
||||||
int sbc_decode(sbc_t *sbc, void *input, int input_len, void *output,
|
int sbc_decode(sbc_t *sbc, void *input, int input_len, void *output,
|
||||||
int output_len, int *len);
|
int output_len, int *len);
|
||||||
int sbc_encode(sbc_t *sbc, void *input, int input_len, void *output,
|
|
||||||
int output_len, int *written);
|
/* Encodes ONE input block into ONE output block */
|
||||||
int sbc_get_frame_length(sbc_t *sbc);
|
ssize_t sbc_encode(sbc_t *sbc,
|
||||||
int sbc_get_frame_duration(sbc_t *sbc);
|
const void *input, size_t input_len,
|
||||||
uint16_t sbc_get_codesize(sbc_t *sbc);
|
void *output, size_t output_len,
|
||||||
|
size_t *written);
|
||||||
|
|
||||||
|
/* Returns the output block size in bytes */
|
||||||
|
size_t sbc_get_frame_length(sbc_t *sbc);
|
||||||
|
|
||||||
|
/* Returns the time one input/output block takes to play in msec*/
|
||||||
|
unsigned sbc_get_frame_duration(sbc_t *sbc);
|
||||||
|
|
||||||
|
/* Returns the input block size in bytes */
|
||||||
|
size_t sbc_get_codesize(sbc_t *sbc);
|
||||||
|
|
||||||
const char *sbc_get_implementation_info(sbc_t *sbc);
|
const char *sbc_get_implementation_info(sbc_t *sbc);
|
||||||
void sbc_finish(sbc_t *sbc);
|
void sbc_finish(sbc_t *sbc);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue