comparison xvmc.h @ 8853:b0292c878f9d libavcodec

clarify xvmc struct fields usage distribution (internal communication)
author iive
date Sat, 14 Feb 2009 18:06:05 +0000
parents ff1b704b1f8f
children 897a2b1f883e
comparison
equal deleted inserted replaced
8852:ff1b704b1f8f 8853:b0292c878f9d
41 #define MP_XVMC_STATE_OSD_SOURCE AV_XVMC_STATE_OSD_SOURCE 41 #define MP_XVMC_STATE_OSD_SOURCE AV_XVMC_STATE_OSD_SOURCE
42 #define MP_XVMC_RENDER_MAGIC AV_XVMC_RENDER_MAGIC 42 #define MP_XVMC_RENDER_MAGIC AV_XVMC_RENDER_MAGIC
43 #endif 43 #endif
44 44
45 struct xvmc_render_state { 45 struct xvmc_render_state {
46 /** these are not changed by the decoder! */ 46 /** set by calling application */
47 //@{ 47 //@{
48 int magic; ///< used as check for memory corruption by regular pixel routines 48 int magic; ///< used as check for memory corruption by regular pixel routines
49 49
50 short* data_blocks; 50 short* data_blocks;
51 XvMCMacroBlock* mv_blocks; 51 XvMCMacroBlock* mv_blocks;
56 int chroma_format; ///< XVMC_CHROMA_FORMAT_420/422/444 56 int chroma_format; ///< XVMC_CHROMA_FORMAT_420/422/444
57 int unsigned_intra; ///<+-128 for intra pictures after clipping 57 int unsigned_intra; ///<+-128 for intra pictures after clipping
58 XvMCSurface* p_surface; ///<pointer to rendered surface, never changed 58 XvMCSurface* p_surface; ///<pointer to rendered surface, never changed
59 //}@ 59 //}@
60 60
61 /** these are changed by the decoder 61 /** set by the decoder
62 //used by the XvMCRenderSurface function */ 62 used by the XvMCRenderSurface function */
63 //@{ 63 //@{
64 XvMCSurface* p_past_surface; ///<pointer to the past surface 64 XvMCSurface* p_past_surface; ///<pointer to the past surface
65 XvMCSurface* p_future_surface; ///<pointer to the future prediction surface 65 XvMCSurface* p_future_surface; ///<pointer to the future prediction surface
66 66
67 unsigned int picture_structure; ///<top/bottom fields or frame! 67 unsigned int picture_structure; ///<top/bottom fields or frame!
68 unsigned int flags; ///<XVMC_SECOND_FIELD - 1st or 2nd field in the sequence 68 unsigned int flags; ///<XVMC_SECOND_FIELD - 1st or 2nd field in the sequence
69 unsigned int display_flags; ///<1,2 or 1+2 fields for XvMCPutSurface 69 unsigned int display_flags; ///<1,2 or 1+2 fields for XvMCPutSurface
70 //}@ 70 //}@
71 71
72 /** these are for internal communication */ 72 /** modified by calling application and the decoder */
73 //@{ 73 //@{
74 int state; ///<0 - free, 1 - waiting to display, 2 - waiting for prediction 74 int state; ///<0 - free, 1 - waiting to display, 2 - waiting for prediction
75 int start_mv_blocks_num; ///<offset in the array for the current slice, updated by vo 75 int start_mv_blocks_num; ///<offset in the array for the current slice, updated by vo
76 int filled_mv_blocks_num; ///<processed mv block in this slice, changed by decoder 76 int filled_mv_blocks_num; ///<processed mv block in this slice, changed by decoder
77 77
78 int next_free_data_block_num; ///<used in add_mv_block, pointer to next free block 78 int next_free_data_block_num; ///<used in add_mv_block, pointer to next free block
79 //}@ 79 //}@
80 /**extensions*/ 80 /** extensions */
81 //@{ 81 //@{
82 void * p_osd_target_surface_render; ///<pointer to the surface where subpicture is rendered 82 void * p_osd_target_surface_render; ///<pointer to the surface where subpicture is rendered
83 //}@ 83 //}@
84 84
85 }; 85 };