Commit Graph

32718 Commits

Author SHA1 Message Date
Ronald S. Bultje
cd40c31ee9 matroska: don't overwrite string values until read/alloc was succesful.
This prevents certain tags with a default value assigned to them (as per
the EBML syntax elements) from ever being assigned a NULL value. Other
parts of the code rely on these being non-NULL (i.e. they don't check for
NULL before e.g. using the string in strcmp() or similar), and thus in
effect this prevents crashes when reading of such specific tags fails,
either because of low memory or because of targeted file corruption.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-25 07:53:23 -08:00
Anton Khirnov
03ca0a5b30 lavc: merge two if()s with the same condition. 2012-02-25 07:48:52 +01:00
Anton Khirnov
d55fa6f9cb lavc: factorize setting got_packet_ptr in avcodec_encode_video2() 2012-02-25 07:48:46 +01:00
Anton Khirnov
52953d61ca lavc: signal no output when a NULL frame is passed to audio encoder without delay 2012-02-25 07:48:36 +01:00
Paul B Mahol
99cff417f3 xwdenc: fix monow encoding
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-25 07:45:06 +01:00
Paul B Mahol
159a2436b0 fate: add tests for cdxl video
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-25 00:18:24 -05:00
Paul B Mahol
904817cb9f cdxl: fix ham6/8 on big endian
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-02-25 00:18:14 -05:00
Ronald S. Bultje
2bb628f870 swscale: fix another integer overflow at large dimensions/rescales. 2012-02-24 15:39:55 -08:00
Justin Ruggles
19adb0bc2d vorbisdec: add a flush() function
clear MDCT overlap buffer and reset previous window mode when seeking
2012-02-24 17:37:25 -05:00
Ronald S. Bultje
830f70442a fraps: release reference buffer on pix_fmt change.
Prevents crash when trying to copy from a non-existing plane in e.g.
a RGB32 reference image to a YUV420P target image

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 14:28:15 -08:00
Ronald S. Bultje
87840eeb71 avcodec: disallow reget_buffer() if pix_fmt changed. 2012-02-24 14:28:15 -08:00
Ronald S. Bultje
33cd32b389 kgv1: use avctx->get/release_buffer().
Also fixes crashes on corrupt bitstreams.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 14:28:15 -08:00
John Van Sickle
d6a77e2b97 docs: use -bsf:[vas] instead of -[vas]bsf.
The latter syntax is now invalid.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-24 22:04:11 +01:00
Dale Curtis
b716542691 mpegaudiodec: Prevent premature clipping of mp3 input buffer.
Instead of clipping extrasize based on EXTRABYTES, clip based on the
amount of buffer actually left. Without this fix, there are warbles
and other distortions in the test case below.

http://kevincennis.com/mix/assets/sounds/1901_voxfx.mp3
2012-02-24 13:47:04 -05:00
Anton Khirnov
655b24c01c lavf: move the packet keyframe setting code.
compute_pkt_fields() is for unreliable estimates or guessing. The
keyframe information from the parser is (at least in theory) reliable,
so it should be used even when the other guessing is disabled with the
AVFMT_FLAG_NOFILLIN flag.

Therefore, move setting the packet keyframe flag based on parser
information from compute_pkt_fields() to read_frame_internal().
2012-02-24 19:43:02 +01:00
Justin Ruggles
9677247b0a oggenc: free comment header for all codecs
fixes a memleak for Vorbis and Theora, where the comment header from
avpriv_split_xiph_headers() is replaced by a buffer that must be freed
separately.
2012-02-24 13:15:41 -05:00
Ronald S. Bultje
be129271ea lcl: error out if uncompressed input buffer is smaller than framesize.
This prevents crashes when trying to read beyond the end of the buffer
while decoding frame data.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:57 -08:00
Ronald S. Bultje
ab492ca2ab mjpeg: abort decoding if packet is too large.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:43 -08:00
Ronald S. Bultje
46b3fbc30b golomb: use HAVE_BITS_REMAINING() macro to prevent infloop on EOF.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-24 07:28:33 -08:00
Ronald S. Bultje
b44b41633f get_bits: add HAVE_BITS_REMAINING macro. 2012-02-24 07:28:14 -08:00
Anton Khirnov
5ff42e3138 lavf/output-example: use new audio encoding API correctly. 2012-02-24 09:44:18 +01:00
Anton Khirnov
6e9ed7c7ae lavf/output-example: more proper usage of the new API.
Passing the codec into avformat_new_stream() is preferred.
2012-02-24 09:44:17 +01:00
Alex Converse
447363870f tiff: Prevent overreads in the type_sizes array.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 16:23:51 -08:00
Alex Converse
e32548d133 tiff: Make the TIFF_LONG and TIFF_SHORT types unsigned.
TIFF v6.0 (unimplemented) adds signed equivalents.
2012-02-23 16:23:51 -08:00
Paul B Mahol
14c98973f5 apetag: do not leak memory if avio_read() fails
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 16:16:37 -08:00
Ronald S. Bultje
6d11057006 apetag: propagate errors.
Fixes crashes if reading the tag value fails.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 15:53:26 -08:00
Christophe GISQUET
2784d18791 SBR DSP x86: implement SSE sbr_hf_g_filt
Unrolling the main loop to process, instead of 4 elements:
- 8: minor gain of 2 cycles (not worth the extra object size)
- 2: loss of 8 cycles.

Assigning STEP to a register is a loss. Output address (Y) is almost always
unaligned.

Timings:
- C (32/64 bits): 117/109 cycles
- SSE: 57 cycles

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 15:50:09 -08:00
Christophe GISQUET
34454c761f SBR DSP x86: implement SSE sbr_sum_square_sse
The 32bits targets have been compiled with -mfpmath=sse for proper reference.
sbr_sum_square C  /32bits: 82c (unrolled)/102c
               C  /64bits: 69c (unrolled)/82c
               SSE/32bits: 42c
               SSE/64bits: 31c

Use of SSE4.1 dpps to perform the final sum is slower.
Not unrolling to perform 8 operations in a loop yields 10 more cycles.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 15:50:06 -08:00
Christophe GISQUET
2e74a5abc2 SBR DSP: use intptr_t for the ixh parameter.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-02-23 15:48:40 -08:00
Ronald S. Bultje
31632e73f4 swf: check return values for av_get/new_packet().
Prevents crashers when using the packet if allocation failed.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 12:24:58 -08:00
Derek Buitenhuis
480b133e6f wavpack: Don't shift minclip/maxclip
Since we are clipping before we shift the values to
16 or 32 bits, we should not shift the min/max clip
values to compensate.

Fixes 8 and 24 bit lossy decoding.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-23 20:43:39 +01:00
Martin Storsjö
ba605cef79 rtpenc: Expose the max packet size via an avoption
This allows opting for a lower MTU than what the AVIOContext
indicated, and allows writing into outputs that don't indicate
an MTU at all (such as plain files, which is useful for testing).

This also allows querying for the MTU via the avoption.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 21:32:52 +02:00
Martin Storsjö
f553462041 rtpenc: Move max_packet_size to a context variable
This is in preparation for exposing this via an avoption.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 21:32:52 +02:00
Martin Storsjö
7337484ed2 rtpenc: Add an option for not sending RTCP packets
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-02-23 21:32:52 +02:00
Anton Khirnov
ff311c0918 lavc: drop encode() support for video.
All video encoders have been converted to encode2(), all new encoders
should also use only encode2().
2012-02-23 20:26:26 +01:00
Anton Khirnov
171273fec8 snowenc: switch to encode2(). 2012-02-23 20:26:14 +01:00
Anton Khirnov
8d3348c2c4 snowenc: don't abuse input picture for storing information. 2012-02-23 20:26:04 +01:00
Anton Khirnov
7340008f18 a64multienc: switch to encode2().
We have no decoder, so cannot test if the output is decodable.
2012-02-23 19:56:55 +01:00
Anton Khirnov
cfc6ab3199 a64multienc: don't write into output buffer when there's no output. 2012-02-23 19:56:45 +01:00
Anton Khirnov
4da6d194e5 libxvid: switch to encode2(). 2012-02-23 19:55:23 +01:00
Anton Khirnov
760b004086 tiffenc: switch to encode2(). 2012-02-23 19:53:20 +01:00
Anton Khirnov
62acb4937e tiffenc: properly forward error codes in encode_frame(). 2012-02-23 19:52:08 +01:00
Anton Khirnov
2257f66ec5 lavc: drop libdirac encoder.
Libschroedinger is the preferred way to encode dirac video now, it
produces better output and has a nicer API.
2012-02-23 19:50:46 +01:00
Anton Khirnov
577fed3b7c gifenc: switch to encode2(). 2012-02-23 19:50:46 +01:00
Anton Khirnov
d8f3365fb0 libvpxenc: switch to encode2(). 2012-02-23 19:50:46 +01:00
Anton Khirnov
0ecf54f9dc flashsvenc: switch to encode2(). 2012-02-23 19:50:46 +01:00
Diego Biurrun
b315042c8c Remove libpostproc.
This library does not fit into Libav as a whole and its code is just a
maintenance burden.  Furthermore it is now available as an external project,
which completely obviates any reason to keep it around.

URL: http://git.videolan.org/?p=libpostproc.git
2012-02-23 19:36:16 +01:00
Ronald S. Bultje
01cb62aba2 lcl: don't overwrite input memory.
If the PNG filter is enabled, a PNG-style filter will run over the
input buffer, writing into the buffer. Therefore, if no zlib compression
was used, ensure that we copy into a temporary buffer, otherwise we
overwrite user-provided input data.
2012-02-23 10:31:46 -08:00
Ronald S. Bultje
1d8c4af396 swscale: take first/lastline over/underflows into account for MMX.
Fixes crashes for extremely large resizes (several 100-fold).

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 10:30:08 -08:00
Ronald S. Bultje
491865b57d swscale: fix underflows in firstline calculations for extreme resizes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2012-02-23 10:30:07 -08:00