Created
August 7, 2015 22:50
-
-
Save andrewrk/7b7207f9c8efefbdbcbd to your computer and use it in GitHub Desktop.
one reason to use libsoundio over PortAudio
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
andy@nixos:~/Downloads/portaudio/trunk/src$ grep -RI '\bTODO\|FIXME\|XXX\|FEEDBACK\b' | |
common/pa_cpuload.c: /** FIXME @todo these coefficients shouldn't be hardwired see: http://www.portaudio.com/trac/ticket/113 */ | |
common/pa_util.h:/** Allocate size bytes, guaranteed to be aligned to a FIXME byte boundary */ | |
common/pa_converters.c: FIXME: should write an assert which checks that all of the | |
common/pa_converters.c: float samp = *src * const_1_div_32768_; /* FIXME: i'm concerned about this being asymetrical with float->int16 -rb */ | |
SConscript: # TODO: It looks like the prefix for soundcard.h depends on the platform | |
os/unix/pa_unix_util.c: /* XXX: Try sleeping the remaining time (contained in rem) if interrupted by a signal? */ | |
os/unix/pa_unix_util.c: pthread_cancel( threading->callbackThread ); /* XXX: Safe to call this if the thread has exited on its own? */ | |
os/unix/pa_unix_util.c: /* TODO: Make join time out */ | |
os/unix/pa_unix_util.c: /* XXX: Safe to call this if the thread has exited on its own? */ | |
os/win/pa_x86_plain_converters.c:TODO: | |
os/win/pa_x86_plain_converters.c: // FIXME: the dither amplitude here appears to be too small by 8 bits | |
hostapi/alsa/pa_linux_alsa.c: #include <dlfcn.h> /* For dlXXX functions */ | |
hostapi/alsa/pa_linux_alsa.c: /* XXX: Limit to sensible number (ALSA plugins accept a crazy amount of channels)? */ | |
hostapi/alsa/pa_linux_alsa.c: if( !primeBuffers ) /* XXX: Make sense? */ | |
hostapi/alsa/pa_linux_alsa.c: /* XXX: Ignore paPrimeOutputBuffersUsingStreamCallback untill buffer priming is fully supported in pa_process.c */ | |
hostapi/alsa/pa_linux_alsa.c: * TODO: Implement an algorithm to find the value closest to acceptance | |
hostapi/alsa/pa_linux_alsa.c: /* XXX: Use Bounded by default? Output tends to get stuttery with Fixed ... */ | |
hostapi/alsa/pa_linux_alsa.c: /* XXX: Why do we support this anyway? */ | |
hostapi/alsa/pa_linux_alsa.c: /* XXX: alsa_snd_pcm_drain tends to lock up, avoid it until we find out more */ | |
hostapi/alsa/pa_linux_alsa.c: /* TODO: what if we have both? does it really matter? */ | |
hostapi/alsa/pa_linux_alsa.c: /* TODO: if running in callback mode, this will mean | |
hostapi/alsa/pa_linux_alsa.c: /* XXX: Depend on preprocessor condition? */ | |
hostapi/alsa/pa_linux_alsa.c: /* TODO: Add macro for checking system calls */ | |
hostapi/alsa/pa_linux_alsa.c: /* XXX: Report xruns to the user? A situation is conceivable where the callback is never invoked due | |
hostapi/alsa/pa_linux_alsa.c: /* XXX: More descriptive error? */ | |
hostapi/alsa/pa_linux_alsa.c: /* XXX: More descriptive error? */ | |
hostapi/skeleton/pa_hostapi_skeleton.c: ( the following two checks are taken care of by PaUtil_InitializeBufferProcessor() FIXME - checks needed? ) | |
hostapi/oss/pa_unix_oss.c: ENSURE_( ioctl( component->fd, SNDCTL_DSP_CHANNELS, &chans ), paSampleFormatNotSupported ); /* XXX: Should be paInvalidChannelCount? */ | |
hostapi/oss/pa_unix_oss.c: /* TODO: Handle condition where number of frames read doesn't equal number of frames requested */ | |
hostapi/oss/pa_unix_oss.c: /* TODO: Handle condition where number of frames written doesn't equal number of frames requested */ | |
hostapi/oss/pa_unix_oss.c: PaStreamCallbackTimeInfo timeInfo = {0,0,0}; /* TODO: IMPLEMENT ME */ | |
hostapi/oss/pa_unix_oss.c: /* TODO: handle bytesWritten != bytesRequested (slippage?) */ | |
hostapi/oss/pa_unix_oss.c:/* TODO: Compute number of allocated bytes somewhere else, can we use ODELAY with capture */ | |
hostapi/wmme/pa_win_wmme.c: /** @todo FIXME/REVIEW: can't return host error info from an asyncronous thread. see http://www.portaudio.com/trac/ticket/143 */ | |
hostapi/wmme/pa_win_wmme.c: input buffer overflow. FIXME: these buffers should | |
hostapi/wmme/pa_win_wmme.c: /** @todo FIXME: should probably reset the output device immediately once the callback returns paAbort | |
hostapi/wmme/pa_win_wmme.c: /** @todo FIXME: implement recovery as best we can | |
hostapi/jack/pa_jack.c: /* <FIXME> */ | |
hostapi/jack/pa_jack.c: /* </FIXME> */ | |
hostapi/jack/pa_jack.c: /* XXX: Maybe not the cleanest way of going about this? */ | |
hostapi/jack/pa_jack.c: /* XXX: Best enclose in loop, in case of spurious wakeups? */ | |
hostapi/jack/pa_jack.c: /*UNLESS( !(framesPerBuffer & (framesPerBuffer - 1)), paBufferTooBig );*/ /* TODO: Add descriptive error code? */ | |
hostapi/jack/pa_jack.c: /* setup blocking API data structures (FIXME: can fail) */ | |
hostapi/jack/pa_jack.c: * TODO: Robust allocation of new port names */ | |
hostapi/jack/pa_jack.c: /* XXX: Any way to tell which of these occurred? */ | |
hostapi/jack/pa_jack.c: if( !stream->hostApi->jackIsDown ) /* XXX: Well? */ | |
hostapi/jack/pa_jack.c: /* A: Is this relevant?? --> TODO: what if we're recording-only? */ | |
hostapi/dsound/pa_win_ds.c:/* FIXME: should convert hr to a string */ | |
hostapi/dsound/pa_win_ds.c:/* FIXME - move all below to PaUtilStreamRepresentation */ | |
hostapi/dsound/pa_win_ds.c: // FIXME: The example code I have on the net creates a hidden window that | |
hostapi/dsound/pa_win_ds.c: // FIXME: what happens if IDirectSoundCaptureBuffer_GetCurrentPosition fails? | |
hostapi/dsound/pa_win_ds.c: /* FIXME QueryOutputSpace should not adjust underflow count as a side effect. | |
hostapi/dsound/pa_win_ds.c: /* FIXME: an underflow could happen here */ | |
hostapi/dsound/pa_win_ds.c: /* FIXME: an overflow could happen here */ | |
hostapi/dsound/pa_win_ds.c: /* FIXME implement handling of paComplete and paAbort if possible | |
hostapi/dsound/pa_win_ds.c: if( stream->pDirectSoundInputBuffer != NULL ) // FIXME: not sure this check is necessary | |
hostapi/dsound/pa_win_ds.c: if( stream->pDirectSoundOutputBuffer != NULL ) // FIXME: not sure this needs to be checked here | |
hostapi/dsound/pa_win_ds.c: // FIXME: what happens if IDirectSoundBuffer_Stop returns an error? | |
hostapi/dsound/pa_win_ds.c: IDirectSoundBuffer_Stop( stream->pDirectSoundPrimaryBuffer ); /* FIXME we never started the primary buffer so I'm not sure we need to stop it */ | |
hostapi/dsound/pa_win_ds.c: // FIXME: what happens if IDirectSoundCaptureBuffer_Stop returns an error? | |
hostapi/wasapi/pa_win_wasapi.c: //so something must be _really_ wrong with this device, TODO handle this better. We kind of need GetMixFormat | |
hostapi/wasapi/mingw-include/propsys.h:// punkItem is a shell item created with an SHCreateItemXXX API | |
hostapi/wasapi/mingw-include/propsys.h:// punkItem is a shell item created with an SHCreateItemXXX API | |
hostapi/wasapi/mingw-include/FunctionDiscoveryKeys_devpkey.h:// These PKEYs correspond to the old setupapi SPDRP_XXX properties | |
hostapi/wasapi/mingw-include/FunctionDiscoveryKeys_devpkey.h:// These PKEYs correspond to the old setupapi SPCRP_XXX properties | |
hostapi/coreaudio/pa_mac_core_internal.h: /* FIXME: instead of volatile, these should be properly memory barriered */ | |
hostapi/coreaudio/pa_mac_core_utilities.c: /*FIXME: still need to handle possible ComponentResult values.*/ | |
hostapi/coreaudio/pa_mac_core_utilities.c: * FEEDBACK: too liberal/conservative/another way? | |
hostapi/coreaudio/pa_mac_core.c:/* FIXME: not all error conditions call PaUtil_SetLastHostErrorInfo() | |
hostapi/coreaudio/pa_mac_core.c: TODO: Double check that everything is handled by alloc group | |
hostapi/coreaudio/pa_mac_core.c: /* FEEDBACK */ | |
hostapi/coreaudio/pa_mac_core.c: /* FEEDBACK: is this more serious? should we assert? */ | |
hostapi/coreaudio/pa_mac_core.c: /* FIXME: I think we need to monitor stream and change the converter if the incoming format changes. */ | |
hostapi/coreaudio/pa_mac_core.c: // FIXME: really we should be searching for a multiple of requestedFramesPerBuffer | |
hostapi/coreaudio/pa_mac_core.c:/* FEEDBACK: there is a lot of redundant code here because of how all the cases differ. This makes it hard to maintain, so if there are suggestinos for cleaning it up, I'm all ears. */ | |
hostapi/coreaudio/pa_mac_core.c: /* FIXME: not sure what to do below if the host timestamps aren't valid (kAudioTimeStampHostTimeValid isn't set) | |
hostapi/coreaudio/pa_mac_core.c: /* FIXME: take the ring buffer latency into account */ | |
hostapi/coreaudio/pa_mac_core.c: stream->xrunFlags = 0; //FIXME: this flag also gets set outside by a callback, which calls the xrunCallback function. It should be in the same thread as the main audio callback, but the apple docs just use the word "usually" so it may be possible to loose an xrun notification, if that callback happens here. | |
hostapi/coreaudio/pa_mac_core.c: /* FEEDBACK: I'm not sure what to do when this call fails. There's nothing in the PA API to | |
hostapi/coreaudio/pa_mac_core.c: stream->xrunFlags = 0; /* FEEDBACK: we only send flags to Buf Proc once */ | |
hostapi/coreaudio/pa_mac_core.c: /* FIXME: looping here may not actually be necessary, but it was something I tried in testing. */ | |
hostapi/coreaudio/pa_mac_core.c: /* FEEDBACK: I'm not sure what to do when this call fails */ | |
hostapi/coreaudio/pa_mac_core.c: /*TODO: is there more that needs to be done on error | |
hostapi/coreaudio/pa_mac_core.c: /*FIXME: maybe want to do this on close/abort for faster start? */ | |
hostapi/coreaudio/pa_mac_core_old.c: // FIXME: this allocation should be part of the allocations group | |
hostapi/coreaudio/pa_mac_core_old.c: // TODO: this should be nicer than abort | |
hostapi/asio/pa_asio.cpp: /* FIXME: assume all channels use the same type for now | |
hostapi/asio/pa_asio.cpp: /* FIXME: assume all channels use the same type for now | |
hostapi/asio/pa_asio.cpp: /*FIXME: commented the next line out |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment