Opened 3 years ago
Last modified 3 years ago
#10789 new enhancement
Videotoolbox decoder enhancements
| Reported by: | Fabio Lagalla | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avcodec |
| Version: | unspecified | Keywords: | videotoolbox decoder |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Enhancement 1
Decode session is created requesting OpenGL or OpenGL|ES compatibility.
That causes internal format conversion that adds an overhead.
It would be helpful to specify a flag to conditionally request OpenGL compatibility.
Enhancement 2
The call to VTDecompressionSessionWaitForAsynchronousFrames is likely to be redundant.
The decoder synchronizes pending work using VTDecompressionSessionWaitForAsynchronousFrames.
That blocks until all pending frames are processed.
However, the function could not be required as the call to VTDecompressionSessionDecodeFrame is done without kVTDecodeFrame_EnableAsynchronousDecompression bit.
That in turn implies the decode callback is called just before the decode function returns (see https://developer.apple.com/documentation/videotoolbox/vtdecodeframeflags/kvtdecodeframe_enableasynchronousdecompression?language=objc), which is the wanted behaviour.



Replying to Fabio Lagalla:
Sounds make sense. But I need some data to make code change. What's your test case that shows real difference between enable and disable OpenGL compatibility?