picture_t Struct Reference

Video picture. More...

Collaboration diagram for picture_t:

Collaboration graph
[legend]

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
int(* pf_lock )(vout_thread_t *, picture_t *)
int(* pf_unlock )(vout_thread_t *, picture_t *)
picture_sys_tp_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_release_sys_tp_release_sys
struct picture_tp_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 ?
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
int8_t * p_q
 quantification table
int i_qstride
 quantification stride
int i_qtype
 quantification style

Detailed Description

Video picture.

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.


Field Documentation

Picture data - data can always be freely modified, but p_data may NEVER be modified.

A direct buffer can be handled as the plugin wishes, it can even swap p_pixels buffers.

Referenced by __vout_AllocatePicture(), NewPicture(), and Render().

description of the planes

Referenced by __osd_MenuCreate(), __vout_AllocatePicture(), BlendI420I420(), BlendI420I420_no_alpha(), BlendI420R16(), BlendI420R24(), BlendI420YUVPacked(), BlendPalI420(), BlendPalRV(), BlendPalYUVPacked(), BlendRGBAI420(), BlendRGBAR16(), BlendRGBAR24(), BlendRGBAYUVPacked(), BlendYUVARV16(), BlendYUVARV24(), BlendYUVAYUVPacked(), Copy(), copy_rect(), CopyPicture(), CreateSchroFrameFromPic(), cyuv_I420(), cyuv_I422(), Decode(), DecodeBlock(), DecodeVideo(), Deinterlace(), Direct3DLockSurface(), Display(), DisplayStat(), DoWork(), Encode(), encode_pixel_line_2bp(), encode_pixel_line_4bp(), encode_pixel_line_8bp(), EncodeBlock(), End(), ExtractMiniImage_YUV(), ffmpeg_CopyPicture(), FileBitmap::FileBitmap(), fill_rect(), FillPicture(), Filter(), FilterEdge(), FilterErase(), FilterGradient(), FilterHough(), FilterI422(), FilterPacked(), FilterPlanar(), FilterSub(), FilterYUYV(), FreePicture(), GaussianConvolution(), Get(), get_blue_from_yuv420(), get_blue_from_yuv422(), get_custom_from_packedyuv422(), get_custom_from_yuv420(), get_custom_from_yuv422(), get_green_from_yuv420(), get_green_from_yuv422(), get_red_from_yuv420(), get_red_from_yuv422(), GetNewPicture(), GREY_YUY2(), HorizontalMirror(), I420_cyuv(), I420_R5G5B5(), I420_RGB8(), I420_UYVY(), I420_YUY2(), I420_YVYU(), I422_cyuv(), I422_UYVY(), I422_YUVA(), I422_YUY2(), I422_YV12(), I422_YVYU(), Init(), LoadImage(), Lock(), Manage(), NewPicture(), NewPictureVec(), OpaquePage(), OpenVideoDev(), osd_StateNew(), picture_CopyPixels(), picture_NewFromResource(), picture_Setup(), PlanarVerticalMirror(), PostprocPict(), Prepare(), PutPicture(), raw_line(), RegionDraw(), Render(), RenderBlend(), RenderBlur(), RenderBob(), RenderCursor(), RenderDiscard(), RenderLinear(), RenderMean(), RenderPicture(), RenderPixel(), RenderX(), RenderYadif(), Run(), RV24VerticalMirror(), RV32VerticalMirror(), scope_Run(), SendFrame(), SetOverlayTransparency(), spectrometer_Run(), spectrum_Run(), tarkin_CopyPicture(), theora_CopyPicture(), UnpackFromFile(), UpdatePictureStruct(), UpdateStats(), UYVY_I420(), UYVY_I422(), VideoCommand(), vlc_plane_start(), VlcPictureToIplImage(), vuMeter_Run(), YUV422VerticalMirror(), YuvaYuvp(), YVYU_I420(), and YVYU_I422().

is picture in slow memory ?

Referenced by __vout_Create(), Init(), NewPictureVec(), vout_CreatePicture(), and vout_RenderPicture().

unsigned int picture_t::i_nb_fields

int8_t* picture_t::p_q

quantification stride

Referenced by DecodeVideo(), picture_CleanupQuant(), picture_Setup(), and PostprocPict().

This way the picture_Release can be overloaded.

Referenced by picture_Hold(), picture_NewFromResource(), picture_pool_Delete(), picture_pool_NewExtended(), picture_Release(), and picture_Setup().

struct picture_t* picture_t::p_next [read]


The documentation for this struct was generated from the following file:

Generated on Sat Nov 21 08:06:27 2009 for VLC by  doxygen 1.5.6