aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-03-17 03:20:16 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-03-18 04:13:21 +0100
commit3dc25c3ab260571323c363fef09e8422182082c2 (patch)
tree4b7bcd7ed9a9590f9505d7ed4b0603a911c4d288
parent76d1c07c890a955a06e2c2cdf0de5ebe6daa352d (diff)
downloadffmpeg-3dc25c3ab260571323c363fef09e8422182082c2.tar.gz
avutil/frame: document alignment and padding requirements
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavutil/frame.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/libavutil/frame.h b/libavutil/frame.h
index 8fc5814aff..b5d4694b92 100644
--- a/libavutil/frame.h
+++ b/libavutil/frame.h
@@ -78,6 +78,11 @@ typedef struct AVFrame {
/**
* pointer to the picture/channel planes.
* This might be different from the first allocated byte
+ *
+ * Some decoders access areas outside 0,0 - width,height, please
+ * see avcodec_align_dimensions2(). Some filters and swscale can read
+ * up to 16 bytes beyond the planes, if these filters are to be used,
+ * then 16 extra bytes must be allocated.
*/
uint8_t *data[AV_NUM_DATA_POINTERS];
@@ -87,6 +92,11 @@ typedef struct AVFrame {
*
* For audio, only linesize[0] may be set. For planar audio, each channel
* plane must be the same size.
+ *
+ * For video the linesizes should be multiplies of the CPUs alignment
+ * preferrance, this is 16 or 32 for modern desktop CPUs.
+ * Some code requires such alignment other code can be slower without
+ * correct alignment, for yet other it makes no difference.
*/
int linesize[AV_NUM_DATA_POINTERS];