ffmpeg/libavdevice
Calvin Walton 08909fb56b Add Win32 GDI-based screen grabbing
Based on original code by Christophe Gisquet in 2010, updated to work
with current ffmpeg APIs.

Supports grabbing a single window or an area of the screen, including
support for multiple monitors (Windows does funky stuff with negative
coordinates here).

I've moved most of the configuration to AVOptions; the input file name
is now only the string "desktop", or "title=<windowname>" to select a
single window. The AVOptions are the same as x11grab where possible.

Code has been added to support a "show_region" mode, like x11grab, which
will draw a rectangle on the screen around the area being captured.

Instead of duplicating code for paletted image handling, I make use of
the GDI API's ability to output DIB (BMP) images, which can be run
through ffmpeg's existing BMP decoder.

Signed-off-by: Calvin Walton <calvin.walton@kepstin.ca>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-03 00:41:45 +02:00
..
alldevices.c Add Win32 GDI-based screen grabbing 2014-04-03 00:41:45 +02:00
alsa-audio-common.c lavd/alsa: simplify reordering functions definition. 2013-02-02 14:13:11 +01:00
alsa-audio-dec.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
alsa-audio-enc.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
alsa-audio.h lavd/alsa: fix timestamp calculation 2013-11-03 10:28:15 +01:00
avdevice.c lavd/avdevice: always free detected devices on error 2014-03-06 00:34:50 +01:00
avdevice.h lavd/avdevice: add device iterators 2014-03-03 23:39:07 +01:00
avdeviceres.rc Add Windows resource file support for shared libraries 2013-12-05 23:42:07 +01:00
bktr.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
caca.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
decklink_enc_c.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
decklink_enc.cpp lavd: add decklink output device 2014-02-09 17:15:19 +01:00
decklink_enc.h lavd: add decklink output device 2014-02-09 17:15:19 +01:00
dshow_capture.h dshow: show device name when outputting buffer overflow log message 2014-03-28 00:22:55 +01:00
dshow_common.c
dshow_enummediatypes.c dshow: fixup some COM objects, based on patches from Don Moir 2014-03-31 23:11:35 +02:00
dshow_enumpins.c
dshow_filter.c dshow: Use NO_DSHOW_STRSAFE for all dshow header inclusions 2012-11-16 19:26:13 +01:00
dshow_pin.c dshow: show device name when outputting buffer overflow log message 2014-03-28 00:22:55 +01:00
dshow.c dshow: show device name when outputting buffer overflow log message 2014-03-28 00:22:55 +01:00
dv1394.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
dv1394.h miscellaneous typo fixes 2012-12-21 00:18:34 +01:00
fbdev_common.c lavd/fbdev_enc: add default device 2013-12-06 19:15:47 +01:00
fbdev_common.h lavd/fbdev_enc: add default device 2013-12-06 19:15:47 +01:00
fbdev_dec.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
fbdev_enc.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
file_open.c libavutil: Make avpriv_open a library-internal function on msvcrt 2013-08-10 00:53:33 +03:00
gdigrab.c Add Win32 GDI-based screen grabbing 2014-04-03 00:41:45 +02:00
iec61883.c Fix pthread-related compile errors in iec61883.c 2014-03-05 22:19:33 +01:00
jack_audio.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
lavfi.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
libavdevice.v
libcdio.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
libdc1394.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
Makefile Add Win32 GDI-based screen grabbing 2014-04-03 00:41:45 +02:00
openal-dec.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
opengl_enc_shaders.h lavd/opengl_enc_shaders: fix gray* shader 2014-02-16 19:56:53 +01:00
opengl_enc.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
oss_audio.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
pulse_audio_common.c lavd/pulse_audio_common: add device detecting code 2014-03-29 09:48:56 +01:00
pulse_audio_common.h lavd/pulse_audio_common: add device detecting code 2014-03-29 09:48:56 +01:00
pulse_audio_dec.c lavd/pulse_audio_dec: implement get_device_list callback 2014-03-29 09:54:09 +01:00
pulse_audio_enc.c lavd/pulse_audio_enc: implement get_device_list callback 2014-03-29 09:54:16 +01:00
qtkit.m lavd/qtkit: Support choosing the input device by index or by name. 2014-04-02 22:40:32 +02:00
sdl.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
sndio_common.c Merge commit '36ef5369ee9b336febc2c270f8718cec4476cb85' 2012-08-07 22:45:46 +02:00
sndio_common.h Merge remote-tracking branch 'qatar/master' 2012-10-06 13:45:08 +02:00
sndio_dec.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
sndio_enc.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
timefilter.c timefilter: Handle memory allocation failure 2013-10-29 11:40:04 +00:00
timefilter.h timefilter: Handle memory allocation failure 2013-10-29 11:40:04 +00:00
v4l2-common.c Add more Bayer colour spaces to the video4linux2 device wrapper. 2014-02-23 13:42:41 +01:00
v4l2-common.h lavd/v4l2: move pixel format conversion code to a separate place. 2013-05-20 01:11:28 +02:00
v4l2.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
v4l2enc.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
v4l.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
version.h lavd/avdevice: add device iterators 2014-03-03 23:39:07 +01:00
vfwcap.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
x11grab.c lavd: add categories to device implementations 2014-03-03 23:34:46 +01:00
xv.c lavd/xv: take aspect ratio into account. 2014-03-08 12:29:32 +01:00