Commit graph

92 commits

Author SHA1 Message Date
Takashi Iwai
1889920a43 Fix segfault with downsampling
Fix segfault in the initialization for downsampling.
2005-03-31 15:24:40 +00:00
Takashi Iwai
c5c9b2c8bb Fix noises on exapnd
Fixes noise on rate expansion (bug #1018).
2005-03-29 13:52:41 +00:00
Takashi Iwai
e64cab565e Fix noises in rate exapnsion
Fixed noises in rate exapnsion.
2005-03-24 20:28:56 +00:00
Jaroslav Kysela
836987aa99 improved stream linking and plugin code cleanups
- added link/unlink/link_fd fast_ops callbacks
- moved code from snd_pcm_link to pcm_hw.c
- moved "empty" routines pointing to slave to pcm_generic.c
- introduced snd_pcm_generic_t
2005-01-20 15:07:51 +00:00
Takashi Iwai
a920ca39db Performance optimization
The performance of rate conversion is optimized.
- with S16 format, no format conversion is done
- linear polation of expansion uses 16bit resolution
2005-01-04 13:57:51 +00:00
Takashi Iwai
2b54677fdb Change error message handling
Change the handling of non-fatal errors.  Now the non-fatal error
messages are not shown in stderr and no assert() as default.  The
behavior can be changed with LIBASOUND_DEBUG environment variable.
2004-12-21 14:11:00 +00:00
Andreas Fenkart
0ed778404d Fixes variable shadow problem in capture direction
My gnomemeeting hung when accessing the microphone.
The problem was that the rate variable was not initialized when jumping to
the __partial label.
Signed-off-by: Andreas Fenkart <afenkart@gmx.ch>
2004-11-22 06:40:10 +00:00
Markus Grabner
3a8bfd43d7 Fix the downsampling noise problem
Description: The patch replaces the nearest neighbor downsampling method
in the sample rate conversion plugin by linear interpolation of the closest
two samples, thus significantly reducing the resampling noise.

Signed-off-by: Markus Grabner <grabner@icg.tu-graz.ac.at>
2004-09-16 10:02:12 +00:00
James Courtier-Dutton
6170a88309 Signed-off-by: James Courtier-Dutton <James@superbug.demon.co.uk>
This patch fixes a number of different bugs in pcm_rate.c.
1) Resampling now works for rate 192000 -> 8000.
2) zero samples are not accidentally inserted into the stream any more.
3) Corrects period size calculations.
4) Prevents avail_min and xfer_align being less than 1.
2004-08-09 06:31:41 +00:00
Clemens Ladisch
ef11ba77ed document all PCM plugin parameters 2004-04-26 07:40:12 +00:00
Jaroslav Kysela
033fb96b00 - fixed problem with start_threshold
- fixed rounding problem for period_size (mmap_commit assert invoked)
2004-04-03 08:27:58 +00:00
Jaroslav Kysela
569130159d Fixed wrong copy problem in capture 2004-03-23 14:37:34 +00:00
Jaroslav Kysela
7c201b510a - added poll_ask callback to mangle avail_min (rate_plugin as example)
- added mangling of avail_min to rate_plugin
- added poll_fd_count variable
- FIXME: move poll_revents callback to fast_ops
2004-03-17 11:48:14 +00:00
Jaroslav Kysela
de88f0e586 Fixed stupid bug in rate plugin: appl|hw_offset variables were not updated 2004-02-08 14:18:06 +00:00
Jaroslav Kysela
37728639ae A try to fix one rouding problem in refine 2004-02-07 15:01:31 +00:00
Jaroslav Kysela
77a9f73984 Fixed serious bug in the rate plugin 2004-02-04 18:29:41 +00:00
Jaroslav Kysela
4a4cc2a301 The rate plugin was redesigned. Now only whole periods are resampled to
avoid rounding problems and to allow using other "block" algorithms.
2004-02-04 09:21:11 +00:00
Jaroslav Kysela
8bda6292d8 Added missing break; 2004-01-27 13:08:16 +00:00
Jaroslav Kysela
0f88788f8b Preparation for more rate conversion types 2004-01-24 16:23:11 +00:00
Takashi Iwai
1adfe9fd0d corrections in the last changes.
samples are exapnded properly in linear interpolation now.
2003-09-10 11:02:57 +00:00
Jaroslav Kysela
668a300229 A try to fix the expand function from Takashi 2003-09-09 19:04:22 +00:00
Takashi Iwai
7716fd1e3d fixes by Art Haas <ahaas@airmail.net>:
rewritten with C99 struct initialization style.
2003-07-25 17:02:00 +00:00
Jaroslav Kysela
157107491c Added snd_pcm_type_name()
Fixed rate conversion plugin (SIGSEGV) - rounding problem
2003-03-08 16:35:18 +00:00
Jaroslav Kysela
af89cefd99 More changes for dmix plugin:
- added poll_events to main pcm structure
  - added poll_revents callback to pcm->ops structure
  - fixed snd_pcm_wait() - call revents function and enhanced
    error code reporting
DMIX plugin:
  - more complete code (works at least for one instance)
  - still no "mix" code (it's silent)
2003-02-11 18:14:43 +00:00
Jaroslav Kysela
b9343e0834 - unified snd_pcm_hw_params_* functions
- added backward compatibility for older non-compatible functions
- added --with-compat-rc3 to configure script to build library
  backwards compatible with 0.9.0rc3
- added symbol versioning like libc.so.6
  - ALSA_0.9      - alsa base
  - ALSA_0.9.0rc4 - first set of new functions (snd_pcm_hw_params_*)
2002-09-17 12:33:05 +00:00
Jaroslav Kysela
677b0f60d6 Added snd_pcm_hw_params_get_min_align; changed get_format, get_subformat and get_access function to return not mixed error and return value 2002-09-09 19:47:50 +00:00
Jaroslav Kysela
c941c548f8 Moved ring buffer pointers and added a mechanism to transfer them via shm 2002-04-23 15:51:29 +00:00
Jaroslav Kysela
b559c97833 Linear interpolation fix by Takashi 2002-03-12 19:22:43 +00:00
Jaroslav Kysela
76712fb46b Cleanups in expand() 2002-03-11 18:56:34 +00:00
Jaroslav Kysela
22bd1c328a Added proper initialization for expand, added corrections for sw_params (checks for period_size and buffer_size) 2002-03-11 14:59:11 +00:00
Takashi Iwai
0d4df92f80 fixed xrun problems with rate conversion. 2002-03-11 12:49:57 +00:00
Jaroslav Kysela
e128bf856e Cleaned the mmap_commit implementations in plugins.
Added undo callbacks for snd_pcm_plugin based plugins.
  - helpers when mmap_commit proceed only a partial transfer
Fixes to avail_update implementation in pcm_hw.c.
2002-02-21 15:01:34 +00:00
Jaroslav Kysela
5dc9be757c Fixed snd_pcm_rate_client_frames when frames == 0 2002-02-01 20:11:05 +00:00
Jaroslav Kysela
2cc79806a2 Added description of shm, null and rate plugins 2002-01-22 14:27:25 +00:00
Jaroslav Kysela
8c1887d7af Moved some prototypes from src/pcm/pcm_plugin.h to include/pcm_plugin.h.
Merged src/pcm/atomic.h to include/iatomic.h.
Added initial description of hw and hooks plugins.
2002-01-12 10:52:42 +00:00
Jaroslav Kysela
3e3df2d32b Updated GNU GPL license (address).
Changed GNU LGPL licence from 2.0 to 2.1.
2001-12-30 09:22:54 +00:00
Jaroslav Kysela
c39882f602 Configuration:
- changed snd_config_get_id function to follow semantic of other get functions
  - added snd_config_test_id
  - added runtime pointer type (not persistent)
    - added snd_config_make_pointer, snd_config_set_pointer, snd_config_get_pointer
  - added type/contents checking for callback functions
    - changed 'void *private_data' to 'snd_config_t *private_data'
  - renamed card_strtype functions to card_driver
Control:
  - fixed passing parameters to snd_ctl_async
Async handlers:
  - added public snd_async_handler_get_signo function
Documentation:
  - moved all documentation to source files
2001-11-19 08:14:21 +00:00
Jaroslav Kysela
27472b56a6 Changes for static build. 2001-10-24 14:14:11 +00:00
Jaroslav Kysela
b45c08611c Added symbol versioning for dlsym-callbacks.
Removed snd_config_refer_load from confmisc.c and pcm.c.
2001-08-15 12:12:16 +00:00
Abramo Bagnara
fcd164e622 Permit to PCM plug configuration to specify unchanged parameters. Added support for RT signals to async interface. Added ops for PCM mix. 2001-07-07 15:53:20 +00:00
Abramo Bagnara
157f47aedd New async notification API. Removed obsolete surround. Cleaning 2001-06-20 20:52:12 +00:00
Jaroslav Kysela
1e0c53a11c Added context handling for snd_config_expand.
PCM slave configuration is now dynamic.
2001-06-16 22:03:23 +00:00
Jaroslav Kysela
977a9a33f0 * Cleaned the alsa.conf syntax:
- added pcm.front, pcm.rear, pcm.center_lfe blocks
* Added configuration for EMU10K1 (it's fully working one!!!)
* snd_config_redirect_load->snd_config_refer_load rename
* snd_config_search_alias code change (works also with pairs base.key)
* cleanups in the evaluate function (the function prototype has been changed)
2001-06-15 08:47:59 +00:00
Jaroslav Kysela
bf780a25a5 Added argument handling for the slave PCMs.
The configuration root (snd_config) can be specified for the internal routines.
The pcm_hooks code was recoded (independent code moved to control/setup.c).
Improved the pcm_multi plugin (added master configuration).
2001-06-11 13:35:48 +00:00
Abramo Bagnara
7f651b3071 Added hooked PCM type (one sample hook implementation will follow). Some cleaning. 2001-06-04 18:04:18 +00:00
Abramo Bagnara
6cb24e0186 Added embedded/anonymous slave PCM definition 2001-05-14 15:44:37 +00:00
Abramo Bagnara
5b50ec848a Lot of cleanings with the help of gcc3 2001-03-29 17:50:28 +00:00
Abramo Bagnara
ddc9a186cf Completed PCM documentation 2001-03-24 16:14:44 +00:00
Abramo Bagnara
82fcfe1ab5 pcm_share cleaning 2001-03-21 16:31:31 +00:00
Abramo Bagnara
a275d66356 Improved .asoundrc changes 2001-03-17 16:34:43 +00:00