mirror of
				https://github.com/nyanmisaka/ffmpeg-rockchip.git
				synced 2025-10-30 12:06:40 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			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 its not needed.
 | |
| Either Resampling and Rematrixing can be performed first depending on which
 | |
| way its 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.
 | 
