NvMedia documentation issues

I thought I’d bring up some issues and inconsistencies I found in the NvMedia documentation while using it, so they can be fixed and no one has to waste as many hours as I had to.

  1. Unclear meaning of NvMediaBitstreamBuffer members
    Current descriptions are very roundabout and unclear when used with NvMediaIEPGetBitsEx().
    It’s not obvious which parameters the user should provide and which the call itself writes to.
    It would be helpful to expand on the descriptions and clarify which are in/out parameters.

From trial-and-error:

  • NvMediaBitstreamBuffer::bitstream is an user-provided pointer to an output buffer.
  • NvMediaBitstreamBuffer::bitstreamBytes is the number of bytes actually written by the call (out parameter).
  • NvMediaBitstreamBuffer::bitstreamSize is the maximum number of bytes that can be written (aka the size of the user-provided buffer).
  1. NvMediaIEPGetBitsEx() refers to a parameter named buffer, which doesn’t exist.

[…] NVMEDIA_STATUS_OK is returned, the buffer is filled […]

  1. NvMediaIEPBitsAvailable() has duplicate NVMEDIA_STATUS_NONE_PENDING return value explanations

  2. NvMediaIEPFeedFrame() can return NVMEDIA_STATUS_ERROR
    If NVMEDIA_ENCODER_INSTANCE_AUTO was passed to NvMediaIEPCreate() and NVMEDIA_ENCODER_INSTANCE_AUTO is also passed to NvMediaIEPFeedFrame().
    This behaviour doesn’t seem to be documented. Took me 10h to figure out.

  3. NvMediaEncodeInitializeParamsH264::enableROIEncode deprecated?
    Per comment at nvmedia_core.h:407 NvMediaROI has been removed. I can’t find anything else related to ROI either.
    Has ROI support for encoding been removed/deprecated? If so, the enableROIEncode documentation should mention this.

  4. NvMediaEncoder H265 support (separate thread)

2 Likes

Hello @raul.tambre

Thank you for the post, we much appreciate bringing to out attention any documentation problem we have.
we will look into it.

1 Like