From 418693bdc5edad72b0d055f741931612d797eb05 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Fri, 21 Dec 2012 21:50:50 +0100 Subject: lavc: rewrite and extend AVFrame doxy --- libavcodec/avcodec.h | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index d12c72b74c..d9a2dc2ce4 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -972,11 +972,19 @@ enum AVSideDataParamChangeFlags { */ /** - * Audio Video Frame. - * New fields can be added to the end of AVFRAME with minor version - * bumps. Removal, reordering and changes to existing fields require - * a major version bump. - * sizeof(AVFrame) must not be used outside libav*. + * This structure describes decoded (raw) audio or video data. + * + * AVFrame must be allocated using avcodec_alloc_frame() and freed with + * avcodec_free_frame(). Note that this allocates only the AVFrame itself. The + * buffers for the data must be managed through other means. + * + * AVFrame is typically allocated once and then reused multiple times to hold + * different data (e.g. a single AVFrame to hold frames received from a + * decoder). In such a case, avcodec_get_frame_defaults() should be used to + * reset the frame to its original clean state before it is reused again. + * + * sizeof(AVFrame) is not a part of the public ABI, so new fields may be added + * to the end with a minor bump. */ typedef struct AVFrame { #define AV_NUM_DATA_POINTERS 8 -- cgit v1.2.3