This extension provides a generic framework for establishing stream connections when the producer and consumer endpoints are not associated with the
same EGLStream object. The cross-process streams allowed by the KHR_stream_cross_process_fd extension are one example of such a
connection. Other potential examples include streams between objects associated with different EGLDisplays in a single process, streams between
processes residing in separate virtual machine partitions on a single system, or streams between entirely separate systems connected via the internet.
The approach used by KHR_stream_cross_process_fd has several drawbacks:
Rather than implement new connection types using this model, we propose a more generic approach that does not require a proliferation of new interfaces
and avoids any ambiguities in how the stream will be used. These extensions can coexist with KHR_stream_cross_process_fd, but allow for
more control of stream communication by the applications.
These extensions provide the framework with which arbitrary stream object pairs can be established, but by themselves are insufficient to create such
pairs. In addition, a separate extension must be used to determine the protocol by which the two objects will communicate. See for example the
NV_stream_socket extension.
Several optional types of separate stream objects are defined, with successive levels of remoteness. It should be assumed that a more remote type will be less efficient in transfering images, and therefore applications should choose the least remote type available that is compatible with their use cases.
Requires KHR_stream.
| Access | Constructor and Description |
|---|---|
| private |
| EGL_STREAM_CONSUMER_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_CONSUMER_NV Accepted by | |
| EGL_STREAM_CROSS_DISPLAY_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_CROSS_DISPLAY_NV When | |
| EGL_STREAM_CROSS_OBJECT_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_CROSS_OBJECT_NV When | |
| EGL_STREAM_CROSS_PARTITION_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_CROSS_PARTITION_NV When | |
| EGL_STREAM_CROSS_PROCESS_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_CROSS_PROCESS_NV When | |
| EGL_STREAM_CROSS_SYSTEM_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_CROSS_SYSTEM_NV When | |
| EGL_STREAM_ENDPOINT_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_ENDPOINT_NV Accepted as attribute names in | |
| EGL_STREAM_LOCAL_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_LOCAL_NV Accepted by | |
| EGL_STREAM_PRODUCER_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_PRODUCER_NV Accepted by | |
| EGL_STREAM_PROTOCOL_FD_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_PROTOCOL_FD_NV If | |
| EGL_STREAM_PROTOCOL_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_PROTOCOL_NV Accepted as attribute names in | |
| EGL_STREAM_STATE_INITIALIZING_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_STATE_INITIALIZING_NV Returned by | |
| EGL_STREAM_TYPE_NV | back to summary |
|---|---|
| public static final int EGL_STREAM_TYPE_NV Accepted as attribute names in | |
| NVStreamRemote | back to summary |
|---|---|
| private NVStreamRemote() | |