47 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   |     The official guide to swresample for confused developers. | ||
|  |    ========================================================= | ||
|  | 
 | ||
|  | Current (simplified) Architecture: | ||
|  | --------------------------------- | ||
|  |                         Input | ||
|  |                           v | ||
|  |        __________________/|\___________ | ||
|  |       /                   |            \ | ||
|  |      /    input sample format convert   v | ||
|  |     /                     | ___________/ | ||
|  |     |                     |/ | ||
|  |     |                     v | ||
|  |     |         ___________/|\___________              _____________ | ||
|  |     |        /            |            \            |             | | ||
|  |     |   Rematrix          |          resample <---->|   Buffers   | | ||
|  |     |        \___________ | ___________/            |_____________| | ||
|  |     v                    \|/ | ||
|  | Special Converter         v | ||
|  |     v         ___________/|\___________              _____________ | ||
|  |     |        /            |            \            |             | | ||
|  |     |   Rematrix          |          resample <---->|   Buffers   | | ||
|  |     |        \___________ | ___________/            |_____________| | ||
|  |     |                    \|/ | ||
|  |     |                     v | ||
|  |     |                     |\___________ | ||
|  |     \                     |            \ | ||
|  |      \   output sample format convert   v | ||
|  |       \_________________  | ___________/ | ||
|  |                          \|/ | ||
|  |                           v | ||
|  |                         Output | ||
|  | 
 | ||
|  | Planar/Packed conversion is done when needed during sample format conversion. | ||
|  | Every step can be skipped without memcpy when it is not needed. | ||
|  | Either Resampling and Rematrixing can be performed first depending on which | ||
|  | way it is faster. | ||
|  | The Buffers are needed for resampling due to resamplng being a process that | ||
|  | requires future and past data, it thus also introduces inevitably a delay when | ||
|  | used. | ||
|  | Internally 32bit float and 16bit int is supported currently, other formats can | ||
|  | easily be added. | ||
|  | Externally all sample formats in packed and planar configuration are supported | ||
|  | It's also trivial to add special converters for common cases. | ||
|  | If only sample format and/or packed/planar conversion is needed, it | ||
|  | is performed from input to output directly in a single pass with no intermediates. |