• Rodger Combs's avatar
    lavc/videotoolbox: fix threaded decoding · 63d87577
    Rodger Combs authored
    AVHWAccel.end_frame can run on a worker thread. The assumption of the
    frame threading code is that the worker thread will change the AVFrame
    image data, not the AVFrame fields. So the AVFrame fields are not synced
    back to the main thread. But this breaks videotoolbox due to its special
    requirements (everything else is fine). It actually wants to update
    AVFrame fields.
    
    The actual videotoolbox frame is now stored in the dummy AVBufferRef, so
    it mimics what happens in non-videotoolbox cases. (Changing the
    AVBufferRef contents is a bit like changing the image data.) The
    post_process callback copies that reference to the proper AVFrame field.
    
    Based on a patch by wm4.
    Signed-off-by: 's avatarAman Gupta <aman@tmm1.net>
    63d87577
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
ffbuild Loading commit data...
fftools Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
configure Loading commit data...