Init, Reset, and Close are member functions within the ENCODE, DECODE, and VPP classes that initialize, restart, and deinitialize specific operations defined for the class. Call all member functions of a given class within the Init - Reset - Close sequence, except Query and QueryIOSurf. Reset functions are optional within the sequence.
The Init and Reset member functions set up necessary internal structures for media processing. Init functions allocate memory and Reset functions only reuse allocated internal memory. If oneVPL needs to allocate additional memory, Reset can fail. Reset functions can also fine-tune ENCODE and VPP parameters during those processes or reposition a bitstream during DECODE.
All oneVPL functions return status codes to indicate if an operation succeeded
or failed. The
mfxStatus::MFX_ERR_NONE status code indicates
that the function successfully completed its operation. Error status codes are
mfxStatus::MFX_ERR_NONE and warning status codes are
mfxStatus::MFX_ERR_NONE. See the
mfxStatus enumerator for all defined status codes.
If a oneVPL function returns a warning, it has sufficiently completed its operation. Note that the output of the function might not be strictly reliable. The application must check the validity of the output generated by the function.
If a oneVPL function returns an error (except
mfxStatus::MFX_ERR_MORE_BITSTREAM), the function aborts the
operation. The application must call either the Reset function to reset the
class back to a clean state or the Close function to terminate the operation.
The behavior is undefined if the application continues to call any class member
functions without a Reset or Close. To avoid memory leaks, always call the
Close function after Init.