changeset 8907:c9e8aed08d17 libavcodec

Detailed description of the interesting fields in xvmc struct.
author iive
date Sun, 15 Feb 2009 01:35:32 +0000
parents 23f3b98db75c
children ac0ad123e3f0
files xvmc.h
diffstat 1 files changed, 25 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/xvmc.h	Sun Feb 15 01:28:50 2009 +0000
+++ b/xvmc.h	Sun Feb 15 01:35:32 2009 +0000
@@ -58,17 +58,35 @@
 #endif
 //}@
 
-/** modified by calling application and the decoder */
-//@{
-    int             start_mv_blocks_num;          ///< offset in the array for the current slice, updated by vo
-    int             filled_mv_blocks_num;         ///< processed mv block in this slice, changed by decoder
+    /** Offset in the mv array for the current slice:
+        - application - zeros it on  get_buffer().
+                        successful draw_horiz_band() may increment it
+                        with filled_mb_block_num or zero both.
+        - libavcodec  - unchanged
+    */
+    int             start_mv_blocks_num;
 
-    int             next_free_data_block_num;     ///< used in add_mv_block, pointer to next free block
-//}@
+    /** Processed mv blocks in this slice:
+        - application - zeros it on get_buffer() or after successful draw_horiz_band()
+        - libavcodec  - increment with one of each stored MB
+    */
+    int             filled_mv_blocks_num;
+
+    /** Used in add_mv_block, pointer to next free block
+        - application - zeroes it on get_buffer() and after successful draw_horiz_band()
+        - libvcodec   - each macroblock increases it with the number of coded blocks in it.
+    */
+    int             next_free_data_block_num;
+
 /** extensions may be placed here */
 #if LIBAVCODEC_VERSION_MAJOR < 53
 //@{
-    int             state;                        ///< 0 - free, 1 - waiting to display, 2 - waiting for prediction
+    /** State - used to workaround limitations in MPlayer vo system.
+        0   -Surface not used
+        1   -Surface is still hold in application to be displayed or is still visible.
+        2   -Surface is still hold in lavcodec buffer for prediction
+    */
+    int             state;
     void*           p_osd_target_surface_render;  ///< pointer to the surface where subpicture is rendered
 //}@
 #endif