public class INTELVAAPIMediaSharing
extends java.lang.Object
The goal of this extension is to provide interoperability between OpenCL and the cross-platform Video Acceleration API (VA API). The extension specifically enables sharing of VA API surfaces for media. It uses similar mechanisms and provides similar surface sharing capabilities for VA API that are provided by the Khronos OpenCL 1.2 Media Surface Sharing extension for DX9.
Requires CL12 and a VA API implementation supporting sharing of surfaces with OpenCL.
| Modifier and Type | Field and Description |
|---|---|
static int |
CL_ALL_DEVICES_FOR_VA_API_INTEL
Accepted as a set of VA API devices in the
media_adapter_set parameter of GetDeviceIDsFromVA_APIMediaAdapterINTEL. |
static int |
CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL
|
static int |
CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL
|
static int |
CL_CONTEXT_VA_API_DISPLAY_INTEL
|
static int |
CL_IMAGE_VA_API_PLANE_INTEL
Accepted as the property being queried in the
param_name parameter of GetImageInfo. |
static int |
CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL
Returned by
CreateContext and CreateContextFromType if the VA API display specified for interoperability is not compatible with the
devices against which the context is to be created. |
static int |
CL_INVALID_VA_API_MEDIA_SURFACE_INTEL
Returned by
CreateFromVA_APIMediaSurfaceINTEL when surface is not a VA API surface of the required type, by GetMemObjectInfo when
param_name is MEM_VA_API_MEDIA_SURFACE_INTEL when memobj was not created from a VA API surface, and from GetImageInfo when
param_name is IMAGE_VA_API_PLANE_INTEL and image was not created from a VA API surface. |
static int |
CL_MEM_VA_API_MEDIA_SURFACE_INTEL
Accepted as the property being queried in the
param_name parameter of GetMemObjectInfo. |
static int |
CL_PREFERRED_DEVICES_FOR_VA_API_INTEL
Accepted as a set of VA API devices in the
media_adapter_set parameter of GetDeviceIDsFromVA_APIMediaAdapterINTEL. |
static int |
CL_VA_API_DISPLAY_INTEL
Accepted as a VA API device source in the
media_adapter_type parameter of GetDeviceIDsFromVA_APIMediaAdapterINTEL. |
static int |
CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL
Returned by
EnqueueAcquireVA_APIMediaSurfacesINTEL when any of mem_objects are currently acquired by OpenCL. |
static int |
CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL
Returned by
EnqueueReleaseVA_APIMediaSurfacesINTEL when any of mem_objects are not currently acquired by OpenCL. |
| Modifier and Type | Method and Description |
|---|---|
static long |
clCreateFromVA_APIMediaSurfaceINTEL(long context,
long flags,
int[] surface,
int plane,
int[] errcode_ret)
Array version of:
CreateFromVA_APIMediaSurfaceINTEL |
static long |
clCreateFromVA_APIMediaSurfaceINTEL(long context,
long flags,
java.nio.IntBuffer surface,
int plane,
java.nio.IntBuffer errcode_ret)
Creates an OpenCL 2D image object from a VA API media surface or a plane of a VA API media surface.
|
static int |
clEnqueueAcquireVA_APIMediaSurfacesINTEL(long command_queue,
org.lwjgl.PointerBuffer mem_objects,
org.lwjgl.PointerBuffer event_wait_list,
org.lwjgl.PointerBuffer event)
Acquires OpenCL memory objects that have been created from VA API surfaces.
|
static int |
clEnqueueReleaseVA_APIMediaSurfacesINTEL(long command_queue,
org.lwjgl.PointerBuffer mem_objects,
org.lwjgl.PointerBuffer event_wait_list,
org.lwjgl.PointerBuffer event)
Releases OpenCL memory objects that have been created from VA API surfaces.
|
static int |
clGetDeviceIDsFromVA_APIMediaAdapterINTEL(long platform,
int media_adapter_type,
long media_adapter,
int media_adapter_set,
org.lwjgl.PointerBuffer devices,
int[] num_devices)
Array version of:
GetDeviceIDsFromVA_APIMediaAdapterINTEL |
static int |
clGetDeviceIDsFromVA_APIMediaAdapterINTEL(long platform,
int media_adapter_type,
long media_adapter,
int media_adapter_set,
org.lwjgl.PointerBuffer devices,
java.nio.IntBuffer num_devices)
Queries the OpenCL devices corresponding to a VA API display.
|
static long |
nclCreateFromVA_APIMediaSurfaceINTEL(long context,
long flags,
long surface,
int plane,
long errcode_ret)
Unsafe version of:
CreateFromVA_APIMediaSurfaceINTEL |
static int |
nclEnqueueAcquireVA_APIMediaSurfacesINTEL(long command_queue,
int num_objects,
long mem_objects,
int num_events_in_wait_list,
long event_wait_list,
long event)
Unsafe version of:
EnqueueAcquireVA_APIMediaSurfacesINTEL |
static int |
nclEnqueueReleaseVA_APIMediaSurfacesINTEL(long command_queue,
int num_objects,
long mem_objects,
int num_events_in_wait_list,
long event_wait_list,
long event)
Unsafe version of:
EnqueueReleaseVA_APIMediaSurfacesINTEL |
static int |
nclGetDeviceIDsFromVA_APIMediaAdapterINTEL(long platform,
int media_adapter_type,
long media_adapter,
int media_adapter_set,
int num_entries,
long devices,
long num_devices)
Unsafe version of:
GetDeviceIDsFromVA_APIMediaAdapterINTEL |
public static final int CL_VA_API_DISPLAY_INTEL
media_adapter_type parameter of GetDeviceIDsFromVA_APIMediaAdapterINTEL.public static final int CL_PREFERRED_DEVICES_FOR_VA_API_INTEL
media_adapter_set parameter of GetDeviceIDsFromVA_APIMediaAdapterINTEL.public static final int CL_ALL_DEVICES_FOR_VA_API_INTEL
media_adapter_set parameter of GetDeviceIDsFromVA_APIMediaAdapterINTEL.public static final int CL_CONTEXT_VA_API_DISPLAY_INTEL
public static final int CL_MEM_VA_API_MEDIA_SURFACE_INTEL
param_name parameter of GetMemObjectInfo.public static final int CL_IMAGE_VA_API_PLANE_INTEL
param_name parameter of GetImageInfo.public static final int CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL
public static final int CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL
public static final int CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL
CreateContext and CreateContextFromType if the VA API display specified for interoperability is not compatible with the
devices against which the context is to be created.public static final int CL_INVALID_VA_API_MEDIA_SURFACE_INTEL
CreateFromVA_APIMediaSurfaceINTEL when surface is not a VA API surface of the required type, by GetMemObjectInfo when
param_name is MEM_VA_API_MEDIA_SURFACE_INTEL when memobj was not created from a VA API surface, and from GetImageInfo when
param_name is IMAGE_VA_API_PLANE_INTEL and image was not created from a VA API surface.public static final int CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL
EnqueueAcquireVA_APIMediaSurfacesINTEL when any of mem_objects are currently acquired by OpenCL.public static final int CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL
EnqueueReleaseVA_APIMediaSurfacesINTEL when any of mem_objects are not currently acquired by OpenCL.public static int nclGetDeviceIDsFromVA_APIMediaAdapterINTEL(long platform,
int media_adapter_type,
long media_adapter,
int media_adapter_set,
int num_entries,
long devices,
long num_devices)
GetDeviceIDsFromVA_APIMediaAdapterINTELnum_entries - the number of cl_device_id entries that can be added to devices. If devices is not NULL then num_entries must be greater
than zero.public static int clGetDeviceIDsFromVA_APIMediaAdapterINTEL(long platform,
int media_adapter_type,
long media_adapter,
int media_adapter_set,
@Nullable
org.lwjgl.PointerBuffer devices,
@Nullable
java.nio.IntBuffer num_devices)
platform - the platform ID returned by GetPlatformIDsmedia_adapter_type - the type of media_adapter. Must be:VA_API_DISPLAY_INTEL |
media_adapter - the media adapter whose corresponding OpenCL devices are being queriedmedia_adapter_set - one of:PREFERRED_DEVICES_FOR_VA_API_INTEL | ALL_DEVICES_FOR_VA_API_INTEL |
devices - returns a list of OpenCL devices found. The cl_device_id values returned in devices can be used to identify a specific OpenCL
device. If devices is NULL, this argument is ignored. The number of OpenCL devices returned is the minimum of the value specified by
num_entries and the number of OpenCL devices corresponding to media_adapter.num_devices - returns the number of OpenCL devices available that correspond to media_adapter. If num_devices is NULL, this argument is ignored.public static long nclCreateFromVA_APIMediaSurfaceINTEL(long context,
long flags,
long surface,
int plane,
long errcode_ret)
CreateFromVA_APIMediaSurfaceINTELpublic static long clCreateFromVA_APIMediaSurfaceINTEL(long context,
long flags,
java.nio.IntBuffer surface,
int plane,
@Nullable
java.nio.IntBuffer errcode_ret)
context - a valid OpenCL context created from a VA API displayflags - a bit-field that is used to specify usage information. One of:MEM_READ_ONLY | MEM_WRITE_ONLY | MEM_READ_WRITE |
surface - a pointer to the VA API surface to shareplane - the plane of surface to share, for planar formats. For non-planar formats, plane must be 0.errcode_ret - will return an appropriate error code. If errcode_ret is NULL, no error code is returned.public static int nclEnqueueAcquireVA_APIMediaSurfacesINTEL(long command_queue,
int num_objects,
long mem_objects,
int num_events_in_wait_list,
long event_wait_list,
long event)
EnqueueAcquireVA_APIMediaSurfacesINTELnum_objects - the number of memory objects to be acquired in mem_objects.num_events_in_wait_list - the number of events in event_wait_listpublic static int clEnqueueAcquireVA_APIMediaSurfacesINTEL(long command_queue,
org.lwjgl.PointerBuffer mem_objects,
@Nullable
org.lwjgl.PointerBuffer event_wait_list,
@Nullable
org.lwjgl.PointerBuffer event)
command_queue and can therefore be used by all command- queues associated with the OpenCL context.
OpenCL memory objects created from VA API surfaces must be acquired before they can be used by any OpenCL commands queued to a command-queue. If an
OpenCL memory object created from a VA API surface is used while it is not acquired by OpenCL, the call attempting to use that OpenCL memory object
will return VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL.
If CONTEXT_INTEROP_USER_SYNC is not specified as TRUE during context creation, clEnqueueAcquireVA_APIMediaSurfacesINTEL provides the
synchronization guarantee that any VA API calls made before clEnqueueAcquireVA_APIMediaSurfacesINTEL is called will complete executing before
event reports completion and before the execution of any subsequent OpenCL work issued in command_queue begins. If the context was
created with properties specifying CONTEXT_INTEROP_USER_SYNC as TRUE, the user is responsible for guaranteeing that any VA API calls
involving the interop device(s) used in the OpenCL context made before clEnqueueAcquireVA_APIMediaSurfacesINTEL is called have completed before
calling clEnqueueAcquireVA_APIMediaSurfacesINTEL.
command_queue - a valid command-queuemem_objects - a pointer to a list of OpenCL memory objects that were created from VA API surfacesevent_wait_list - a list of events that need to complete before this particular command can be executed. If event_wait_list is NULL, then this particular command
does not wait on any event to complete. The events specified in event_wait_list act as synchronization points. The context associated with events in
event_wait_list and command_queue must be the same.event - Returns an event object that identifies this particular command and can be used to query or queue a wait for this particular command to complete.
event can be NULL in which case it will not be possible for the application to query the status of this command or queue a wait for this command to
complete. If the event_wait_list and the event arguments are not NULL, the event argument should not refer to an element of the
event_wait_list array.public static int nclEnqueueReleaseVA_APIMediaSurfacesINTEL(long command_queue,
int num_objects,
long mem_objects,
int num_events_in_wait_list,
long event_wait_list,
long event)
EnqueueReleaseVA_APIMediaSurfacesINTELnum_objects - the number of memory objects to be released in mem_objectsnum_events_in_wait_list - the number of events in event_wait_listpublic static int clEnqueueReleaseVA_APIMediaSurfacesINTEL(long command_queue,
org.lwjgl.PointerBuffer mem_objects,
@Nullable
org.lwjgl.PointerBuffer event_wait_list,
@Nullable
org.lwjgl.PointerBuffer event)
command_queue.
OpenCL memory objects created from VA API surfaces which have been acquired by OpenCL must be released by OpenCL before they may be accessed by VA API. Accessing a VA API surface while its corresponding OpenCL memory object is acquired is in error and will result in undefined behavior, including but not limited to possible OpenCL errors, data corruption, and program termination.
If CONTEXT_INTEROP_USER_SYNC is not specified as TRUE during context creation, clEnqueueReleaseVA_APIMediaSurfacesINTEL provides the
synchronization guarantee that any VA API calls made after clEnqueueReleaseVA_APIMediaSurfacesINTEL is called will not start executing until
after all events in event_wait_list are complete and all work already submitted to command_queue completes execution. If the context
was created with properties specifying CONTEXT_INTEROP_USER_SYNC specified as TRUE, the user is responsible for guaranteeing that any VA API
calls involving the interop device(s) used in the OpenCL context made after clEnqueueReleaseVA_APIMediaSurfacesINTEL is called will not start
executing until after the event returned by clEnqueueReleaseVA_APIMediaSurfacesINTEL reports completion.
command_queue - a valid OpenCL context created from a VA API displaymem_objects - a pointer to a list of OpenCL memory objects that were created from VA API surfacesevent_wait_list - a list of events that need to complete before this particular command can be executed. If event_wait_list is NULL, then this particular command
does not wait on any event to complete. The events specified in event_wait_list act as synchronization points. The context associated with events in
event_wait_list and command_queue must be the same.event - Returns an event object that identifies this particular command and can be used to query or queue a wait for this particular command to complete.
event can be NULL in which case it will not be possible for the application to query the status of this command or queue a wait for this command to
complete. If the event_wait_list and the event arguments are not NULL, the event argument should not refer to an element of the
event_wait_list array.public static int clGetDeviceIDsFromVA_APIMediaAdapterINTEL(long platform,
int media_adapter_type,
long media_adapter,
int media_adapter_set,
@Nullable
org.lwjgl.PointerBuffer devices,
@Nullable
int[] num_devices)
GetDeviceIDsFromVA_APIMediaAdapterINTELpublic static long clCreateFromVA_APIMediaSurfaceINTEL(long context,
long flags,
int[] surface,
int plane,
@Nullable
int[] errcode_ret)
CreateFromVA_APIMediaSurfaceINTELCopyright LWJGL. All Rights Reserved. License terms.