Opened 4 months ago

Last modified 4 months 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.

Change History (1)

in reply to:  description comment:1 by quinkblack, 4 months ago

Replying to Fabio Lagalla:

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.

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?

Note: See TracTickets for help on using tickets.