From 32894736780ea63e5fea456de27650fc27ec57c6 Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Sat, 28 Sep 2013 18:01:12 +0200 Subject: audio/out: add sndio support Based on an earlier patch for mplayer by Alexandre Ratchov --- stream/ai_sndio.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 stream/ai_sndio.c (limited to 'stream/ai_sndio.c') diff --git a/stream/ai_sndio.c b/stream/ai_sndio.c new file mode 100644 index 0000000000..b486bb9210 --- /dev/null +++ b/stream/ai_sndio.c @@ -0,0 +1,49 @@ +#include +#include + +#include "config.h" + +#include +#include "audio_in.h" +#include "mpvcore/mp_msg.h" + +int ai_sndio_setup(audio_in_t *ai) +{ + struct sio_par par; + + sio_initpar(&par); + + par.bits = 16; + par.sig = 1; + par.le = 1; + par.rchan = ai->req_channels; + par.rate = ai->req_samplerate; + par.appbufsz = ai->req_samplerate; /* 1 sec */ + + if (!sio_setpar(ai->sndio.hdl, &par) || !sio_getpar(ai->sndio.hdl, &par)) { + mp_msg(MSGT_TV, MSGL_ERR, "could not configure sndio audio"); + return -1; + } + + ai->channels = par.rchan; + ai->samplerate = par.rate; + ai->samplesize = par.bits; + ai->bytes_per_sample = par.bps; + ai->blocksize = par.round * par.bps; + + return 0; +} + +int ai_sndio_init(audio_in_t *ai) +{ + int err; + + if ((ai->sndio.hdl = sio_open(ai->sndio.device, SIO_REC, 0)) == NULL) { + mp_msg(MSGT_TV, MSGL_ERR, "could not open sndio audio"); + return -1; + } + + err = ai_sndio_setup(ai); + + return err; +} -- cgit v1.2.3