vlc_vout.h File Reference

Include dependency graph for vlc_vout.h:

Go to the source code of this file.

Data Structures

struct  plane_t
 Description of a planar graphic field. More...
struct  picture_t
 Video picture. More...
struct  picture_heap_t
 Video picture heap, either render (to store pictures used by the decoder) or output (to store pictures displayed by the vout plugin). More...
struct  subpicture_region_t
 Video subtitle region. More...
struct  subpicture_t
 Video subtitle. More...
struct  vout_thread_t
 Video output thread descriptor. More...
struct  snapshot_t

Defines

#define VLC_VOUT_H_   1
#define EMPTY_PICTURE   0
#define MEMORY_PICTURE   100
#define DIRECT_PICTURE   200
#define FREE_PICTURE   0
#define RESERVED_PICTURE   1
#define RESERVED_DATED_PICTURE   2
#define RESERVED_DISP_PICTURE   3
#define READY_PICTURE   4
#define DISPLAYED_PICTURE   5
#define DESTROYED_PICTURE   6
#define Y_PLANE   0
#define U_PLANE   1
#define V_PLANE   2
#define A_PLANE   3
#define Y_PIXELS   p[Y_PLANE].p_pixels
#define Y_PITCH   p[Y_PLANE].i_pitch
#define U_PIXELS   p[U_PLANE].p_pixels
#define U_PITCH   p[U_PLANE].i_pitch
#define V_PIXELS   p[V_PLANE].p_pixels
#define V_PITCH   p[V_PLANE].i_pitch
#define A_PIXELS   p[A_PLANE].p_pixels
#define A_PITCH   p[A_PLANE].i_pitch
#define EMPTY_SUBPICTURE   0
#define MEMORY_SUBPICTURE   100
#define DEFAULT_CHAN   1
#define FREE_SUBPICTURE   0
#define RESERVED_SUBPICTURE   1
#define READY_SUBPICTURE   2
#define SUBPICTURE_ALIGN_LEFT   0x1
#define SUBPICTURE_ALIGN_RIGHT   0x2
#define SUBPICTURE_ALIGN_TOP   0x4
#define SUBPICTURE_ALIGN_BOTTOM   0x8
#define SUBPICTURE_ALIGN_MASK
#define SUBPICTURE_RENDERED   0x10
#define vout_CopyPicture(a, b, c)   __vout_CopyPicture(VLC_OBJECT(a),b,c)
 Copy the source picture onto the destination picture.
#define vout_InitPicture(a, b, c, d, e, f)   __vout_InitPicture(VLC_OBJECT(a),b,c,d,e,f)
 Initialise different fields of a picture_t (but does not allocate memory).
#define vout_AllocatePicture(a, b, c, d, e, f)   __vout_AllocatePicture(VLC_OBJECT(a),b,c,d,e,f)
 Initialise different fields of a picture_t and allocates the picture buffer.
#define I_OUTPUTPICTURES   p_vout->output.i_pictures
#define PP_OUTPUTPICTURE   p_vout->output.pp_picture
#define I_RENDERPICTURES   p_vout->render.i_pictures
#define PP_RENDERPICTURE   p_vout->render.pp_picture
#define VOUT_INFO_CHANGE   0x0001
 b_info changed
#define VOUT_GRAYSCALE_CHANGE   0x0002
 b_grayscale changed
#define VOUT_INTF_CHANGE   0x0004
 b_interface changed
#define VOUT_SCALE_CHANGE   0x0008
 b_scale changed
#define VOUT_GAMMA_CHANGE   0x0010
 gamma changed
#define VOUT_CURSOR_CHANGE   0x0020
 b_cursor changed
#define VOUT_FULLSCREEN_CHANGE   0x0040
 b_fullscreen changed
#define VOUT_SIZE_CHANGE   0x0200
 size changed
#define VOUT_DEPTH_CHANGE   0x0400
 depth changed
#define VOUT_CHROMA_CHANGE   0x0800
 change chroma tables
#define VOUT_CROP_CHANGE   0x1000
 cropping parameters changed
#define VOUT_ASPECT_CHANGE   0x2000
 aspect ratio changed
#define VOUT_PICTURE_BUFFERS_CHANGE   0x4000
 change/recreate picture buffers
#define VOUT_ALIGN_LEFT   0x0001
#define VOUT_ALIGN_RIGHT   0x0002
#define VOUT_ALIGN_HMASK   0x0003
#define VOUT_ALIGN_TOP   0x0004
#define VOUT_ALIGN_BOTTOM   0x0008
#define VOUT_ALIGN_VMASK   0x000C
#define MAX_JITTER_SAMPLES   20
#define vout_Request(a, b, c)   __vout_Request(VLC_OBJECT(a),b,c)
 This function will
  • returns a suitable vout (if requested by a non NULL p_fmt)
  • recycles an old vout (if given) by either destroying it or by saving it for latter usage.

#define vout_Create(a, b)   __vout_Create(VLC_OBJECT(a),b)
 This function will create a suitable vout for a given p_fmt.

Enumerations

enum  output_query_e {
  VOUT_GET_SIZE, VOUT_SET_SIZE, VOUT_SET_STAY_ON_TOP, VOUT_REPARENT,
  VOUT_SNAPSHOT, VOUT_CLOSE, VOUT_SET_FOCUS, VOUT_SET_VIEWPORT,
  VOUT_REDRAW_RECT
}

Functions

picture_tpicture_New (vlc_fourcc_t i_chroma, int i_width, int i_height, int i_aspect)
 This function will create a new picture.
void picture_Delete (picture_t *)
 This function will force the destruction a picture.
static void picture_Yield (picture_t *p_picture)
 This function will increase the picture reference count.
static void picture_Release (picture_t *p_picture)
 This function will release a picture.
static void picture_CopyProperties (picture_t *p_dst, const picture_t *p_src)
 This function will copy all picture dynamic properties.
void picture_CopyPixels (picture_t *p_dst, const picture_t *p_src)
 This function will copy the picture pixels.
static void picture_Copy (picture_t *p_dst, const picture_t *p_src)
 This function will copy both picture dynamic properties and pixels.
void __vout_CopyPicture (vlc_object_t *p_this, picture_t *p_dst, picture_t *p_src)
int __vout_InitPicture (vlc_object_t *p_this, picture_t *p_pic, uint32_t i_chroma, int i_width, int i_height, int i_aspect)
 Initialise the picture_t fields given chroma/size.
int __vout_AllocatePicture (vlc_object_t *p_this, picture_t *p_pic, uint32_t i_chroma, int i_width, int i_height, int i_aspect)
 Allocate a new picture in the heap.
vout_thread_t__vout_Request (vlc_object_t *p_this, vout_thread_t *p_vout, video_format_t *p_fmt)
vout_thread_t__vout_Create (vlc_object_t *p_this, video_format_t *p_fmt)
void vout_Close (vout_thread_t *p_vout)
 This function will close a vout created by vout_Create or vout_Request.
static void vout_CloseAndRelease (vout_thread_t *p_vout)
 This function will close a vout created by vout_Create and then release it.
int vout_ChromaCmp (uint32_t, uint32_t)
 Compare two chroma values.
picture_tvout_CreatePicture (vout_thread_t *, bool, bool, unsigned int)
void vout_InitFormat (video_frame_format_t *, uint32_t, int, int, int)
 Initialise the video format fields given chroma/size.
void vout_DestroyPicture (vout_thread_t *, picture_t *)
 Remove a permanent or reserved picture from the heap.
void vout_DisplayPicture (vout_thread_t *, picture_t *)
 Display a picture.
void vout_DatePicture (vout_thread_t *, picture_t *, mtime_t)
 Date a picture.
void vout_LinkPicture (vout_thread_t *, picture_t *)
 Increment reference counter of a picture.
void vout_UnlinkPicture (vout_thread_t *, picture_t *)
 Decrement reference counter of a picture.
void vout_PlacePicture (vout_thread_t *, unsigned int, unsigned int, unsigned int *, unsigned int *, unsigned int *, unsigned int *)
 Calculate image window coordinates.
picture_tvout_RenderPicture (vout_thread_t *, picture_t *, subpicture_t *)
 Render a picture.
int vout_CountPictureAvailable (vout_thread_t *)
 Allocate a picture in the video output heap.
int vout_vaControlDefault (vout_thread_t *, int, va_list)
void * vout_RequestWindow (vout_thread_t *, int *, int *, unsigned int *, unsigned int *)
void vout_ReleaseWindow (vout_thread_t *, void *)
int vout_ControlWindow (vout_thread_t *, void *, int, va_list)
void vout_IntfInit (vout_thread_t *)
int vout_Snapshot (vout_thread_t *p_vout, picture_t *p_pic)
void vout_EnableFilter (vout_thread_t *, char *, bool, bool)
static int vout_vaControl (vout_thread_t *p_vout, int i_query, va_list args)
static int vout_Control (vout_thread_t *p_vout, int i_query,...)


Define Documentation

#define A_PITCH   p[A_PLANE].i_pitch

#define A_PIXELS   p[A_PLANE].p_pixels

#define A_PLANE   3

#define DESTROYED_PICTURE   6

#define DIRECT_PICTURE   200

#define DISPLAYED_PICTURE   5

#define EMPTY_PICTURE   0

#define FREE_PICTURE   0

#define MEMORY_PICTURE   100

#define READY_PICTURE   4

#define RESERVED_DATED_PICTURE   2

#define RESERVED_DISP_PICTURE   3

#define RESERVED_PICTURE   1

#define U_PITCH   p[U_PLANE].i_pitch

#define U_PIXELS   p[U_PLANE].p_pixels

#define U_PLANE   1

#define V_PITCH   p[V_PLANE].i_pitch

#define V_PIXELS   p[V_PLANE].p_pixels

#define V_PLANE   2

#define VLC_VOUT_H_   1

#define Y_PITCH   p[Y_PLANE].i_pitch

#define Y_PIXELS   p[Y_PLANE].p_pixels

#define Y_PLANE   0


Function Documentation

static void picture_Copy ( picture_t p_dst,
const picture_t p_src 
) [inline, static]

This function will copy both picture dynamic properties and pixels.

You have to notice that sometime a simple picture_Yield may do what you want without the copy overhead. Provided for convenience.

void picture_CopyPixels ( picture_t p_dst,
const picture_t p_src 
)

This function will copy the picture pixels.

You can safely copy between pictures that do not have the same size, only the compatible(smaller) part will be copied.

static void picture_CopyProperties ( picture_t p_dst,
const picture_t p_src 
) [inline, static]

This function will copy all picture dynamic properties.

void picture_Delete ( picture_t  ) 

This function will force the destruction a picture.

The value of the picture reference count should be 0 before entering this function. Unless used for reimplementing pf_release, you should not use this function but picture_Release.

picture_t* picture_New ( vlc_fourcc_t  i_chroma,
int  i_width,
int  i_height,
int  i_aspect 
)

This function will create a new picture.

The picture created will implement a default release management compatible with picture_Yield and picture_Release. This default management will release picture_sys_t *p_sys field if non NULL.

static void picture_Release ( picture_t p_picture  )  [inline, static]

This function will release a picture.

It will not have any effect on picture obtained from vout

static void picture_Yield ( picture_t p_picture  )  [inline, static]

This function will increase the picture reference count.

It will not have any effect on picture obtained from vout


Generated on Wed Aug 13 08:02:49 2008 for VLC by  doxygen 1.5.1