annotate ffmpeg/doc/swresample.txt @ 13:844d341cf643 tip

Back up before ISMIR
author Yading Song <yading.song@eecs.qmul.ac.uk>
date Thu, 31 Oct 2013 13:17:06 +0000
parents 6840f77b83aa
children
rev   line source
yading@10 1 The official guide to swresample for confused developers.
yading@10 2 =========================================================
yading@10 3
yading@10 4 Current (simplified) Architecture:
yading@10 5 ---------------------------------
yading@10 6 Input
yading@10 7 v
yading@10 8 __________________/|\___________
yading@10 9 / | \
yading@10 10 / input sample format convert v
yading@10 11 / | ___________/
yading@10 12 | |/
yading@10 13 | v
yading@10 14 | ___________/|\___________ _____________
yading@10 15 | / | \ | |
yading@10 16 | Rematrix | resample <---->| Buffers |
yading@10 17 | \___________ | ___________/ |_____________|
yading@10 18 v \|/
yading@10 19 Special Converter v
yading@10 20 v ___________/|\___________ _____________
yading@10 21 | / | \ | |
yading@10 22 | Rematrix | resample <---->| Buffers |
yading@10 23 | \___________ | ___________/ |_____________|
yading@10 24 | \|/
yading@10 25 | v
yading@10 26 | |\___________
yading@10 27 \ | \
yading@10 28 \ output sample format convert v
yading@10 29 \_________________ | ___________/
yading@10 30 \|/
yading@10 31 v
yading@10 32 Output
yading@10 33
yading@10 34 Planar/Packed conversion is done when needed during sample format conversion.
yading@10 35 Every step can be skipped without memcpy when it is not needed.
yading@10 36 Either Resampling and Rematrixing can be performed first depending on which
yading@10 37 way it is faster.
yading@10 38 The Buffers are needed for resampling due to resamplng being a process that
yading@10 39 requires future and past data, it thus also introduces inevitably a delay when
yading@10 40 used.
yading@10 41 Internally 32bit float and 16bit int is supported currently, other formats can
yading@10 42 easily be added.
yading@10 43 Externally all sample formats in packed and planar configuration are supported
yading@10 44 It's also trivial to add special converters for common cases.
yading@10 45 If only sample format and/or packed/planar conversion is needed, it
yading@10 46 is performed from input to output directly in a single pass with no intermediates.