NVDEC_VIdeoDecoder_API_ProgGuide
VIDEO DECODER PIPELINE
使用 UVDECODEAPI 解码任何 Video context的步骤:
- Create a CUDA context // 创建一个CUDA上下文
- Query the decode capabilities of the hardware decoder. // 查询硬解码器的解码能力
- Create the decoder instance(s). // 创建解码器的实例化对象
- De-Mux the content (like .mp4). This can be done using third party software like FFMPEG. // 解封装,可以使用FFMPEG 这种第三方软件
- Parse the video bitstream using third party parser like FFMPEG // 使用FFMPEG这类软件解析视频流
- Kick off the Decoding using NVDECODE API. // 调用NVDECODE API开始解码
- Obtain the decoded YUV for further processing // 获得解码后的YUV 为后续处理
- Query the status of the decoded frame // 查询解码帧的状态
- Depending on the decoding status, use the decoded output for further processing like rendering, inferencing, postprocessing etc. // 根据解码状态,进行后续处理,如渲染,后处理等。
- If application needs to display the output, // 若需要显示
- Convert decoded YUV surface to RGBA // 将YUV转成RGBA
- Map RGBA surface to DirectX or OpenGL texture. // 将RGBA映射为DirectX或OpenGL纹理
- Draw texture to screen. // 画纹理
- Destroy the decoder instance(s) after the completion of decoding process // 在完成解码之后销毁解码器实例化对象
- Destroy the CUDA context // 销毁CUDA上下文