* qatar/master:
avconv: add presets
rtsp: Expose the flag options via private AVOptions for sdp and rtp, too
rtsp: Make the rtsp flags avoptions set via a define
rtpenc: Set a default video codec
avoptions: Fix av_opt_flag_is_set
rtp: Fix ff_rtp_get_payload_type
doc: Update the documentation on setting options for RTSP
rtsp: Remove the separate filter_source variable
rtsp: Accept options via private avoptions instead of URL options
rtsp: Simplify AVOption definitions
rtsp: Merge the AVOption lists
lavfi: port libmpcodecs delogo filter
lavfi: port boxblur filter from libmpcodecs
lavfi: add negate filter
lavfi: add LUT (LookUp Table) generic filters
AVOptions: don't segfault on NULL parameter in av_set_options_string()
avio: Check for invalid buffer length.
mpegenc/mpegtsenc: add muxrate private options.
lavf: deprecate AVFormatContext.file_size
mov: add support for TV metadata atoms tves, tvsn and stik
Martin Storsjö [Mon, 17 Oct 2011 17:07:56 +0000 (20:07 +0300)]
rtsp: Expose the flag options via private AVOptions for sdp and rtp, too
This allows setting the filter_src option for these demuxers, too,
which wasn't possible at all before (where the option only was set
via URL parameters for RTSP).
Martin Storsjö [Mon, 17 Oct 2011 17:50:02 +0000 (20:50 +0300)]
avoptions: Fix av_opt_flag_is_set
With the changes in 3b3ea34655db02d9cd9ea1a4122e920a7fdec602,
"Remove all uses of deprecated AVOptions API", av_opt_flag_is_set
was broken, since it now uses av_opt_find, which doesn't return
named constants unless a unit to look for the constant in is given.
This broke enabling LATM encapsulated AAC output in RTP.
Martin Storsjö [Mon, 17 Oct 2011 17:24:54 +0000 (20:24 +0300)]
rtp: Fix ff_rtp_get_payload_type
It was broken in 3b3ea34655db02d9cd9ea1a4122e920a7fdec602
"Remove all uses of deprecated AVOptions API", where any
presence of a payload_type AVOption caused its value to
be returned, even if it wasn't set (and thus had the default
-1 value).
Martin Storsjö [Thu, 23 Jun 2011 22:49:09 +0000 (01:49 +0300)]
rtsp: Accept options via private avoptions instead of URL options
Eventually, the old way of passing options by adding
stuff to the URL can be dropped.
This avoids having to tamper with the user-specified URL to
pass options on the transport mode. This also works better
with redirects, since the options don't need to be parsed out
from the URL.
With the following additions:
* support to gray format
* support to yuva420p format
* parametric luma/chroma/alpha radius
* consistency check on the radius values, avoid crashes with invalid values
* cus/stable:
ffplay: avoid window resize crash on osx with libsdl 1.2.14
ffplay: add delay multiple times to frame_timer if it is less than current time
ffplay: remove early frame drop functionality
ffplay: calculate target clock dynamically, make code more readable
Marton Balint [Sun, 9 Oct 2011 14:52:28 +0000 (16:52 +0200)]
ffplay: add delay multiple times to frame_timer if it is less than current time
If the picture queue is empty, or when the calculated delay is 0, frame_timer
is not increased but we are still displaying the old frame. When we eventually
get a frame, where the computed delay is positive, so we don't need to drop any
more frames, then it is best to update frame_timer to be as near as the current
time as it can.
This way we dont't have to wait several frames to add the necesarry delays to
frame_timer to reach current time, therefore there are no extra frame drops
after reaching a positive delay.
Marton Balint [Sun, 9 Oct 2011 13:49:22 +0000 (15:49 +0200)]
ffplay: remove early frame drop functionality
The current impementation of early frame drops (dropping frames before adding
them to the picture queue) has multiple problems:
Even after gettin A-V sync, the frame droping continues until
VideoState->skip_frames reaches 1, which can take a lot of time causing useless
additional frame drops and bad AV-sync. This issue can be easily triggered with
for example changing the audio stream.
Also video_refresh currenly does not handle early skipped frames in every case,
for example if we skip a frame, then the last frame duration calculation will
compute the duration of the sum of the skipped frame and the duration of the
frame before that, and in compute_target_delay we may multiply this unusually
big delay.
Marton Balint [Sat, 8 Oct 2011 19:38:53 +0000 (21:38 +0200)]
ffplay: calculate target clock dynamically, make code more readable
Since target clock is based on the current A-V delay, it is better calculate it
when we actually need it rather than when we put a picture in the picture
queue.
The patch also makes a code a bit more readable by renaming some delay
variables to duration, and converting compute_target_time to a delay
calculating function which does not modify the state. Factoring out the
iteration of the pictq to standalone function is also done in this patch.
* qatar/master:
prores: get correct size for coded V plane if alpha is present
prores: do not set pixel format on codec init
pthread: prevent updating AVCodecContext from itself in frame_thread_free
pthread: copy coded frame dimensions in update_context_from_thread
vp8: prevent read from uninitialized memory in decode_mvs
vp8: force reallocation in update_thread_context after frame size change
vp8: fix return value if update_dimensions fails
matroskadec: fix out of bounds write
adpcmdec: calculate actual number of output samples for each decoder.
adpcmdec: check remaining buffer size before decoding next block in the ADPCM IMA WAV decoder.
adpcmdec: do not terminate early in ADPCM IMA Duck DK3 decoder.
adpcmdec: remove unneeded buf_size==0 check.
adpcmdec: remove unneeded zeroing of *data_size
dnxhdenc: fixed signed multiplication overflow
af_aresample: fix properties setting in the output buffer
In particular: set output timebase to 1/output_sample_rate, fix output
PTS computation, and do not forget to copy properties values from the
input buffer.
Mans Rullgard [Sat, 15 Oct 2011 13:35:10 +0000 (14:35 +0100)]
prores: do not set pixel format on codec init
The pixel format is not known until the frame header is parsed.
Guessing it here only causes trouble for the caller if the guess
turns out to be wrong (and actually causes very wrong output by
avconv/avplay).
* qatar/master:
proresdsp: fix function prototypes.
prores-idct: fix overflow in c code.
fate: update prores-alpha ref after changing pix_fmt to yuv444p10le
prores: add missing feature warning for alpha
mov: 10l: Terminate string with 0 not '0'
mov: Prevent illegal writes when chapter titles are very short.
prores: add appropriate -fix_fmt parameter to FATE command
riff: always generate a proper WAVEFORMATEX structure in ff_put_wav_header
lavc: add a flag-based error_recognition field to AVCodecContext and deprecate non-flag-based ER field
lavc: rename deprecation symbol FF_API_VERY_AGGRESSIVE to FF_API_ER
Mans Rullgard [Sat, 8 Oct 2011 00:37:20 +0000 (01:37 +0100)]
dnxhdenc: fixed signed multiplication overflow
The low 32 bits of a multiplication are the same for signed
and unsigned operands. Casting to unsigned before multiplying
is thus equivalent while avoiding signed overflow, which is
undefined by the C99 standard.