Fill it with AVStereo3D and AVDisplayMatrix documentation. Apply the necessary changes to make verbatim code look good in doxygen. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>tags/n3.4
@@ -115,6 +115,12 @@ | |||||
* | * | ||||
* @} | * @} | ||||
* | * | ||||
* @defgroup lavu_video Video related | |||||
* | |||||
* @{ | |||||
* | |||||
* @} | |||||
* | |||||
* @defgroup lavu_audio Audio related | * @defgroup lavu_audio Audio related | ||||
* | * | ||||
* @{ | * @{ | ||||
@@ -18,21 +18,37 @@ | |||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||
*/ | */ | ||||
/** | |||||
* @file | |||||
* Display matrix | |||||
*/ | |||||
#ifndef AVUTIL_DISPLAY_H | #ifndef AVUTIL_DISPLAY_H | ||||
#define AVUTIL_DISPLAY_H | #define AVUTIL_DISPLAY_H | ||||
#include <stdint.h> | #include <stdint.h> | ||||
/** | /** | ||||
* @addtogroup lavu_video | |||||
* @{ | |||||
* | |||||
* @defgroup lavu_video_display Display transformation matrix functions | |||||
* @{ | |||||
*/ | |||||
/** | |||||
* @addtogroup lavu_video_display | |||||
* The display transformation matrix specifies an affine transformation that | * The display transformation matrix specifies an affine transformation that | ||||
* should be applied to video frames for correct presentation. It is compatible | * should be applied to video frames for correct presentation. It is compatible | ||||
* with the matrices stored in the ISO/IEC 14496-12 container format. | * with the matrices stored in the ISO/IEC 14496-12 container format. | ||||
* | * | ||||
* The data is a 3x3 matrix represented as a 9-element array: | * The data is a 3x3 matrix represented as a 9-element array: | ||||
* | * | ||||
* @code{.unparsed} | |||||
* | a b u | | * | a b u | | ||||
* (a, b, u, c, d, v, x, y, w) -> | c d v | | * (a, b, u, c, d, v, x, y, w) -> | c d v | | ||||
* | x y w | | * | x y w | | ||||
* @endcode | |||||
* | * | ||||
* All numbers are stored in native endianness, as 16.16 fixed-point values, | * All numbers are stored in native endianness, as 16.16 fixed-point values, | ||||
* except for u, v and w, which are stored as 2.30 fixed-point values. | * except for u, v and w, which are stored as 2.30 fixed-point values. | ||||
@@ -40,15 +56,21 @@ | |||||
* The transformation maps a point (p, q) in the source (pre-transformation) | * The transformation maps a point (p, q) in the source (pre-transformation) | ||||
* frame to the point (p', q') in the destination (post-transformation) frame as | * frame to the point (p', q') in the destination (post-transformation) frame as | ||||
* follows: | * follows: | ||||
* | |||||
* @code{.unparsed} | |||||
* | a b u | | * | a b u | | ||||
* (p, q, 1) . | c d v | = z * (p', q', 1) | * (p, q, 1) . | c d v | = z * (p', q', 1) | ||||
* | x y w | | * | x y w | | ||||
* @endcode | |||||
* | * | ||||
* The transformation can also be more explicitly written in components as | * The transformation can also be more explicitly written in components as | ||||
* follows: | * follows: | ||||
* | |||||
* @code{.unparsed} | |||||
* p' = (a * p + c * q + x) / z; | * p' = (a * p + c * q + x) / z; | ||||
* q' = (b * p + d * q + y) / z; | * q' = (b * p + d * q + y) / z; | ||||
* z = u * p + v * q + w | * z = u * p + v * q + w | ||||
* @endcode | |||||
*/ | */ | ||||
/** | /** | ||||
@@ -83,4 +105,9 @@ void av_display_rotation_set(int32_t matrix[9], double angle); | |||||
*/ | */ | ||||
void av_display_matrix_flip(int32_t matrix[9], int hflip, int vflip); | void av_display_matrix_flip(int32_t matrix[9], int hflip, int vflip); | ||||
/** | |||||
* @} | |||||
* @} | |||||
*/ | |||||
#endif /* AVUTIL_DISPLAY_H */ | #endif /* AVUTIL_DISPLAY_H */ |
@@ -18,6 +18,11 @@ | |||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||
*/ | */ | ||||
/** | |||||
* @file | |||||
* Stereoscopic video | |||||
*/ | |||||
#ifndef AVUTIL_STEREO3D_H | #ifndef AVUTIL_STEREO3D_H | ||||
#define AVUTIL_STEREO3D_H | #define AVUTIL_STEREO3D_H | ||||
@@ -25,6 +30,21 @@ | |||||
#include "frame.h" | #include "frame.h" | ||||
/** | |||||
* @addtogroup lavu_video | |||||
* @{ | |||||
* | |||||
* @defgroup lavu_video_stereo3d Stereo3D types and functions | |||||
* @{ | |||||
*/ | |||||
/** | |||||
* @addtogroup lavu_video_stereo3d | |||||
* A stereoscopic video file consists in multiple views embedded in a single | |||||
* frame, usually describing two views of a scene. This file describes all | |||||
* possible codec-independent view arrangements. | |||||
* */ | |||||
/** | /** | ||||
* List of possible 3D Types | * List of possible 3D Types | ||||
*/ | */ | ||||
@@ -37,41 +57,49 @@ enum AVStereo3DType { | |||||
/** | /** | ||||
* Views are next to each other. | * Views are next to each other. | ||||
* | * | ||||
* @code{.unparsed} | |||||
* LLLLRRRR | * LLLLRRRR | ||||
* LLLLRRRR | * LLLLRRRR | ||||
* LLLLRRRR | * LLLLRRRR | ||||
* ... | * ... | ||||
* @endcode | |||||
*/ | */ | ||||
AV_STEREO3D_SIDEBYSIDE, | AV_STEREO3D_SIDEBYSIDE, | ||||
/** | /** | ||||
* Views are on top of each other. | * Views are on top of each other. | ||||
* | * | ||||
* @code{.unparsed} | |||||
* LLLLLLLL | * LLLLLLLL | ||||
* LLLLLLLL | * LLLLLLLL | ||||
* RRRRRRRR | * RRRRRRRR | ||||
* RRRRRRRR | * RRRRRRRR | ||||
* @endcode | |||||
*/ | */ | ||||
AV_STEREO3D_TOPBOTTOM, | AV_STEREO3D_TOPBOTTOM, | ||||
/** | /** | ||||
* Views are alternated temporally. | * Views are alternated temporally. | ||||
* | * | ||||
* @code{.unparsed} | |||||
* frame0 frame1 frame2 ... | * frame0 frame1 frame2 ... | ||||
* LLLLLLLL RRRRRRRR LLLLLLLL | * LLLLLLLL RRRRRRRR LLLLLLLL | ||||
* LLLLLLLL RRRRRRRR LLLLLLLL | * LLLLLLLL RRRRRRRR LLLLLLLL | ||||
* LLLLLLLL RRRRRRRR LLLLLLLL | * LLLLLLLL RRRRRRRR LLLLLLLL | ||||
* ... ... ... | * ... ... ... | ||||
* @endcode | |||||
*/ | */ | ||||
AV_STEREO3D_FRAMESEQUENCE, | AV_STEREO3D_FRAMESEQUENCE, | ||||
/** | /** | ||||
* Views are packed in a checkerboard-like structure per pixel. | * Views are packed in a checkerboard-like structure per pixel. | ||||
* | * | ||||
* @code{.unparsed} | |||||
* LRLRLRLR | * LRLRLRLR | ||||
* RLRLRLRL | * RLRLRLRL | ||||
* LRLRLRLR | * LRLRLRLR | ||||
* ... | * ... | ||||
* @endcode | |||||
*/ | */ | ||||
AV_STEREO3D_CHECKERBOARD, | AV_STEREO3D_CHECKERBOARD, | ||||
@@ -79,30 +107,36 @@ enum AVStereo3DType { | |||||
* Views are next to each other, but when upscaling | * Views are next to each other, but when upscaling | ||||
* apply a checkerboard pattern. | * apply a checkerboard pattern. | ||||
* | * | ||||
* @code{.unparsed} | |||||
* LLLLRRRR L L L L R R R R | * LLLLRRRR L L L L R R R R | ||||
* LLLLRRRR => L L L L R R R R | * LLLLRRRR => L L L L R R R R | ||||
* LLLLRRRR L L L L R R R R | * LLLLRRRR L L L L R R R R | ||||
* LLLLRRRR L L L L R R R R | * LLLLRRRR L L L L R R R R | ||||
* @endcode | |||||
*/ | */ | ||||
AV_STEREO3D_SIDEBYSIDE_QUINCUNX, | AV_STEREO3D_SIDEBYSIDE_QUINCUNX, | ||||
/** | /** | ||||
* Views are packed per line, as if interlaced. | * Views are packed per line, as if interlaced. | ||||
* | * | ||||
* @code{.unparsed} | |||||
* LLLLLLLL | * LLLLLLLL | ||||
* RRRRRRRR | * RRRRRRRR | ||||
* LLLLLLLL | * LLLLLLLL | ||||
* ... | * ... | ||||
* @endcode | |||||
*/ | */ | ||||
AV_STEREO3D_LINES, | AV_STEREO3D_LINES, | ||||
/** | /** | ||||
* Views are packed per column. | * Views are packed per column. | ||||
* | * | ||||
* @code{.unparsed} | |||||
* LRLRLRLR | * LRLRLRLR | ||||
* LRLRLRLR | * LRLRLRLR | ||||
* LRLRLRLR | * LRLRLRLR | ||||
* ... | * ... | ||||
* @endcode | |||||
*/ | */ | ||||
AV_STEREO3D_COLUMNS, | AV_STEREO3D_COLUMNS, | ||||
}; | }; | ||||
@@ -167,4 +201,9 @@ const char *av_stereo3d_type_name(unsigned int type); | |||||
*/ | */ | ||||
int av_stereo3d_from_name(const char *name); | int av_stereo3d_from_name(const char *name); | ||||
/** | |||||
* @} | |||||
* @} | |||||
*/ | |||||
#endif /* AVUTIL_STEREO3D_H */ | #endif /* AVUTIL_STEREO3D_H */ |