hlsenc: Add parameter -hls_allow_cache

The -hls_allow_cache parameter enables explicitly setting the
EXT-X-ALLOW-CACHE tag in the manifest file. That tag indicates
whether the client MAY or MUST NOT cache downloaded media
segments for later replay.

Valid values are 1 (=YES) or 0 (=NO) and the EXT-X-ALLOW-CACHE
will not show in the manifest for other values (or if
-hls_allow_cache is not used.

Signed-off-by: Martin Storsjö <martin@martin.st>
configure: Add -lrt dependency to avutil's pc file.

This is needed for clock_gettime.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
fate-vc1_ilaced_twomv: use -flags +bitexact

Also updates the reference since it was generated by the non-bitexact
x86 specific code.
vc1: Do not assume seek happens after decoding

If a seek is requested before the decoding start there is no
current picture.

CC: libav-stable@libav.org
x11grab: Check for XFixes availability at runtime
x11grab: Check XFixesGetCursorImage return value

It could return NULL if the cursor is outside the screen, the connection
timed out or the system is out of memory.

CC: libav-stable@libav.org
x11grab: Check the XQueryPointer return value

The paint_mouse_pointer() code uses XFixes to retrieve the cursor
coordinates, but XFixes gives no information about which screen the
pointer is on; this results in always drawing the cursor on the
captured screen even if the mouse pointer was on another screen.

For example, when capturing from screen 1 (i.e. -f x11grab -i ":0.1")
the cursor was being drawn in the captured image even when the mouse
pointer was actually on screen 0, which is wrong and visually confusing.

CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
vdpau: add helper for VDPAU to libav error codes conversion

Signed-off-by: Anton Khirnov <anton@khirnov.net>
vdpau: factor out common end-of-frame handling

Also add error handling.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
vdpau: common support for managing the VdpDecoder in avcodec

Using the not so new init and uninit callbacks, avcodec can now take
care of creating and destroying the VDPAU decoder instance.

The application is still responsible for creating the VDPAU device
and allocating video surfaces - this is necessary to keep video
surfaces on the GPU all the way to the output. But the application
will no longer needs to care about any codec-specific aspects.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
vdpau: pass codec-specific parameters from hwaccel

Signed-off-by: Anton Khirnov <anton@khirnov.net>
vdpau: force reinitialization when output resolution changes

This is necessary to recreate the decoder with the correct parameters,
as not all codecs invoke get_format() in this case.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
vdpau: add av_vdpau_bind_context()

This function provides an explicit VDPAU device and VDPAU driver to
libavcodec, so that the application is relieved from codec specifics
and VdpDevice life cycle management.

A stub flags parameter is added for future extension. For instance, it
could be used to ignore codec level capabilities (if someone feels
dangerous).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
vdpau: check video surface and decoder capabilities

Signed-off-by: Anton Khirnov <anton@khirnov.net>
avconv_vdpau: update to new VDPAU interface

Signed-off-by: Anton Khirnov <anton@khirnov.net>
lavc: specify the behavior of av_lockmgr_register on failure.

The register function now specifies that the user callback should
leave things in the same state that it found them on failure but
that failure to destroy is ignored by the library.  The register
function is now explicit about its behavior on failure
(it unregisters the previous callback and destroys all mutex).

Signed-off-by: Manfred Georg <mgeorg@google.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
ff_get_format: fix infinite loop

Signed-off-by: Anton Khirnov <anton@khirnov.net>
sdp: Simplify parsing/conversion of H264 extradata

By using ff_avc_write_annexb_extradata instead of the h264_mp4toannexb
BSF, the code for doing the conversion itself is kept much shorter,
there's less state to restore at the end, we don't risk leaving the
AVCodecContext in an inconsistent state if returning early due to
errors, etc.

Also add a missing free if the base64 encoding fails.

Signed-off-by: Martin Storsjö <martin@martin.st>
lavf: Set the stream time base hint properly for chained muxers

This avoids warnings about using the codec time base as time
base hint.

Signed-off-by: Martin Storsjö <martin@martin.st>
hevc_mvs: initialize the temporal MV in case of missing ref

The caller expects the MV to always be initialized.