mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-12-20 06:50:06 +01:00
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@30 fefdeb5f-60dc-0310-8127-8f9354f1896f
45 lines
1 KiB
C
45 lines
1 KiB
C
#ifndef foosamplehfoo
|
|
#define foosamplehfoo
|
|
|
|
#include <inttypes.h>
|
|
|
|
#include "memblock.h"
|
|
|
|
enum sample_format {
|
|
SAMPLE_U8,
|
|
SAMPLE_ALAW,
|
|
SAMPLE_ULAW,
|
|
SAMPLE_S16LE,
|
|
SAMPLE_S16BE,
|
|
SAMPLE_FLOAT32
|
|
};
|
|
|
|
#define SAMPLE_S16NE SAMPLE_S16LE
|
|
|
|
struct sample_spec {
|
|
enum sample_format format;
|
|
uint32_t rate;
|
|
uint8_t channels;
|
|
};
|
|
|
|
#define DEFAULT_SAMPLE_SPEC default_sample_spec
|
|
|
|
extern struct sample_spec default_sample_spec;
|
|
|
|
struct memblock *silence_memblock(struct memblock* b, struct sample_spec *spec);
|
|
void silence_memchunk(struct memchunk *c, struct sample_spec *spec);
|
|
void silence_memory(void *p, size_t length, struct sample_spec *spec);
|
|
|
|
struct mix_info {
|
|
struct memchunk chunk;
|
|
uint8_t volume;
|
|
void *userdata;
|
|
};
|
|
|
|
size_t mix_chunks(struct mix_info channels[], unsigned nchannels, void *data, size_t length, struct sample_spec *spec, uint8_t volume);
|
|
|
|
size_t bytes_per_second(struct sample_spec *spec);
|
|
size_t sample_size(struct sample_spec *spec);
|
|
uint32_t samples_usec(size_t length, struct sample_spec *spec);
|
|
|
|
#endif
|