15 #ifndef _NVMEDIA_EGLSTREAM_H
16 #define _NVMEDIA_EGLSTREAM_H
27 #include <EGL/eglext.h>
40 #define NVMEDIA_EGLSTREAM_VERSION_MAJOR 1
42 #define NVMEDIA_EGLSTREAM_VERSION_MINOR 3
48 #define NVMEDIA_EGL_STREAM_TIMEOUT_INFINITE 0xFFFFFFFF
97 EGLDisplay eglDisplay,
98 EGLStreamKHR eglStream,
120 #define NVMEDIA_EGL_STREAM_PRODUCER_ATTRIBUTE_MULTISEND (1 << 0)
147 uint32_t attributeMask,
217 uint32_t millisecondTimeout
282 uint32_t millisecondTimeout,
305 #define NvMediaVideoSurfaceStreamProducerCreate NvMediaEglStreamProducerCreate
307 #define NvMediaVideoSurfaceStreamProducerDestroy NvMediaEglStreamProducerDestroy
309 #define NvMediaPostSurface NvMediaEglStreamProducerPostSurface
311 #define NvMediaGetSurface NvMediaEglStreamProducerGetSurface
313 #define NvMediaEglConsumerCreate NvMediaEglStreamConsumerCreate
315 #define NvMediaEglConsumerDestroy NvMediaEglStreamConsumerDestroy
317 #define NvMediaEglConsumerSurfaceAcquire NvMediaEglStreamConsumerAcquireSurface
319 #define NvMediaEglConsumerSurfaceRelease NvMediaEglStreamConsumerReleaseSurface
386 uint32_t millisecondTimeout
409 uint32_t millisecondTimeout,
void NvMediaEglStreamProducerSetAttributes(NvMediaEGLStreamProducer *producer, uint32_t attributeMask, NvMediaEglStreamProducerAttributes *attributes)
Changes attributes of an NvMediaEGLStreamProducer.
#define NvMediaSurfaceType
Defines the set of NvMedia surface types.
uint32_t NvMediaBool
A boolean value, holding NVMEDIA_TRUE or NVMEDIA_FALSE.
NvMediaStatus NvMediaEglStreamGetVersion(NvMediaVersion *version)
Get the version compatibility for the NvMedia EGLStream library.
NvMediaStatus NvMediaEglStreamProducerGetImage(NvMediaEGLStreamProducer *producer, NvMediaImage **image, uint32_t millisecondTimeout)
Retrieves an image that was sent to an EGL stream using the NvMediaEglStreamProducerPostImage functio...
NvMediaStatus NvMediaEglStreamConsumerReleaseImage(NvMediaEGLStreamConsumer *consumer, NvMediaImage *image)
Releases an image that was received by the NvMediaEglStreamConsumerAcquireImage function.
struct timespec NvMediaTime
Holds the media time (timespec as defined by the POSIX specification).
struct NvMediaDevice NvMediaDevice
An opaque handle representing an NvMediaDevice object.
NvMediaStatus NvMediaEglStreamConsumerAcquireMetaData(NvMediaEGLStreamConsumer *consumer, uint32_t blockIdx, void *dataBuf, uint32_t offset, uint32_t size)
Acquires specified metadata block that was sent by an EGL stream producer.
NvMediaStatus NvMediaEglStreamConsumerAcquireSurface(NvMediaEGLStreamConsumer *consumer, NvMediaVideoSurface **surface, uint32_t millisecondTimeout, NvMediaTime *timeStamp)
Acquires a surface that was sent by an EGL stream producer.
NvMediaStatus NvMediaEglStreamProducerPostSurface(NvMediaEGLStreamProducer *producer, NvMediaVideoSurface *surface, NvMediaTime *timeStamp)
Posts a surface to be sent to an EGL stream connection.
NvMediaStatus
Defines all possible error codes.
NvMediaEGLStreamProducer * NvMediaEglStreamProducerCreate(NvMediaDevice *device, EGLDisplay eglDisplay, EGLStreamKHR eglStream, NvMediaSurfaceType type, EGLint width, EGLint height)
Creates an EGL stream producer object.
struct NvMediaEGLStreamProducer NvMediaEGLStreamProducer
A handle representing an EGL stream producer object.
int uint32_t uint32_t height
NvMediaEGLStreamConsumer * NvMediaEglStreamConsumerCreate(NvMediaDevice *device, EGLDisplay dpy, EGLStreamKHR stream, NvMediaSurfaceType type)
Creates an EGL stream consumer object.
NvMediaStatus NvMediaEglStreamConsumerReleaseSurface(NvMediaEGLStreamConsumer *consumer, NvMediaVideoSurface *surface)
Releases a surface that was received by the NvMediaEglStreamConsumerAcquireSurface function...
NvMediaStatus NvMediaEglStreamConsumerAcquireImage(NvMediaEGLStreamConsumer *consumer, NvMediaImage **image, uint32_t millisecondTimeout, NvMediaTime *timeStamp)
Acquire an image that was sent by an EGL stream producer.
void NvMediaEglStreamConsumerDestroy(NvMediaEGLStreamConsumer *consumer)
Destroys an EGL stream consumer object.
NvMediaStatus NvMediaEglStreamProducerGetSurface(NvMediaEGLStreamProducer *producer, NvMediaVideoSurface **surface, uint32_t millisecondTimeout)
Retrieves a surface that was sent to an EGL stream using the NvMediaEglStreamProducerPostSurface func...
struct NvMediaEGLStreamConsumer NvMediaEGLStreamConsumer
A handle representing an EGL stream consumer object.
void NvMediaEglStreamProducerDestroy(NvMediaEGLStreamProducer *producer)
Destroys an EGL stream producer object.
NvMediaStatus NvMediaEglStreamProducerPostMetaData(NvMediaEGLStreamProducer *producer, uint32_t blockIdx, const void *dataBuf, uint32_t offset, uint32_t size)
Posts a block of metadata to be sent to an EGL stream connection.
NvMediaStatus NvMediaEglStreamProducerPostImage(NvMediaEGLStreamProducer *producer, NvMediaImage *image, NvMediaTime *timeStamp)
Posts an image to be sent to an EGL stream connection.