Collaboration diagram for picture_t:

Data Fields | |
| video_frame_format_t | format |
| The properties of the picture. | |
| uint8_t * | p_data |
| Picture data - data can always be freely modified, but p_data may NEVER be modified. | |
| void * | p_data_orig |
| pointer before memalign | |
| plane_t | p [5] |
| description of the planes | |
| int | i_planes |
| number of allocated planes | |
| picture_heap_t * | p_heap |
| The picture heap we are attached to. | |
| int(* | pf_lock )(vout_thread_t *, picture_t *) |
| int(* | pf_unlock )(vout_thread_t *, picture_t *) |
| picture_sys_t * | p_sys |
| Private data - the video output plugin might want to put stuff here to keep track of the picture. | |
| void(* | pf_release )(picture_t *) |
| This way the picture_Release can be overloaded. | |
| picture_t * | p_next |
| Next picture in a FIFO a pictures. | |
Type and flags | |
Should NOT be modified except by the vout thread | |
| int | i_status |
| picture flags | |
| int | i_type |
| is picture a direct buffer ? | |
| bool | b_slow |
| is picture in slow memory ? | |
| int | i_matrix_coefficients |
| in YUV type, encoding type | |
Picture management properties | |
These properties can be modified using the video output thread API, but should never be written directly | |
| unsigned | i_refcount |
| link reference counter | |
| mtime_t | date |
| display date | |
| bool | b_force |
Picture dynamic properties | |
Those properties can be changed by the decoder | |
| bool | b_progressive |
| is it a progressive frame ? | |
| unsigned int | i_nb_fields |
| # of displayed fields | |
| bool | b_top_field_first |
| which field is first | |
Any picture destined to be displayed by a video output thread should be stored in this structure from it's creation to it's effective display. Picture type and flags should only be modified by the output thread. Note that an empty picture MUST have its flags set to 0.
The properties of the picture.
1.5.1