XvCreateImage, XvShmCreateImage − create an XvImage


, XvPortID XvImage * XvCreateImage (Display *dpy
, char *                         int id
, int                          int width

, XvPortID XvImage * XvShmCreateImage (Display *dpy
, char *                            int id
, int                             int width
);                            XShmSegmentInfo *shminfo

dpy     Specifies the connection to the X server.

port    Specifies the port the XvImage will be used with.

id      Specifies the format of the image to be created by
        the XvImageFormatValues id.

data    Specifies the image data.

width, height
        Specifies the desired width and height of the image.

is similar to is similar to The library will allocate the
XvImage structure and fill out all fields except for data.
Width and height may be enlarged in some YUV formats.  The
size of the data buffer that needs to be allocated will be
given in the data_size field in the XvImage.  Image data is
not allocated by this function.  The client may pass a
pointer to the preallocated memory as data or may allocate
the memory and fill in the XvImage structure’s data field
after the data_size field has been filled out by the server.
The XvImage structure may be freed by Shared memory segments
are attached/detached with

XvImage has the following structure:

typedef struct {
   int id;
   int width, height;
   int data_size;
   int num_planes;
   int *pitches;
   int *offsets;
   char *data;
   XPointer obdata; } XvImage;

id      A descriptor for the format from the
        XvImageFormatValues structure returned by


width, height
        The width and height of the image in pixels.

        The size of the data buffer in bytes.

        The number of image planes.

pitches An array of size num_planes indicating the scanline
        pitch in bytes.  Each plane may have a different

offsets An array of size num_planes indicating the byte
        offset from data to the start of each plane.

data    A pointer to the start of the data buffer.

obdata  A private field for holding SHM info.  This field
        will be set up by the client libraries so the
        programmer will generally need not be concerned with
        this field.

        Generated if the requested port does not exist.

        Generated if the X server was unable to allocate
        resources required to complete the operation.

        Generated if incompatible arguments were supplied,
        such as a port that isn’t capable of displaying