Crate videostream_sys

source ·

Structs

Functions

  • Disconnects from the VSLHost and stops all reconnection attempts. This should be called as part of closing down a VSL client session. It is thread-safe unlike vsl_client_release which disposes of the client object.
  • Creates a client and connects to the host at the provided path. If the connection cannot be made NULL is returned and errno is set.
  • Returns the path on which the client has connected to the host.
  • Releases the client, disconnecting from the host and releasing allocated memory.
  • Sets the socket timeout for this client.
  • Returns the optional userptr associated with this client connection.
  • Returns the decode timestamp for this frame in nanoseconds.
  • Returns the duration for this frame in nanoseconds.
  • Returns the epiration time for this frame in milliseconds.
  • Returns the FOURCC code for the video frame.
  • Returns the file descriptor for this frame or -1 if none is associated.
  • Returns the height in pixels of the video frame.
  • Maps the frame into the process’ memory space, optionally also sets the size of the frame if @param size is non-NULL. Ensure the frame is unmapped when no longer needed using @ref nn_frame_munmap().
  • Maps the frame into the process’ memory space, optionally also sets the size of the frame if @param size is non-NULL.
  • Returns the physical address of the frame. If the frame does not support DMA then MMAP_FAILED is returned.
  • Returns the presentation timestamp for this frame in nanoseconds.
  • Registers the video frame along with optional user pointer to any arbitrary data. Typically it would be used for holding a reference to the host’s view of the frame handle.
  • Releases a client side frame and frees any allocated memory. You should first unmap and unlock the video frame before releasing it.
  • Returns the serial frame count of the video frame.
  • Associate userptr with this frame.
  • Returns the size in bytes of the video frame.
  • Returns the timestamp for this frame in nanoseconds.
  • Attempts to lock the video frame.
  • Attempts to unlock the video frame.
  • Unregisters the frame, removing it from the host pool.
  • Returns the user pointer associated with this frame.
  • Waits for a frame to arrive and returns a new frame object. Frames who’s timestamp is less than @param until will be ignored.
  • Returns the width in pixels of the video frame.
  • Creates a host on the requested path. If the path is unavailable because of permissions or already exists then NULL is returned and errno is set.
  • Returns the bound path of the host.
  • Polls the list of available connections in our pool. If @param wait is >0 then poll will timeout after @param wait milliseconds. Note frames are only expired by the @ref vsl_host_process function so the @param wait parameter should be some value no greater than the desired expiration time.
  • Process the host tasks by first expiring old frames and then servicing the first available connection in our pool. This function should be called in a loop, generally blocked by @ref vsl_host_poll.
  • Releases the host, disconnecting all clients and releasing any allocated memory.
  • Services the client socket.
  • Request a copy of the sockets managed by the host. There will always be at least one socket which is the connection socket which accepts new connections. Up to n_sockets socket descriptors will be copied into the sockets buffer, if n_sockets is fewer than the number of available sockets errno will be set to ENOBUFS. The n_socket parameter, if provided, will be populated with a value of n_clients+1 which can be used to query required space for the sockets buffer. It is suggested to provide a buffer which is larger than max_sockets to avoid race conditions where the number of sockets changes between calls to this function.
  • Returns the VideoStream Library version.

Type Definitions

  • The VSLClient object manages a single connection to a VSLHost.
  • The VSLFrame object represents a single video frame from either the host or client perspective. Certain API are only available to the host or client.
  • The VSLHost object manages a connection point at the user-defined path and allows frames to be registered for client use.
  • Function pointer definition which will be called as part of @ref vsl_frame_unregister. This is typically used to free resources associated with the frame on either client or host side.