ffmpeg/libavdevice
Nicolas George 0bd1be65e8 lavd/xcbgrab: do not try to create refcounted packets.
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.
2016-11-03 21:23:55 +01:00
..
tests Merge commit 'a6a750c7ef240b72ce01e9653343a0ddf247d196' 2016-06-22 13:44:34 +02:00
Makefile lavd: drop SDL1 device and SDL1 support 2016-09-24 16:52:40 +01:00
alldevices.c lavd: drop SDL1 device and SDL1 support 2016-09-24 16:52:40 +01:00
alsa.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
alsa.h avdevice/alsa: add av_warn_unused_result 2015-10-16 07:54:36 -04:00
alsa_dec.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
alsa_enc.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
avdevice.c
avdevice.h doxygen: Standardize root-level modules 2016-08-02 22:15:25 -07:00
avdeviceres.rc
avfoundation.m avdevice: Fix max value of AV_OPT_TYPE_VIDEO_RATE 2016-06-09 10:34:42 +02:00
bktr.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
caca.c avdevice/caca: switch to codecpar 2016-04-11 01:34:02 +02:00
decklink_common.cpp decklink: enhancement: format selection with AVRational v2 2016-08-05 21:33:43 +02:00
decklink_common.h lavd/decklink_dec: add option to disable drawing bars on signal loss 2016-10-21 20:24:12 +02:00
decklink_common_c.h lavd/decklink_dec: add option to disable drawing bars on signal loss 2016-10-21 20:24:12 +02:00
decklink_dec.cpp lavd/decklink_dec: fix indentation 2016-10-21 20:24:12 +02:00
decklink_dec.h cosmetics: Correct comments in decklink_dec 2016-08-02 13:01:12 -07:00
decklink_dec_c.c lavd/decklink_dec: add option to disable drawing bars on signal loss 2016-10-21 20:24:12 +02:00
decklink_enc.cpp decklink: Remove unneeded spaces in initializers 2016-08-02 22:46:28 -07:00
decklink_enc.h all: Add missing header guards 2016-01-28 19:49:48 -08:00
decklink_enc_c.c
dshow.c dshow: avoid duplicate NULL check before free 2016-06-23 03:18:16 +02:00
dshow_capture.h dshow: don't add two instances of same device to graphs 2016-06-23 03:18:16 +02:00
dshow_common.c
dshow_crossbar.c lavd/dshow_crossbar: remove trailing whitespace 2016-03-28 13:31:38 -08:00
dshow_enummediatypes.c avdevice/dshow_enummediatypes: check return of av_malloc 2015-11-06 09:36:57 -05:00
dshow_enumpins.c
dshow_filter.c avdevice/dshow: satisfy alloc contract better 2016-08-20 12:06:50 +02:00
dshow_pin.c
dv1394.c cosmetics: fix some misspelled words 2016-07-17 13:10:27 -03:00
dv1394.h
fbdev_common.c
fbdev_common.h
fbdev_dec.c avdevice: Fix max value of AV_OPT_TYPE_VIDEO_RATE 2016-06-09 10:34:42 +02:00
fbdev_enc.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
file_open.c
gdigrab.c avdevice: Fix max value of AV_OPT_TYPE_VIDEO_RATE 2016-06-09 10:34:42 +02:00
iec61883.c
internal.h avdevice/internal: add av_warn_unused_result 2015-10-16 17:28:40 -04:00
jack.c avdev/jack: remove duplicated dispatch macros 2016-07-26 23:10:47 +01:00
lavfi.c avdevice/lavfi: Do not set avg_frame_rate to the timebase 2016-06-04 02:10:10 +02:00
libavdevice.v Merge commit '535a742c2695a9e0c586b50d7fa76e318232ff24' 2016-06-27 17:56:47 +02:00
libcdio.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
libdc1394.c lavd/libdc1394: distinguish between enumeration errors and no cameras found 2016-07-25 19:39:13 +02:00
openal-dec.c lavd/openal: don't return zero sized packet if no samples are available 2016-10-03 21:15:48 +02:00
opengl_enc.c lavd/opengl: use SDL2 2016-09-24 16:50:40 +01:00
opengl_enc_shaders.h all: Make header guard names consistent 2016-01-31 15:44:11 -08:00
oss.c
oss.h
oss_dec.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
oss_enc.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
pulse_audio_common.c
pulse_audio_common.h avdevice/pulse_audio_common: add av_warn_unused_result 2015-10-22 19:03:50 -04:00
pulse_audio_dec.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
pulse_audio_enc.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
qtkit.m
sdl2.c lavd/sdl2: add sdl alias 2016-09-25 18:08:06 +01:00
sndio.c
sndio.h
sndio_dec.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
sndio_enc.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
timefilter.c Merge commit 'd12b5b2f135aade4099f4b26b0fe678656158c13' 2016-05-11 19:13:03 +01:00
timefilter.h
utils.c
v4l.c
v4l2-common.c
v4l2-common.h
v4l2.c Merge commit '11de006babf735aafa3462d43dd2c02bb6ac6e2f' 2016-06-22 17:36:42 +02:00
v4l2enc.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00
version.h Bump minor versions after 3.2 branchpoint to seperate release 2016-10-26 20:52:42 +02:00
vfwcap.c Merge commit '5afb94c817abffad030c6b94d7003dca8aace3d5' 2016-06-21 22:09:35 +02:00
x11grab.c Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb' 2016-06-21 21:55:34 +02:00
xcbgrab.c lavd/xcbgrab: do not try to create refcounted packets. 2016-11-03 21:23:55 +01:00
xv.c Merge commit '9200514ad8717c63f82101dc394f4378854325bf' 2016-04-10 20:59:55 +01:00