XvCreateImage(3) libXv Functions XvCreateImage(3)

# [NAME](#NAME)

XvCreateImage, XvShmCreateImage - create an XvImage

# [SYNOPSIS](#SYNOPSIS)

**#include &lt;X11/extensions/Xvlib.h&gt;**

```
XvImage * XvCreateImage (Display *dpy, XvPortID port,
                         int id, char *data,
                         int width, int height);

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

# [ARGUMENTS](#ARGUMENTS)

[*dpy*](#dpy)

Specifies the connection to the X server.

[*port*](#port)

Specifies the port the XvImage will be used with.

[*id*](#id)

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

[*data*](#data)

Specifies the image data.

[*width*, *height*](#width)

Specifies the desired width and height of the image.

# [DESCRIPTION](#DESCRIPTION)

[**XvCreateImage**(3)](/man/os/libxv/XvCreateImage.3) is similar to [**XCreateImage**(3)](/man/os/libxv/XCreateImage.3). [**XvShmCreateImage**(3)](/man/os/libxv/XvShmCreateImage.3) is similar to [**XShmCreateImage**(3)](/man/os/libxv/XShmCreateImage.3). 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 [**XFree**(3)](/man/os/libxv/XFree.3). Shared memory segments are attached/detached with [**XShmAttach**(3)](/man/os/libxv/XShmAttach.3)/[**XShmDetach**(3)](/man/os/libxv/XShmDetach.3).

# [RETURN VALUES](#RETURN_VALUES)

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*](#id~2)

A descriptor for the format from the XvImageFormatValues structure returned by [**XvListImageFormats**(3)](/man/os/libxv/XvListImageFormats.3).

[*width, height*](#width,)

The width and height of the image in pixels.

[*data\_size*](#data_size)

The size of the data buffer in bytes.

[*num\_planes*](#num_planes)

The number of image planes.

[*pitches*](#pitches)

An array of size *num\_planes* indicating the scanline pitch in bytes. Each plane may have a different pitch.

[*offsets*](#offsets)

An array of size *num\_planes* indicating the byte offset from *data* to the start of each plane.

[*data*](#data~2)

A pointer to the start of the data buffer.

[*obdata*](#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.

# [DIAGNOSTICS](#DIAGNOSTICS)

\[XvBadPort]

Generated if the requested port does not exist.

\[XvBadAlloc]

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

\[BadMatch]

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

# [SEE ALSO](#SEE_ALSO)

[**XvListImageFormats**(3)](/man/os/libxv/XvListImageFormats.3), [**XCreateImage**(3)](/man/os/libxv/XCreateImage.3), [**XShmCreateImage**(3)](/man/os/libxv/XShmCreateImage.3), [**XShmAttach**(3)](/man/os/libxv/XShmAttach.3), [**XShmDetach**(3)](/man/os/libxv/XShmDetach.3).

libXv 1.0.13 X Version 11

---

Document: XvCreateImage(3) from libxv 1.0.13-r7 (Chainguard OS)
Source: https://gitlab.freedesktop.org/xorg/lib/libxv
