Mans Rullgard [Sun, 9 Oct 2011 11:57:08 +0000 (12:57 +0100)]
mathops: remove undefined behaviour from sign_extend()
This function intentionally overflows the signed range on
the left shift. Using this type-punning avoids errors from
the overflow checker without disabling this test globally.
Kostya Shishkov [Thu, 13 Oct 2011 08:12:42 +0000 (10:12 +0200)]
vc1: explicitly zero interlaced mode coding variables for progressive mode
Both v->fcm and v->field_mode are used in common code, now they won't be
reset for progressive frame after interlaced one causing writing past the
frame end for example.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* qatar/master: (31 commits)
tiffenc: initialize forgotten avctx.
avplay: free the active audio packet at exit.
avplay: free rdft data used for spectrogram analysis.
log.h: make AVClass a named struct
fix ac3 encoder documentation
vc1: more prettyprinting cosmetics
vc1: prettyprint some tables
vc1: K&R formatting cosmetics
AVOptions: bump minor and add APIchanges entry.
cmdutils/avtools: simplify show_help() by using av_opt_child_class_next()
AVOptions: rename FF_OPT_TYPE_* => AV_OPT_TYPE_*
Remove all uses of deprecated AVOptions API.
AVOptions: add av_opt_next, deprecate av_next_option.
AVOptions: add functions for evaluating option strings.
AVOptions: split get_number().
AVOptions: add av_opt_get*, deprecate av_get*.
AVOptions: add av_opt_set*().
AVOptions: add new API for enumerating children.
rv34: move inverse transform functions to DSP context
flvenc: Write the right metadata entry count
...
John Brooks [Wed, 12 Oct 2011 06:53:12 +0000 (00:53 -0600)]
Correct buffer handling for RTCP packets
Previous code could read 4 bytes past the end of the buffer on a RTCP_SR
packet or offset a pointer by an unchecked external value (payload_len),
though neither will reliably cause a crash or other misbehavior beyond
garbage timestamps.
Additionally, unknown RTCP packet types, even in compounded packets, are
now ignored as per RFC 3550 section 6.1, page 22, though currently this
only has any practical effect if a sender puts an unrecognized type
before RTCP_BYE in a compounded packet, or (incorrectly) does not put
RTCP_SR first.
Signed-off-by: John Brooks <john.brooks@bluecherry.net> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Anton Khirnov [Mon, 3 Oct 2011 17:49:12 +0000 (19:49 +0200)]
AVOptions: add new API for enumerating children.
This will allow the caller to enumerate child contexts in a generic way
and since the API is recursive, it also allows for deeper nesting (e.g.
AVFormatContext->AVIOContext->URLContext)
This will also allow the new setting/reading API to transparently apply
to children contexts.
Martin Storsjö [Mon, 27 Dec 2010 07:51:09 +0000 (09:51 +0200)]
rtsp: Request that dynamic rate is disabled
DSS enables this automatically if streaming VOD over TCP. If
enabled, the server feeds packets faster than realtime, screwing
up RTCP NTP based timestamps.
Also, DSS doesn't indicate that this was indicated, if it was
enabled automatically (although if it was requested to be enabled,
a header saying that it was enabled is added, but this isn't
added if it is enabled automatically), making it even harder
to detect and work around properly without explicitly asking
for it to be disabled(/enabled, if we were able to support it).
John Brooks [Wed, 12 Oct 2011 06:53:12 +0000 (00:53 -0600)]
rtpdec: Read the packet length for all RTCP packet types
This allows skipping past unsupported RTCP packet types, as
RFC 3550 section 6.1 mandates.
Currently this only has any practical effect if a sender puts
an unrecognized type before RTCP_BYE in a compounded packet, or
(incorrectly) does not put RTCP_SR first.
Martin Storsjö [Tue, 11 Oct 2011 21:03:20 +0000 (00:03 +0300)]
flvdec: Don't export metadata entries that aren't proper metadata
This avoids writing these entries doubly if transcoding from
flv to flv, since the muxer blindly writes any and all metadata
keys set, in addition to the fixed fields that the muxer
always writes.
* qatar/master: (23 commits)
fix AC3ENC_OPT_MODE_ON/OFF
h264: fix HRD parameters parsing
prores: implement multithreading.
prores: idct sse2/sse4 optimizations.
swscale: use aligned move for storage into temporary buffer.
prores: extract idct into its own dspcontext and merge with put_pixels.
h264: fix invalid shifts in init_cavlc_level_tab()
intfloat_readwrite: fix signed addition overflows
mov: do not misreport empty stts
mov: cosmetics, fix for and if spacing
id3v2: fix NULL pointer dereference
mov: read album_artist atom
mov: fix disc/track numbers and totals
doc: fix references to obsolete presets directories for avconv/ffmpeg
flashsv: return more meaningful error value
flashsv: fix typo in av_log() message
smacker: validate channels and sample format.
smacker: check buffer size before reading output size
smacker: validate number of channels
smacker: Separate audio flags from sample rates in smacker demuxer.
...
Mans Rullgard [Tue, 11 Oct 2011 15:00:21 +0000 (16:00 +0100)]
h264: fix HRD parameters parsing
The bit_rate_value_minus1 and cpb_size_value_minus1 elements
allow a wider range than get_ue_golomb() supports. This
adds a get_ue_golomb_long() function supporting up to 31
leading zeros, which is the maximum for these syntax
elements, and uses it in decode_hrd_parameters().
Mans Rullgard [Tue, 11 Oct 2011 11:58:31 +0000 (12:58 +0100)]
h264: fix invalid shifts in init_cavlc_level_tab()
The level_code expression includes a shift which is invalid in
those cases where the value is not used. Moving the calculation
to the branch where the result is used avoids these.
Mans Rullgard [Sat, 8 Oct 2011 01:16:29 +0000 (02:16 +0100)]
intfloat_readwrite: fix signed addition overflows
These additions might overflow the signed range for large
input values. Converting to unsigned before the addition
rather than after avoids such undefined behaviour. The
result under normal two's complement wraparound remains
unchanged.
Mans Rullgard [Mon, 10 Oct 2011 23:58:03 +0000 (00:58 +0100)]
h264: fix detection of optional trailing PPS elements
The PPS may contain a few trailing elements whose presence is
only signalled by data remaining after the the mandatory part
has been parsed. The current code fails to take into account
the rbsp_trailing_bits() when deciding whether to parse these
optional elements. Assuming no unnecessary padding bytes are
passed to this function, the optional elements are present if
either more than 8 extra bits remain or the remaining bits do
not form a valid rbsp_trailing_bits() after the mandatory PPS
elements have been parsed.
* qatar/master: (34 commits)
h264: reset h->ref_count in case of errors in ff_h264_decode_ref_pic_list_reordering()
error_resilience: fix the check for missing references in ff_er_frame_end() for H264
4xm: prevent NULL dereference with invalid huffman table
4xmdemux: prevent use of uninitialized memory
4xm: clear FF_INPUT_BUFFER_PADDING_SIZE bytes in temporary buffers
ptx: check for out of bound reads
tiffdec: fix out of bound reads/writes
eacmv: check for out of bound reads
eacmv: fix potential pointer arithmetic overflows
adpcm: fix out of bound reads due to integer overflow
anm: prevent infinite loop
avsdemux: check for out of bound writes
avs: check for out of bound reads
avsdemux: check for corrupted data
AVOptions: refactor set_number/write_number
AVOptions: cosmetics, rename static av_set_number2() to write_number().
AVOptions: cosmetics, move and rename static av_set_number().
AVOptions: split av_set_string3 into opt type-specific functions
avidec: fix signed overflow in avi_sync()
mxfdec: Fix some buffer overreads caused by the misuse of AVPacket related functions.
...