• Philip Langdale's avatar
    cuvid: Implement flush to support seeking in media players · 86910b15
    Philip Langdale authored
    Right now, if we attempt to use cuvid in a media player and then
    try to seek, the decoder will happily pass out whatever frames were
    already in flight before the seek.
    
    There is both the output queue in our code and some number of frames
    within the cuvid decoder that need to be accounted for.
    
    cuvid doesn't support flush, so our only choice is to do a brute-force
    re-creation of the decoder, which also implies re-creating the parser,
    but this is fine.
    
    The only subtlty is that there is sanity check code in decoder
    initialisation that wants to make sure the HWContextFrame hasn't already
    been initialised. This is a fair check to do at the beginning but not
    after a flush, so it has to be made conditional.
    Signed-off-by: 's avatarPhilip Langdale <philipl@overt.org>
    Signed-off-by: 's avatarTimo Rothenpieler <timo@rothenpieler.org>
    86910b15
Name
Last commit
Last update
compat Loading commit data...
doc 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...
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...
arch.mak Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_common_opts.h Loading commit data...
cmdutils_opencl.c Loading commit data...
common.mak Loading commit data...
configure Loading commit data...
ffmpeg.c Loading commit data...
ffmpeg.h Loading commit data...
ffmpeg_cuvid.c Loading commit data...
ffmpeg_dxva2.c Loading commit data...
ffmpeg_filter.c Loading commit data...
ffmpeg_opt.c Loading commit data...
ffmpeg_qsv.c Loading commit data...
ffmpeg_vaapi.c Loading commit data...
ffmpeg_vdpau.c Loading commit data...
ffmpeg_videotoolbox.c Loading commit data...
ffplay.c Loading commit data...
ffprobe.c Loading commit data...
ffserver.c Loading commit data...
ffserver_config.c Loading commit data...
ffserver_config.h Loading commit data...
library.mak Loading commit data...
version.sh Loading commit data...