Skip to content

Instantly share code, notes, and snippets.

@andrewrk
Created August 7, 2015 22:50
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andrewrk/7b7207f9c8efefbdbcbd to your computer and use it in GitHub Desktop.
Save andrewrk/7b7207f9c8efefbdbcbd to your computer and use it in GitHub Desktop.
one reason to use libsoundio over PortAudio
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