Open Sound System
The Hitchhiker's Guide to OSS 4.1 Internals

Do you have problems with sound/audio application development? Don't panic! Click here for help!


Call table for low level audio drivers


Functionality of an audio device driver is defined by it's callback list. Audio core of OSS uses thes callback functions to open/close the device and to setup it for proper operation. The following callbacks are defined:

adrv_open Audio driver method for opening the device
adrv_close Audio driver method for closing the device
adrv_output_block Move a block of audio output data to the device
adrv_start_input Start input operation on the device (obsolete)
adrv_ioctl Audio driver ioctl method (optional)
adrv_prepare_for_input Audio driver method to prepare the device for recording
adrv_prepare_for_output Audio driver method to prepare the device for playback
adrv_halt_io Stop the audio device
adrv_local_qlen Return number of bytes in any on-device buffers
adrv_copy_user Not used.
adrv_halt_input Stop audio recording
adrv_halt_output Stop audio playback
adrv_trigger Audio driver method for triggering/untriggering record and/or play
adrv_set_rate Audio driver method for setting/getting the sampling rate
adrv_set_format Audio driver method for setting/getting the sample format
adrv_set_channels Audio driver method for setting/getting the number of channels
adrv_postprocess_write reserved for future use
adrv_preprocess_read reserved for future use
adrv_check_input Audio driver method for handling recording timeouts
adrv_check_output Audio driver method for handling playback timeouts
adrv_alloc_buffer Audio driver method for allocating the DMA buffer
adrv_free_buffer Audio driver method for freeing a DMA buffer
adrv_lock_buffer Reserved for future use.
adrv_dummy Not used.
adrv_get_buffer_pointer Audio driver method for getting the current DMA pointer
adrv_calibrate_speed Audio driver method for calibrating the sample rate.
adrv_sync_control Audio driver method for handling synchronisation groups
adrv_prepare_to_stop Reserved for future use
adrv_get_input_pointer Audio driver method for getting the current recording pointer
adrv_get_output_pointer Audio driver method for getting the current playback pointer
adrv_bind Reserved. Do not use in drivers.
adrv_setup_fragments Audio driver method for setting device specific fragment size

Under construction.

Referenced by

vmix_core/vmix_core.cSet the master sampling rate of given vmix instance.
audio/oss_audio_core.cAudio core functionality of OSS
include/ossddk.hSource file oss-current/kernel/framework/include/ossddk/ossddk.h
include/audio_core.hInternal definitions for the OS audio core
remux/oss_remux.cMulti channel playback support for devices with multiple stereo engines.
oss_hdaudio/oss_hdaudio.cThe High Definition Audio (HDA/Azalia) driver.
oss_cmpci/oss_cmpci.cDriver for CMEDIA CM8738 PCI audio controller.
oss_userdev/oss_userdev.cThis entry point is used to create new userdev instances and to redirect clients to them.
oss_userdev/oss_userdev_devicepair.cClient/server audio device pair for oss_userdev
oss_envy24ht/oss_envy24ht.cVIA ENVY24HT chipset driver.
oss_trident/oss_trident.cDriver for Trident 4DWAVE, ALI 5451 and SiS 7918 audio chips
oss_cs4281/oss_cs4281.cDriver for Crystal PCI audio controller.
oss_solo/oss_solo.cDriver for ESS Solo PCI audio controller.
oss_sbpci/oss_sbpci.cCreative/Ensoniq AudioPCI97 driver (ES1371/ES1373)
oss_madi/oss_madi.cDriver for RME MADI and AES32 audio interfaces
oss_ymf7xx/oss_ymf7xx.cDriver for Yamaha YMF7xx PCI audio controller.
oss_imux/oss_imux.cPseudo driver for sharing one input device between multiple apps.
oss_via823x/oss_via823x.cDriver for the VIA8233/8235 AC97 audio controller
oss_digi96/oss_digi96.cDriver for RME Digi96 family
oss_fmedia/oss_fmedia.cDriver for FM801 FM801 PCI audio controller.
oss_ich/oss_ich.cDriver for the Intel ICH AC97 audio controller
oss_sblive/oss_sblive.cDriver for Creative SB Live/Audigy/2/4. Audio, MIDI and mixer services.
oss_audiopci/oss_audiopci.cCreative/Ensoniq AudioPCI driver (ES1370 "CONCERT" ASIC and AKM4531 codec/mixer)
oss_audioloop/oss_audioloop.cOSS audio loopback (virtual) driver
oss_emu10k1x/oss_emu10k1x.cDriver for Creative emu10k1x audio controller
oss_cmi878x/oss_cmi878x.cDriver for C-Media CMI8788 PCI audio controller.
oss_audigyls/oss_audigyls.cDriver for Creative Audigy LS audio controller
oss_cs461x/oss_cs461x.cDriver for Crystal cs461x and cs461x PCI audio controllers
oss_geode/oss_geode.cDriver for the NS/Cyrix/AMD Geode AC97 audio controller
oss_via97/oss_via97.cDriver for the VIA VT82C686A AC97 audio controller
oss_ali5455/oss_ali5455.cDriver for the ALI 5455 (AC97) audio controller
oss_usb/ossusb_audio.cUSB audio streaming interface support
oss_atiaudio/oss_atiaudio.cDriver for the ATI IXP (AC97) audio controller
oss_sbxfi/oss_sbxfi.cDriver for Sound Blaster X-Fi (emu20k)
oss_audiocs/oss_audiocs.cDriver for the UltraSparc workstations using CS4231 codec for audio
oss_envy24/oss_envy24.cDriver for IC Ensemble ENVY24 based audio cards.
oss_envy24/envy24_direct.cDirect 24 bit multich driver for Envy24.

Copyright (C) 4Front Technologies, 2007. All rights reserved.
Back to index OSS web site