From 49867bd432352d19172ab26cf873bd5651e69e25 Mon Sep 17 00:00:00 2001 From: ben Date: Mon, 31 Jul 2006 17:39:17 +0000 Subject: introduce new 'stream' directory for all stream layer related components and split them from libmpdemux git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19277 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/audio_in.h | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 stream/audio_in.h (limited to 'stream/audio_in.h') diff --git a/stream/audio_in.h b/stream/audio_in.h new file mode 100644 index 0000000000..c4b3ea91a7 --- /dev/null +++ b/stream/audio_in.h @@ -0,0 +1,75 @@ +#ifndef _audio_in_h +#define _audio_in_h + +#define AUDIO_IN_ALSA 1 +#define AUDIO_IN_OSS 2 + +#include "config.h" + +#if defined(HAVE_ALSA9) || defined(HAVE_ALSA1X) +#include + +typedef struct { + char *device; + + snd_pcm_t *handle; + snd_output_t *log; + int buffer_time, period_time, chunk_size; + size_t bits_per_sample, bits_per_frame; +} ai_alsa_t; +#endif + +#ifdef USE_OSS_AUDIO +typedef struct { + char *device; + + int audio_fd; +} ai_oss_t; +#endif + +typedef struct +{ + int type; + int setup; + + /* requested values */ + int req_channels; + int req_samplerate; + + /* real values read-only */ + int channels; + int samplerate; + int blocksize; + int bytes_per_sample; + int samplesize; + +#if defined(HAVE_ALSA9) || defined(HAVE_ALSA1X) + ai_alsa_t alsa; +#endif +#ifdef USE_OSS_AUDIO + ai_oss_t oss; +#endif +} audio_in_t; + +int audio_in_init(audio_in_t *ai, int type); +int audio_in_setup(audio_in_t *ai); +int audio_in_set_device(audio_in_t *ai, char *device); +int audio_in_set_samplerate(audio_in_t *ai, int rate); +int audio_in_set_channels(audio_in_t *ai, int channels); +int audio_in_uninit(audio_in_t *ai); +int audio_in_start_capture(audio_in_t *ai); +int audio_in_read_chunk(audio_in_t *ai, unsigned char *buffer); + +#if defined(HAVE_ALSA9) || defined(HAVE_ALSA1X) +int ai_alsa_setup(audio_in_t *ai); +int ai_alsa_init(audio_in_t *ai); +int ai_alsa_xrun(audio_in_t *ai); +#endif + +#ifdef USE_OSS_AUDIO +int ai_oss_set_samplerate(audio_in_t *ai); +int ai_oss_set_channels(audio_in_t *ai); +int ai_oss_init(audio_in_t *ai); +#endif + +#endif /* _audio_in_h */ -- cgit v1.2.3