12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- 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 convertion is done when needed during sample format convertion
- 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
- Its also trivial to add special converters for common cases
- If only sample format and or packed/planar convertion is needed it
- is performed from input to output directly in a single pass with no intermediates.
|