• Nicolas George's avatar
    lavd/xcbgrab: do not try to create refcounted packets. · 0bd1be65
    Nicolas George authored
    The framework will allocate a buffer and copy the data to it,
    that takes time. But it avoids constently creating and
    destroyng the shared memory segment, and that saves more time.
    
    On my setup,
    from ~200 to ~300 FPS at full screen (1920×1200),
    from ~1400 to ~3300 at smaller size (640×480),
    similar to legacy x11grab and confirmed by others.
    
    Plus, shared memory segments are a scarce resource,
    allocating potentially many is a bad idea.
    
    Note: if the application were to drop all references to the
    buffer before the next call to av_read_frame(), then passing
    the shared memory segment as a refcounted buffer would be
    even more efficient, but it is hard to guarantee, and it does
    not happen with the ffmpeg command-line tool. Using a small
    number of preallocated buffers and resorting to a copy when
    the pool is exhausted would be a solution to get the better
    of both worlds.
    0bd1be65
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...
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...
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...