Age | Commit message (Collapse) | Author |
|
Also fixes a possible overflow and sets stream bitrate.
Signed-off-by: Marton Balint <cus@passwd.hu>
|
|
pixfmt_from_pixmap_format to create_stream
Signed-off-by: Marton Balint <cus@passwd.hu>
|
|
Signed-off-by: Marton Balint <cus@passwd.hu>
|
|
Since 648b8cca6c56a4fa1760efc72dfe1363a5c6e31e and
c991e9cd91845044e93a9c89dd25b48ae707461b timestamps were not set properly.
Signed-off-by: Marton Balint <cus@passwd.hu>
|
|
Also by wrapping the SHM buffer in an AVBufferRef we eliminate yet another
possible memcpy improving performance.
Signed-off-by: Marton Balint <cus@passwd.hu>
|
|
This avoids a memcpy improving performance if SHM is not used.
Signed-off-by: Marton Balint <cus@passwd.hu>
|
|
Fix a NULL dereference and leaks.
Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp>
Signed-off-by: Marton Balint <cus@passwd.hu>
|
|
There is a calculation error in xcbgrab_reposition() that breaks
vertical repositioning on follow_mouse. It made the bottom
reposition occur when moving the mouse lower than N pixels after
the capture bottom edge, instead of before.
This commit fixes the calculation to match the documentation.
follow_mouse: centered or number of pixels. The documentation says:
When it is specified with "centered", the grabbing region follows
the mouse pointer and keeps the pointer at the center of region;
otherwise, the region follows only when the mouse pointer reaches
within PIXELS (greater than zero) to the edge of region.
|
|
Signed-off-by: Marton Balint <cus@passwd.hu>
|
|
* commit '67deba8a416d818f3d95aef0aa916589090396e2':
Use avpriv_report_missing_feature() where appropriate
Merged-by: Clément Bœsch <cboesch@gopro.com>
|
|
* commit '5ed4644d6de7f6112431dc2d9a5cfe9a0a75a688':
x11grab: Rename internal component to "xcbgrab"
Merged-by: Clément Bœsch <u@pkh.me>
|
|
|
|
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.
|
|
|
|
* commit '9200514ad8717c63f82101dc394f4378854325bf':
lavf: replace AVStream.codec with AVStream.codecpar
This has been a HUGE effort from:
- Derek Buitenhuis <derek.buitenhuis@gmail.com>
- Hendrik Leppkes <h.leppkes@gmail.com>
- wm4 <nfxjfg@googlemail.com>
- Clément Bœsch <clement@stupeflix.com>
- James Almer <jamrial@gmail.com>
- Michael Niedermayer <michael@niedermayer.cc>
- Rostislav Pehlivanov <atomnuker@gmail.com>
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
|
|
Currently, AVStream contains an embedded AVCodecContext instance, which
is used by demuxers to export stream parameters to the caller and by
muxers to receive stream parameters from the caller. It is also used
internally as the codec context that is passed to parsers.
In addition, it is also widely used by the callers as the decoding (when
demuxer) or encoding (when muxing) context, though this has been
officially discouraged since Libav 11.
There are multiple important problems with this approach:
- the fields in AVCodecContext are in general one of
* stream parameters
* codec options
* codec state
However, it's not clear which ones are which. It is consequently
unclear which fields are a demuxer allowed to set or a muxer allowed to
read. This leads to erratic behaviour depending on whether decoding or
encoding is being performed or not (and whether it uses the AVStream
embedded codec context).
- various synchronization issues arising from the fact that the same
context is used by several different APIs (muxers/demuxers,
parsers, bitstream filters and encoders/decoders) simultaneously, with
there being no clear rules for who can modify what and the different
processes being typically delayed with respect to each other.
- avformat_find_stream_info() making it necessary to support opening
and closing a single codec context multiple times, thus
complicating the semantics of freeing various allocated objects in the
codec context.
Those problems are resolved by replacing the AVStream embedded codec
context with a newly added AVCodecParameters instance, which stores only
the stream parameters exported by the demuxers or read by the muxers.
|
|
This patch fixes a -Wunused-variable reported in e.g
http://fate.ffmpeg.org/log.cgi?time=20150918194649&log=compile&slot=x86_64-debian-asan-144800.
av_unused is used as opposed to a header guard for readability.
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
* commit '059a934806d61f7af9ab3fd9f74994b838ea5eba':
lavc: Consistently prefix input buffer defines
Conflicts:
doc/examples/decoding_encoding.c
libavcodec/4xm.c
libavcodec/aac_adtstoasc_bsf.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.h
libavcodec/asvenc.c
libavcodec/avcodec.h
libavcodec/avpacket.c
libavcodec/dvdec.c
libavcodec/ffv1enc.c
libavcodec/g2meet.c
libavcodec/gif.c
libavcodec/h264.c
libavcodec/h264_mp4toannexb_bsf.c
libavcodec/huffyuvdec.c
libavcodec/huffyuvenc.c
libavcodec/jpeglsenc.c
libavcodec/libxvid.c
libavcodec/mdec.c
libavcodec/motionpixels.c
libavcodec/mpeg4videodec.c
libavcodec/mpegvideo.c
libavcodec/noise_bsf.c
libavcodec/nuv.c
libavcodec/nvenc.c
libavcodec/options.c
libavcodec/parser.c
libavcodec/pngenc.c
libavcodec/proresenc_kostya.c
libavcodec/qsvdec.c
libavcodec/svq1enc.c
libavcodec/tiffenc.c
libavcodec/truemotion2.c
libavcodec/utils.c
libavcodec/utvideoenc.c
libavcodec/vc1dec.c
libavcodec/wmalosslessdec.c
libavformat/adxdec.c
libavformat/aiffdec.c
libavformat/apc.c
libavformat/apetag.c
libavformat/avidec.c
libavformat/bink.c
libavformat/cafdec.c
libavformat/flvdec.c
libavformat/id3v2.c
libavformat/isom.c
libavformat/matroskadec.c
libavformat/mov.c
libavformat/mpc.c
libavformat/mpc8.c
libavformat/mpegts.c
libavformat/mvi.c
libavformat/mxfdec.c
libavformat/mxg.c
libavformat/nutdec.c
libavformat/oggdec.c
libavformat/oggparsecelt.c
libavformat/oggparseflac.c
libavformat/oggparseopus.c
libavformat/oggparsespeex.c
libavformat/omadec.c
libavformat/rawdec.c
libavformat/riffdec.c
libavformat/rl2.c
libavformat/rmdec.c
libavformat/rtpdec_latm.c
libavformat/rtpdec_mpeg4.c
libavformat/rtpdec_qdm2.c
libavformat/rtpdec_svq3.c
libavformat/sierravmd.c
libavformat/smacker.c
libavformat/smush.c
libavformat/spdifenc.c
libavformat/takdec.c
libavformat/tta.c
libavformat/utils.c
libavformat/vqf.c
libavformat/westwood_vqa.c
libavformat/xmv.c
libavformat/xwma.c
libavformat/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
|
|
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
|
|
Found-By: Cheristheus
|
|
Signed-off-by: Nicolas George <george@nsup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
|
|
Introduced in e8c4db0d4d077.
|
|
* commit 'e8c4db0d4d07738fed716b1d2f20c85aac944641':
xcbgrab: Validate the capture area
Merged-by: Michael Niedermayer <michaelni@gmx.at>
|
|
* commit '82a10225f817b2612fdd2b23af9d4f0a3408df3b':
xcbgrab: Do not assume the non shm image data is always available
Merged-by: Michael Niedermayer <michaelni@gmx.at>
|
|
And notify why the capture is impossible.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
* commit 'c201069fac9a76e6604f9d84d76a172434d62200':
avdevice: Add missing header for NULL_IF_CONFIG_SMALL
Conflicts:
libavdevice/alsa-audio-dec.c
libavdevice/alsa-audio-enc.c
libavdevice/pulse_audio_dec.c
libavdevice/sndio_enc.c
libavdevice/vfwcap.c
libavdevice/x11grab.c
libavdevice/xcbgrab.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
|
|
Also reshuffle headers into canonical order where appropriate.
|
|
Bug-Id: CID 1274038
|
|
* commit '5f5b78aca35d07c771f5c4c73a984be9fe04a0b8':
xcbgrab: Free the host string after checking the connection
Conflicts:
libavdevice/xcbgrab.c
No change as the bug was not in FFmpeg
Merged-by: Michael Niedermayer <michaelni@gmx.at>
|
|
Prevent an use after free in the error message.
Bug-Id: CID 1274040
CC: libav-stable@libav.org
|
|
* commit '85b3b1c4ba7af9c2658442b0aafd27d613e1854b':
xcbgrab: Unbreak parsing filename options
Conflicts:
libavdevice/xcbgrab.c
See: db442c873631065e8719df6da91c016d25501084
Merged-by: Michael Niedermayer <michaelni@gmx.at>
|
|
* commit 'b31328d008985f87f0a7c83c700847cef1a4f08c':
xcbgrab: Provide better names for the y and x option
Conflicts:
doc/indevs.texi
libavdevice/x11grab.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
|
|
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
Incidentally `-y` also collides with avconv global options.
Update x11grab to match and document the option.
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
* commit 'd40815a982c36ff9da09ae3edb5e3bd7d97b5d42':
xcbgrab: Correctly make shm optional
Conflicts:
libavdevice/xcbgrab.c
See: 8c0ae9015a2bd8b3f4f92c35570e592e7fdeaef0
Merged-by: Michael Niedermayer <michaelni@gmx.at>
|
|
The segment field in the struct has to be conditionally build
as well.
|
|
The feature is implemented using a transparent window and drawing
inside it a rectangle filling the whole window to highlight it.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
|
|
* commit '9e06327ecb8f73c7904d10af7ad339c57cdaa788':
xcbgrab: Move NULL check before pointer dereference
Conflicts:
libavdevice/xcbgrab.c
See: e86df0206f06b8d1e97e2b60db8f74a398d53127
Merged-by: Michael Niedermayer <michaelni@gmx.at>
|
|
Bug-Id: CID 1254668
|
|
* commit '2c3f29c4894ee50635b846f202296ad79a7c0d33':
xcbgrab: Support empty filename string correctly
Conflicts:
libavdevice/xcbgrab.c
See: 62eca2f827d441f52125191fd78c96b67a7ba30c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
|
|
Bug-Id: CID 1254664
CC: libav-stable@libav.org
|
|
Fixes CID1254668
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
|
|
|
|
Fixes trac ticket #4164
This is to address an error when using show_region, which would cause part of the captured area to become static.
It looks like the rectangle specifying the capture area was relative to the capture window.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
|
|
works with (--enable-libxcb-shape) and without (--disable-libxcb-shape) now.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
|
|
Fixes CID1254664
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
|
|
Found-by: carl
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
|
|
Old versions of libxcb do not provide xcb_shape_rectangles().
The issue can be fixed differently but this small change fixes
some fate platforms and a user reported compilation problem.
Reported and tested by trac user kevmitch.
Fixes ticket #4067.
|
|
|