Commit Graph

34969 Commits

Author SHA1 Message Date
Mans Rullgard
a27a690fac ARM: swap source operands in some add instructions
This allows using a 16-bit opcode when generating Thumb2 code.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-20 17:07:18 +01:00
Mans Rullgard
0122118ec3 configure: update tms470 detection for latest version
v5.0 of the TI ARM compiler changes the version string.
This updates the detection to check for both the old and
the new strings.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-20 14:56:56 +01:00
Janne Grunau
6746cd7f61 lavf probe: prevent codec probe with no data at all seen
This occurs with fuzzed mpeg-ts files. set_codec_from_probe_data() is
called with a zeroed AVProbeData since no packet made through for
specific stream.
2012-09-20 14:50:06 +02:00
Mans Rullgard
a34a609fc1 motion_est: fix use of inline on extern functions
Inline functions declared without extern do not provide an external
definition in standard C99.  This code only works because most
compilers do not implement the inline semantics correctly.  With a
stricter compiler, linking fails with unresolved references to these
functions.

Declaring the functions extern inline works correctly with some
compilers while some others still fail to create external definitions.

For maximum portability, create a static inline version with an
externally visible wrapper for ff_get_mb_score.  ff_epzs_motion_search
is so large that no sane compiler inlines it anyway, so there the
inline keyword can simply be dropped with no effect.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-20 10:56:30 +01:00
Anton Khirnov
50d1f4437b mp3dec: read Xing frame TOC index 2012-09-19 20:59:45 +02:00
Anton Khirnov
2d1a1a7f62 mp3dec: use named constants for Xing header flags 2012-09-19 20:59:44 +02:00
John Van Sickle
9bf41210a9 libx264: add support for nal-hrd, required for Blu-ray streams.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-09-19 20:59:24 +02:00
Yusuke Nakamura
d17d0ec8c2 mov: support random access point grouping
Frames described by this grouping are the starter of a closed or
an open GOP.
This is useful for open GOP of H.264 stream which is not described
by sync sample atom.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-19 20:34:15 +02:00
Luca Barbato
7d8431004a matroskadec: properly support BlockDuration 2012-09-19 20:34:14 +02:00
Luca Barbato
c831ebf616 matroskadec: split frame parsing 2012-09-19 20:34:14 +02:00
Luca Barbato
2d0e7713f9 matroskadec: split laces parsing 2012-09-19 20:34:14 +02:00
Luca Barbato
117d8c6d1f matroska: implement support for ProRes
Support Matroska native formatting.

On demuxing prepend a Frame container atom (32bit big endian encoded
frame size and 'icpf' string).
On muxing remove it.
2012-09-19 20:34:14 +02:00
Moritz Bunkus
8071dca3d5 matroska: implement support for ALAC
Support Matroska native formatting.

On demuxing reconstruct the 36-bytes QuickTime atom that the ALAC
decoder expects by prepending the "atom size", "tag" and
"tag version" fields missing from the Matroska's CodecPrivate
element.

On muxing remove the initial 12 bytes

Sample files are available:
http://www.bunkus.org/videotools/mkvtoolnix/samples/alac/alac-in-matroska.mka
and the CoreAudio file it was created from with today's mkvmerge:
http://www.bunkus.org/videotools/mkvtoolnix/samples/alac/alac-in-matroska-source.caf

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-19 20:34:14 +02:00
Luca Barbato
870e75524a matroskadec: validate lace_size when parsed
Stricter validation, explicitly exit on misparsing and some error
forwarding from the ebml parsing functions used.
2012-09-19 20:34:14 +02:00
Luca Barbato
c9a39cec70 matroskadec: return meaningful errors in matroska_decode_buffer 2012-09-19 20:34:14 +02:00
Dale Curtis
df1d84121b matroskadec: fix incorrect unsigned->signed conversion 2012-09-19 20:34:14 +02:00
Luca Barbato
8d4dd55c37 matroskadec: refactor matroska_decode_buffer
Make MATROSKA_TRACK_ENCODING_COMP_HEADERSTRIP behave like
the other encodings and spare few lines of boilerplate code.
2012-09-19 20:34:14 +02:00
Luca Barbato
581281e242 matroskadec: check realloc in lzo encoding
Make all the compression encodings behave the same way.
2012-09-19 20:34:13 +02:00
Luca Barbato
cd4739c4f2 matroska: honor error_recognition on unknown doctypes 2012-09-19 20:34:13 +02:00
Alex Converse
df6c3f9fb3 tiffdec: Add support for GRAY16LE.
Tested with the GraphicsMagick TIFF archive and Libav generated files.
2012-09-19 11:05:36 -07:00
Alex Converse
298ed797e1 tiffenc: Add support for little endian RGB48 and GRAY16 2012-09-19 11:05:36 -07:00
Janne Grunau
8701f4f8e8 mpeg4: support frame parameter changes with frame-mt
Adds a flag context_reinit to MpegEncContext to relieable keep track
of frame parameter changes which require a context reinitialization.
This is required for broken inputs which change the frame size but
error out before the context can be reinitialized.
2012-09-19 19:58:15 +02:00
Janne Grunau
01fc5d6609 mpegvideo: check ff_find_unused_picture() return value for errors 2012-09-19 19:58:15 +02:00
Janne Grunau
32c7589bb7 mpegvideo: release frame buffers before freeing them
Fixes triggering an assert in avcodec_default_release_buffer()
introduced in 1b3439b30.
2012-09-19 19:58:15 +02:00
Mans Rullgard
ac3a9b51f7 configure: msvc: default to 'lib' as 'ar' tool
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-19 14:09:50 +01:00
Mans Rullgard
3dbc777c7f build: support some non-standard ar variants
This adds support for the TI and Microsoft (lib.exe) variants of
the ar utility.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-19 14:09:50 +01:00
Janne Grunau
b16d001b62 rv34: use ff_MPV_common_frame_size_change()
Specialised functionality for size changes with the advantage of
supporting frame size changes during frame-based multithreading.
2012-09-19 11:06:40 +02:00
Janne Grunau
435c0b87d2 mpegvideo: add reinit function for frame parameter changes
This is mainly required for frame parameter changes during frame based
multithreading but single threaded usage profits too from avoiding
ff_MPV_common_end()/ff_MPV_common_init() cycles.
2012-09-19 11:06:39 +02:00
Janne Grunau
1b3439b305 mpegvideo: move frame size dependent memory management to separate functions
This is a preparation for supporting frame size changes during
frame-based multithreading.
2012-09-19 11:06:31 +02:00
Mans Rullgard
aeeb782c2a configure: add --toolchain option
This allows creating canned shorthands for common combinations
of cc, ld etc.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-18 23:43:05 +01:00
Martin Storsjö
e772f9faec configure: Make the smoothstreaming muxer enable the ismv muxer
This doesn't fix any build failure, but the smoothstreaming muxer
opens a chained ismv muxer.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-18 17:59:59 +03:00
Martin Storsjö
84cc314e40 smoothstreaming: Export the mp4 codec tags
This fixes stream copy from a format that already has incompatible
codec tags set. The chained ismv muxer exports this same codec tag
list, so set it on this one as well, to allow the caller (and
lavf common code) to set them correctly.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-18 17:59:57 +03:00
Luca Barbato
9888ffb1ce mov: check for EOF in long lasting loops
A quite widespread pattern in the demuxer is read a 32bit unsigned
integer and then loop till this value is reached.

Checking for EOF prevents pathological situations.
2012-09-18 15:32:52 +02:00
Luca Barbato
419ffb2390 avcodec: cleanup utils.c 2012-09-18 15:32:52 +02:00
Justin Ruggles
ee90119e9e binkaudio: remove unneeded GET_BITS_SAFE macro
Normal get_bits() already has overread protection.
2012-09-18 09:27:23 -04:00
Justin Ruggles
7bfd1766d1 binkaudio: use float sample format
Use planar for DCT codec, interleaved for RDFT codec.
2012-09-18 09:27:23 -04:00
Justin Ruggles
0801b5979b binkaudio: use a different value for the coefficient scale for the DCT codec
Eliminates the need for vector_fmul_scalar() in each frame.
2012-09-18 09:26:56 -04:00
Benjamin Larsson
6a08955c10 flvenc: silence bogus warning
The compiler fails to figure out that enc->codec_type can only
have 3 different values.
Thus when an if/else is encountered it triggers on the possibility
of the else case has not initialized the flags variable.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-09-18 10:31:04 +02:00
Mans Rullgard
2a8a860ae6 configure: include flags in nm variable
This simplifies ensuring proper flags are used when the default
is overridden by the system or on the command line.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-17 22:36:06 +01:00
Clément Bœsch
ee0f53e966 alsdec: fix misplaced parentheses.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:27 -04:00
Thilo Borgmann
ac3f5a6879 alsdec: check return values.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:27 -04:00
Thilo Borgmann
66197988b1 alsdec: fix number of decoded samples in first sub-block in BGMC mode.
Fixes CVE-2012-2790

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:27 -04:00
Thilo Borgmann
97f0efbfb8 alsdec: Fix out of ltp_gain_values read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:27 -04:00
Michael Niedermayer
5b051ec3bd alsdec: Check that quantized parcor coeffs are within range.
ALS spec:
	11.6.3.1.1 Quantization and encoding of parcor coefficients
	...
	In all cases the resulting quantized values ak are restricted to the range [-64,63].

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:27 -04:00
Michael Niedermayer
9853e41aa0 alsdec: check opt_order.
Fixes out of array write in quant_cof.
Also make sure no invalid opt_order stays in the context.

Fixes CVE-2012-2775

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:26 -04:00
Michael Niedermayer
23aae62c2c alsdec: Check k used for rice decoder.
Values that fail this check will cause failure of decode_rice()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-17 14:17:26 -04:00
Anton Khirnov
e3496e5dbe avfiltergraph: silence an uninitialized variable warning
The warning is:
libavfilter/avfiltergraph.c: In function ‘avfilter_graph_config’:
libavfilter/avfiltergraph.c:528:9: warning: ‘best_idx’ may be used uninitialized in this function [-Wuninitialized]
libavfilter/avfiltergraph.c:479:13: note: ‘best_idx’ was declared here

Initialize it to an invalid value and add an assert that it's properly
set later.
2012-09-17 15:48:20 +02:00
Anton Khirnov
34ebbbfeec xsubenc: reindent 2012-09-17 15:48:20 +02:00
Anton Khirnov
466b39efaf lavc: replace AVCodecContext.encode with subtitle-specific callback
AVCodecContext.encode is currently used only for subtitles, encode2 is
used for audio and video.
2012-09-17 15:48:20 +02:00
Anton Khirnov
9f64c8219a lavc: add const to private codec class initialization.
Silences a warning about discarding const.
2012-09-17 15:48:20 +02:00