aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Kalvachev <ikalvachev@gmail.com>2009-02-15 20:13:00 +0000
committerIvan Kalvachev <ikalvachev@gmail.com>2009-02-15 20:13:00 +0000
commitad0405fc0390bd7b09835a87089e0bc1ab9c7280 (patch)
tree7c7a511c23bcfc14989274e6e30d89512d74b9e1
parentd758a5cb50ad593eec220b65fc3261b315455ed3 (diff)
downloadffmpeg-ad0405fc0390bd7b09835a87089e0bc1ab9c7280.tar.gz
Describe all fields in xvmc struct.
Originally committed as revision 17345 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/xvmc.h84
1 files changed, 74 insertions, 10 deletions
diff --git a/libavcodec/xvmc.h b/libavcodec/xvmc.h
index 6bfedfa225..33b4fe7c57 100644
--- a/libavcodec/xvmc.h
+++ b/libavcodec/xvmc.h
@@ -38,28 +38,92 @@ struct xvmc_pix_fmt {
Once set these values are not supposed to be modified.
*/
//@{
- int xvmc_id; ///< used as a check against memory corruption by regular pixel routines or other API structures
+ /** The field contains special constant value.
+ It is used as test whenever the application knows the calling API,
+ and that there is no corruption caused by pixel routines.
+ - application - set during initialization
+ - libavcodec - unchanged
+ */
+ int xvmc_id;
+ /** Pointer to the block array allocated by XvMCCreateBlocks()
+ it contins differential pixel data (in MoCo mode)
+ or coefficients for IDCT.
+ - application - set during initialization
+ - libavcodec - unchanged
+ */
short* data_blocks;
+
+ /** Pointer to the macroblock description array allocated by XvMCCreateMacroBlocks().
+ - application - set during initialization
+ - libavcodec - unchanged
+ */
XvMCMacroBlock* mv_blocks;
+
+ /** Number of all MB descriptions that could be stored in the mv_blocks array.
+ - application - set during initialization
+ - libavcodec - unchanged
+ */
int total_number_of_mv_blocks;
+
+ /** Number of all blocks that could be stored at once in the data_blocks array.
+ - application - set during initialization
+ - libavcodec - unchanged
+ */
int total_number_of_data_blocks;
- int idct; ///< indicate that IDCT acceleration level is used
- int unsigned_intra; ///< +-128 for intra pictures after clipping
- XvMCSurface* p_surface; ///< pointer to rendered surface, never changed
+
+ /** Indicates that the hardware would interpret data_blocks as IDCT cefficients
+ and perform IDCT on them.
+ - application - set during initialization
+ - libavcodec - unchanged
+ */
+ int idct;
+
+ /** In MoCo mode it indicates that Intra MB are assumed to be in unsigned format
+ Same as XVMC_INTRA_UNSIGNED flag.
+ - application - set during initialization
+ - libavcodec - unchanged
+ */
+ int unsigned_intra;
+
+ /** Pointer to the Surface allocated by XvMCCreateSurface().
+ It identifies the frame on the video hardware and its state.
+ - application - set during initialization
+ - libavcodec - unchanged
+ */
+ XvMCSurface* p_surface;
//}@
/** Set by the decoder before calling draw_horiz_band(),
needed by the XvMCRenderSurface function. */
//@{
- XvMCSurface* p_past_surface; ///< pointer to the past surface
- XvMCSurface* p_future_surface; ///< pointer to the future prediction surface
+ /** Pointer to the surface used as past reference
+ - application - unchanged
+ - libavcodec - set
+ */
+ XvMCSurface* p_past_surface;
+
+ /**Pointer to the surface used as future reference
+ - application - unchanged
+ - libavcodec - set
+ */
+ XvMCSurface* p_future_surface;
- unsigned int picture_structure; ///< top/bottom field or frame
- unsigned int flags; ///< XVMC_SECOND_FIELD - 1st or 2nd field in the sequence
+ /** top/bottom field or frame
+ - application - unchanged
+ - libavcodec - set
+ */
+ unsigned int picture_structure;
+
+ /**XVMC_SECOND_FIELD - 1st or 2nd field in the sequence
+ - application - unchanged
+ - libavcodec - set
+ */
+ unsigned int flags;
//}@
- /** Offset in the mv array for the current slice:
+ /** Offset in the mv array for the current slice.
+ Macroblocks described before that offset are assumed to be already passed to the hardware.
- application - zeros it on get_buffer().
A successful draw_horiz_band() may increment it
with filled_mb_block_num or zero both.
@@ -67,7 +131,7 @@ struct xvmc_pix_fmt {
*/
int start_mv_blocks_num;
- /** Processed mv blocks in this slice:
+ /** Number of mv blocks that are filled by libavcodec and have to be passed to the hardware.
- application - zeros it on get_buffer() or after successful draw_horiz_band()
- libavcodec - increment with one of each stored MB
*/