mirror of
				https://github.com/RetroDECK/Duckstation.git
				synced 2025-04-10 19:15:14 +00:00 
			
		
		
		
	
		
			
	
	
		
			42 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | TODO: | ||
|  | - directsound: incomplete and somewhat broken | ||
|  | - osx: understand why AudioQueueGetCurrentTime can return negative mSampleTime | ||
|  | - test (and fix) sub-prefill size data playback | ||
|  | - report stream delay instead of position; leave position calculation to user | ||
|  | - capture support | ||
|  | - capture and output enumeration and configuration | ||
|  |   - also expose default hardware config to allow decisions on speaker layout | ||
|  | - prefill occurs at different times in each backend: | ||
|  |   - pulse prefills async off worker thread after init | ||
|  |   - coreaudio prefills during init | ||
|  |   - alsa prefills async after start | ||
|  | - expose configured prefill size; may differ from requested latency | ||
|  |   - solved by exposing stream delay | ||
|  | - xruns may occur in user callback but also in audio hardware | ||
|  |   may need to expose details of hardware xruns to user api | ||
|  | - document thread safety | ||
|  | - document which calls may block, and when effects take effect | ||
|  | - document what's permissible inside callbacks | ||
|  | - implement basic channel mapping for surround | ||
|  |   - vorbis has documented mapping based on channel count (if mapping type == | ||
|  |     0) -- http://xiph.org/vorbis/doc/Vorbis_I_spec.html#x1-800004.3.9 | ||
|  |     1 -> M | ||
|  |     2 -> L, R | ||
|  |     3 -> L, C, R | ||
|  |     4 -> L, R, RL, RR | ||
|  |     5 -> L, C, R, RL, RR | ||
|  |     6 -> L, C, R, RL, RR, LFE | ||
|  |     7 -> L, C, R, SL, SR, RC, LFE | ||
|  |     8 -> L, C, R, SL, SR, RL, RR, LFE | ||
|  |    >8 -> application defined | ||
|  |   - wave files with channel count only | ||
|  |     3 -> L, R, C | ||
|  |     4 -> L, R, RL, RR | ||
|  |     5 -> L, R, C, RL, RR | ||
|  |     6 -> L, R, C, LFE, RL, RR | ||
|  |     7 -> L, R, C, LFE, RC, SL, SR | ||
|  |     8 -> L, R, C, LFE, RL, RR, SL, SR | ||
|  |   - wave files with WAVE_FORMAT_EXTENSIBLE have explicitly mappings, can | ||
|  |     extract these | ||
|  | - implement configurable channel mapping |