Commit graph

90 commits

Author SHA1 Message Date
cinap_lenrek 859d5c9146 audio/flacdec: add eof handler avoiding endless spinning on broken files (thanks deuteron) 2017-11-16 14:15:00 +01:00
cinap_lenrek 7516e85813 audio/flacdec: continue after decode error (thanks deuteron) 2017-02-01 10:38:19 +01:00
cinap_lenrek 94ba3db591 audio/flacdec: exit on decode error, print error message 2016-06-20 23:09:40 +02:00
ftrvxmtrx fb1551e997 libvorbis: update to 1.3.5 2016-03-10 22:43:00 +01:00
ftrvxmtrx ba2c2fcab7 libFLAC/mkfile: -DFLAC__NO_ASM 2016-03-05 11:00:00 +01:00
ftrvxmtrx 2d2ffac86f libFLAC: update to 1.3.1 2016-03-05 10:32:47 +01:00
cinap_lenrek 39c9f1abbb libFLAC: fix compiler warnings by properly declaring void function arguments 2015-07-13 02:56:51 +02:00
cinap_lenrek bc97fa79b1 audio/flacdec: fix pcmconv pipeline race (thanks mischief and henesy) 2014-12-15 07:26:03 +01:00
cinap_lenrek ce80c5029e oggdec: recognize "begin of stream" packets and restart decoding 2014-09-16 20:25:01 +02:00
cinap_lenrek 1641d9908b audio/oggdec: wait for pcmconv child process to exit
we have to wait for the pcmconv process to exit before
exiting yourselfs because otherwise pcmconv could
keep /dev/audio open and prevent further reopens for
a short period of time.
2014-03-26 18:39:58 +01:00
cinap_lenrek f7ab9fb52a pcmconv: revert previous change, fix dither clipping
previous change had forgot how dithering works... m(

we *really* add a random signal when *reducing* the number
of bits. just make sure we do not overflow like in
mixin().
2014-03-03 14:45:14 +01:00
cinap_lenrek 7fc7802358 pcmconv: fix dither clipping
the check in dither() was inverted. we should only
add noise when the output bit count is greater
than input bit count (samples shifted up) to
fill the lower zero bits produced by the shift.
2014-03-03 09:00:59 +01:00
cinap_lenrek f029ea1694 have to use NULL instead of nil for ape programs... 2014-02-05 19:52:09 +01:00
cinap_lenrek c76243e7e5 fix wrong type for terminating nil argument for execl()
we have to use (void*)0 instead of (int)0 otherwise the
upper bits are uninitialized on amd64.
2014-02-05 19:25:24 +01:00
cinap_lenrek fc88896fc1 mixfs: make mixbuffer addition atomic
serialize mixing with spinlock to make the addition
on the mixbuffer samples atomic.
2014-01-10 14:51:29 +01:00
cinap_lenrek 7d9ae4883d audio/mixfs: implement Tstat to obtain buffer size, better underrun handling 2013-12-27 20:39:56 +01:00
cinap_lenrek b9bec46b98 add audio/mixfs to allow simultanious playback streams over a single /dev/audio 2013-12-26 21:04:25 +01:00
cinap_lenrek a60001871e mp3dec: fix volume for mp3dec
the libmad samples need to be scaled properly. the
previous assumption was that it is 32 bits, but it
really is MAD_F_FRACTBITS + sign bit and rest used
for overflow.

thanks eekee!
2013-11-06 22:18:36 +01:00
cinap_lenrek b4c81e2cdc audio/pcmconv: fix mistake 2012-12-17 09:53:36 +01:00
cinap_lenrek 1fdd311f2f audio/pcmconv: implement stereo -> mono conversion (mixing) 2012-12-14 17:16:50 +01:00
cinap_lenrek 776f3726dd audio/pcmconv: check bits for same format check not just framesz 2012-12-14 09:43:00 +01:00
cinap_lenrek 5ceb834f0e audio: replace µlawdec, add big endian and µlaw audio formats to pcmconv, µlaw in wav support
to support µ-law audio embedded in wav and big endian pcm
in sun audio files the µ-law and a-law and big endian integer
decoding was added to pcmconv. sundec now parses the sun
audio header supporting stereo now.
2012-12-14 04:38:45 +01:00
cinap_lenrek d7b7723c96 audio/pcmconv: dithering 2012-12-13 09:39:15 +01:00
cinap_lenrek a8b02eb198 audio/pcmconv: cleanup 2012-12-12 19:04:57 +01:00
cinap_lenrek 985df234d6 audio/pcmconv: implement filter coefficient interpolation, cleanup 2012-12-12 15:46:12 +01:00
cinap_lenrek 2823498ac3 audio/pcmconv: mistake for double to int conversion (thanks ftrvxmtrx) 2012-12-12 12:20:54 +01:00
cinap_lenrek bedfd8f361 audio/pcmconv: check number of input channels 2012-12-11 21:02:14 +01:00
cinap_lenrek 45a5074b10 audio/pcmconv: disable floating point exceptions for data conversion
for the float to integer conversion, disable
exceptions. also clamp the values.

--
cinap
2012-12-11 20:42:33 +01:00
cinap_lenrek 0903d01134 audio: fix broken write() size for mp3dec/oggdec/flacdec
they accidently wrote additional bytes in the stream. this
confused the new audio/pcmconv (now actually checking
if it got complete samples).
2012-12-11 19:55:02 +01:00
cinap_lenrek 3d1f5d4812 audio/pcmconv: implement band limited audio resampler using fir filter
implement the resampler described in the
"Digital Audio Resampling Home Page" paper:

https://ccrma.stanford.edu/~jos/resample/
2012-12-11 16:37:39 +01:00
cinap_lenrek 7148847ff0 µlaw audio support (from erik quanstro) 2012-12-08 09:18:44 +01:00
cinap_lenrek 0d84343fbc audio: add audio/pcmconv program
instead of duplicating resampling and pcm format
conversion code, put it in the new pcmconv program.
2012-12-08 08:26:50 +01:00
cinap_lenrek 4f33c88a51 import updated compilers from sources 2012-07-30 19:11:16 +02:00
cinap_lenrek 388cd56d69 wave pcm support 2012-03-08 07:25:14 +01:00
cinap_lenrek a57ad59bf0 mp3dec: skip ID3v2 tags 2012-02-14 15:42:58 +01:00
cinap_lenrek 784d811c3a flacdec: remove debug 2012-02-11 09:08:35 +01:00
cinap_lenrek eb4ade60be FLAC audio support 2012-02-11 08:33:22 +01:00
cinap_lenrek 1a450db960 oggdec: resample to target frequency 2012-02-06 03:34:21 +01:00
cinap_lenrek b70a7fc963 mp3dec: resample to target frequency, play: guess mp3 from filename 2012-01-26 01:43:17 +01:00
cinap_lenrek 5524d76075 move mp3 stuff to /sys/src/cmd/audio, add ogg vorbis, add play 2012-01-22 23:30:34 +01:00