Commit Graph

29642 Commits

Author SHA1 Message Date
Christophe Gisquet
d1b1c3bb5e hevc: reorder loops
iterate over memory in a more continuous order

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-12 09:57:05 +00:00
Christophe Gisquet
52b81ff463 proresenc_kostya: report buffer overflow
If the allocated size, despite best efforts, is too small, exit
with the appropriate error.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 00:46:37 +02:00
Christophe Gisquet
bf10f09bcc proresenc_kostya: remove unneeded parameters
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-12 00:46:37 +02:00
Michael Niedermayer
9a162146ca avcodec/snow: fix null pointer dereference in cleanup after allocation failure
Fixes: snowf.avi
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 15:37:15 +02:00
Michael Niedermayer
ba47d519e5 avcodec/huffyuvdec: fix overread checks
Fixes: ffvhuff_f.avi
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 15:17:11 +02:00
Michael Niedermayer
11512d70fa avcodec/get_bits: add BITS_LEFT() for finding the bits left with an opened reader
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 15:15:54 +02:00
James Almer
59ecd4882d lavc/raw: remove obsolete ff_raw_pix_fmt_tags cruft
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 13:46:23 +02:00
James Almer
8f2634f970 lavc: stop exporting internal functions and tables
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 13:23:48 +02:00
Michael Niedermayer
9eda4e8bd7 avcodec/idctdsp: move add/put_pixels_clamped_c to header
This allows sharing them with the xvid IDCT

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 13:08:46 +02:00
Christophe Gisquet
5ec85c9750 hevc: do generic validation of bitstream
After finishing parsing VPS/SPS/PPS/slice header, check remaining bits,
and if an overconsumption occurred, report invalid data.

Liked-by: BBB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 02:47:05 +02:00
Ronald S. Bultje
bfffce4d08 hevc: add missing comma in log message.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 02:27:27 +02:00
Michael Niedermayer
6801eb0a09 avcodec/vc1dec: do not crash when flushing without an allocated frame
Fixes Ticket3837
Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-11 02:16:43 +02:00
Michael Niedermayer
d177f27517 Merge commit 'cc1d8c54c19dd14fb851e3e7a7793d6b3bd75e94'
* commit 'cc1d8c54c19dd14fb851e3e7a7793d6b3bd75e94':
  avcodec: Postpone FF_IDCT_XVIDMMX removal until the next version bump

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 23:41:51 +02:00
Michael Niedermayer
3539d6c63a avcodec/iff: check pixfmt for rgb8 / rgbn
Fixes out of array access

Found-by: Piotr Bandurski <ami_stuff@o2.pl>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 22:05:55 +02:00
Michael Niedermayer
9bcdb98839 avcodec/iff: Factorize av_pix_fmt_desc_get() out
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 21:53:39 +02:00
Michael Niedermayer
bd87965247 Merge commit 'd63443b9684fa7b3e086634f7b44b203b6d9221e'
* commit 'd63443b9684fa7b3e086634f7b44b203b6d9221e':
  lavc: drop the av_fast_{re,m}alloc compatibility wrappers

Conflicts:
	libavcodec/utils.c

See: a973e01501
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 20:51:15 +02:00
Diego Biurrun
cc1d8c54c1 avcodec: Postpone FF_IDCT_XVIDMMX removal until the next version bump 2014-08-10 10:41:55 -07:00
Michael Niedermayer
61b9ce00a3 Merge commit '2597a842a0a2c7e8aa76f32733d27bf64817ae86'
* commit '2597a842a0a2c7e8aa76f32733d27bf64817ae86':
  tiff: Improve grayscale support

Conflicts:
	libavcodec/tiff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 18:40:46 +02:00
Christophe Gisquet
0d0d24af01 hevc_ps: verify P/T/L information
This makes the SPS parsing a little, but barely, safer.

Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 18:05:33 +02:00
Anton Khirnov
d63443b968 lavc: drop the av_fast_{re,m}alloc compatibility wrappers
They were only needed until the bump.
2014-08-10 15:40:38 +00:00
Michael Niedermayer
07262c7199 avcodec/options_table: leave xvidmmx AVOption in place
Also mark it as deprecated through its help text

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 17:30:27 +02:00
Christophe Gisquet
84bc45880a hevc_mvs: set candidate availabilities
They might be left uninitialized otherwise since 3ad04608.

Fixes ticket #3840.

Found-by: Carl Eugen Hoyos <ce@hoyos.ws>
Reported-by: Piotr Bandurski <ami_stuff@o2.pl>

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 17:13:18 +02:00
Derek Buitenhuis
43654a22c0 Revert "lavc/utils: Do not require dimensions for PNG."
mplayer-specifc hacks should not be in our codebase. mplayer should fix
its own code. It is not our responsibility to work around their broken
code.

This reverts commit e8e575633f.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-08-10 15:58:13 +01:00
Diego Elio Pettenò
2597a842a0 tiff: Improve grayscale support
Only use PAL8 if palette is present, else use GRAY8 for pixfmt.

Instead of simulating a grayscale palette, use real grayscale pixels, if no
palette is actually defined.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-10 15:21:44 +02:00
Christophe Gisquet
7117547298 hevc: fix incorrect sao buffer size
It previously used the output, cropped size, causing overreads/writes.

Fixes ticket #3839.

This issue was introduced by d249e682, which is not part of any release

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 12:34:57 +02:00
Michael Niedermayer
a71fcfad89 Merge commit '9325d88eba8038b3e2a4485e473a018410379e2d'
* commit '9325d88eba8038b3e2a4485e473a018410379e2d':
  lavc: remove obsolete and disabled avpriv functions

Conflicts:
	libavcodec/dv_profile.c
	libavcodec/dv_profile.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 02:09:13 +02:00
Michael Niedermayer
a973e01501 avcodec: disable FF_API_FAST_MALLOC
It causes build failures in some cases and the functions are provided by
libavutil so the wraper should not be needed anymore

Found-by: jamrial
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:53:10 +02:00
Michael Niedermayer
287602f9d8 Merge commit '472f9ed312ec784f7c72876b77163f4741880d05'
* commit '472f9ed312ec784f7c72876b77163f4741880d05':
  Remove obsolete FF_API_AVFRAME_COLORSPACE cruft.

Conflicts:
	libavcodec/utils.c
	libavutil/frame.h
	libavutil/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 01:29:24 +02:00
Michael Niedermayer
65cb02e87a avcodec/version: delay removial of FF_API_AUDIO_CONVERT/FF_API_AVCODEC_RESAMPLE
Some applications still use this deprecated API
Its not nice to remove it when its still in use and as long as it doesnt
cause us any work to keep it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 00:38:48 +02:00
Michael Niedermayer
a57ece0cb4 Merge commit '1985c2e75c607ac51bfd8dc87d2957a5edf2b6f8'
* commit '1985c2e75c607ac51bfd8dc87d2957a5edf2b6f8':
  Bump major versions of all libraries.

Conflicts:
	doc/APIchanges
	libavcodec/version.h
	libavdevice/version.h
	libavfilter/version.h
	libavformat/version.h
	libavutil/version.h
	libswscale/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 00:26:45 +02:00
Michael Niedermayer
80c1cb522c avcodec/version: leave old audio API
If people prefer we can also drop it

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 00:21:56 +02:00
Michael Niedermayer
6fac482624 avcodec/flacdec: fix handling of av_samples_fill_arrays() return value
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-10 00:21:55 +02:00
Michael Niedermayer
70b8668fb5 drop LLS1, rename LLS2 to LLS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 23:20:31 +02:00
Michael Niedermayer
c89afc9acf delay removial of FF_API_CODEC_ID, FF_API_OLD_AVOPTIONS and FF_API_OLD_ENCODE_VIDEO
This prevents a build failure when bumping.
the uses could easily be updated / removed, if people prefer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 23:19:16 +02:00
Michael Niedermayer
889cb3ae23 avcodec: remove deprecated use of FF_IDCT_XVIDMMX
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit eedc3f36532e4c6de782fe1c2dc59d192418a8fc)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 22:45:57 +02:00
Michael Niedermayer
3e41d2e612 Merge commit 'f4c444e17d137c786f0ed2da0e5943df505d5f9e'
* commit 'f4c444e17d137c786f0ed2da0e5943df505d5f9e':
  Postpone API-incompatible changes until the next bump.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 22:19:45 +02:00
Michael Niedermayer
499ff6a052 Merge commit '7acdd3a1275bcd9cad48f9632169f6bbaeb39d84'
* commit '7acdd3a1275bcd9cad48f9632169f6bbaeb39d84':
  hevc_filter: avoid excessive calls to ff_hevc_get_ref_list()

Conflicts:
	libavcodec/hevc_filter.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 21:49:55 +02:00
Michael Niedermayer
8d7c4cc082 Merge commit 'a7a17e3f1915ce69b787dc58c5d8dba0910fc0a4'
* commit 'a7a17e3f1915ce69b787dc58c5d8dba0910fc0a4':
  hevc_filter: move some conditions out of loops

Conflicts:
	libavcodec/hevc_filter.c

This is possibly less readable than the variant used before.
Thus please take a look and if people agree its worse, dont
hesitate to revert.

See: 83976e40e8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 21:29:33 +02:00
Michael Niedermayer
3f2495d98c Merge commit '70211539a39ca3854f8a9e97d51dc27caa079943'
* commit '70211539a39ca3854f8a9e97d51dc27caa079943':
  hevc: deobfuscate slice/tile boundary handling for DBF

Conflicts:
	libavcodec/hevc.c
	libavcodec/hevc_filter.c

See: a5c621aa85
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 21:01:55 +02:00
Anton Khirnov
9325d88eba lavc: remove obsolete and disabled avpriv functions 2014-08-09 16:59:34 +00:00
Anton Khirnov
472f9ed312 Remove obsolete FF_API_AVFRAME_COLORSPACE cruft. 2014-08-09 16:59:13 +00:00
Anton Khirnov
1985c2e75c Bump major versions of all libraries. 2014-08-09 16:58:33 +00:00
Anton Khirnov
f4c444e17d Postpone API-incompatible changes until the next bump. 2014-08-09 16:57:10 +00:00
Anton Khirnov
7acdd3a127 hevc_filter: avoid excessive calls to ff_hevc_get_ref_list()
1) each of the loops run within a single CTB, so the relevant reference
list is constant
2) when that CTB is, or lies on the same slice as, the current one, we
can use a simple access instead of a relatively expensive call to
ff_hevc_get_ref_list()
2014-08-09 16:15:51 +00:00
Anton Khirnov
52a2c17ec0 hevc_refs: drop the handling of negative coordinates in ff_hevc_get_ref_list()
It makes no sense and cannot happen in any place from which this
function is called.
2014-08-09 16:15:38 +00:00
Anton Khirnov
a7a17e3f19 hevc_filter: move some conditions out of loops 2014-08-09 16:15:11 +00:00
Anton Khirnov
70211539a3 hevc: deobfuscate slice/tile boundary handling for DBF
Use named constants instead of magic numbers, avoid using variables with
inverse meaning from what their name implies.
2014-08-09 16:13:48 +00:00
Anton Khirnov
5501971578 hevc_filter: drop more redundant checks
The if() around those loops ensures this condition is always false.
2014-08-09 16:13:37 +00:00
Anton Khirnov
65b8b6c476 hevc_filter: drop redundant checks
ff_hevc_deblocking_boundary_strengths() is never called if the
deblocking filter is disabled for the slice.
2014-08-09 16:13:24 +00:00
Anton Khirnov
4d1ff2a489 hevc: calculate the dbf strength in hls_pcm_sample() only if dbf is enabled 2014-08-09 16:13:11 +00:00
Michael Niedermayer
25eeff9600 avcodec/avdct: add "xvid" alias AVOption and use FF_IDCT_XVID
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 12:42:07 +02:00
Michael Niedermayer
3841f2ae66 Merge commit 'd35b94fbabd8beb5d566c0b5d01688aff62c3b36'
* commit 'd35b94fbabd8beb5d566c0b5d01688aff62c3b36':
  avcodec: Rename xvidmmx IDCT to xvid

Conflicts:
	doc/APIchanges
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-09 12:11:13 +02:00
Michael Niedermayer
0dcebb9f63 Merge commit '84d173d3de97c753234ab0c0b50551d51413d663'
* commit '84d173d3de97c753234ab0c0b50551d51413d663':
  xvididct: Ensure that the scantable permutation is always set correctly

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 22:17:04 +02:00
Michael Niedermayer
5ff2b33401 Merge commit '6f1960ab71b4f18551243ce22d01913108265233'
* commit '6f1960ab71b4f18551243ce22d01913108265233':
  idct: cosmetics: Drop one unnecessary if-block level

Conflicts:
	libavcodec/idctdsp.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-08 21:53:20 +02:00
Diego Biurrun
d35b94fbab avcodec: Rename xvidmmx IDCT to xvid
The Xvid IDCT is not MMX-specific.
2014-08-08 11:13:30 -07:00
Diego Biurrun
84d173d3de xvididct: Ensure that the scantable permutation is always set correctly
This fixes cases where the scantable permuation would get overwritten by
the general idctdsp initialization.
2014-08-08 11:13:29 -07:00
Diego Biurrun
6f1960ab71 idct: cosmetics: Drop one unnecessary if-block level 2014-08-08 11:13:29 -07:00
Michael Niedermayer
a561662fb7 Merge commit 'ad1ee5fa75a3d69d54c0691048939e94ab5a7f0d'
* commit 'ad1ee5fa75a3d69d54c0691048939e94ab5a7f0d':
  avcodec: Undeprecate reordered_opaque

Conflicts:
	doc/APIchanges
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 20:43:11 +02:00
Michael Niedermayer
2bf87dcc2d Merge commit 'a7e541c9926d531a100ba0d36f4e56956dd84651'
* commit 'a7e541c9926d531a100ba0d36f4e56956dd84651':
  h264: fix interpretation of interleved stereo modes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 20:22:16 +02:00
James Almer
dd2b0c1cde lavc: remove nonexistent functions from the version file
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 13:20:59 +02:00
Diego Biurrun
ad1ee5fa75 avcodec: Undeprecate reordered_opaque
It allows attaching other external, opaque data to the frame and passing it
through the reordering process, for cases when the caller wants other data
than just the plain packet pts.  There is no way to cleanly achieve this
without the field.
2014-08-07 04:03:00 -07:00
James Almer
0ab00a75e4 avcodec/raw: add avpriv_get_raw_pix_fmt_tags()
Used to expose ff_raw_pix_fmt_tags[] to other libav* libraries

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 12:52:38 +02:00
Felix Abecassis
a7e541c992 h264: fix interpretation of interleved stereo modes
Column and row frame packing arrangements were inverted.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-08-07 11:31:47 +01:00
Michael Niedermayer
4213fc5b9e avcodec/svq1dec: Fix multiple bugs from "svq1: do not modify the input packet"
Add padding, clear size, use the correct pointer.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 02:27:07 +02:00
Michael Niedermayer
e55e09949e Merge commit '7b588bb691644e1b3c168b99accf74248a24e3cf'
* commit '7b588bb691644e1b3c168b99accf74248a24e3cf':
  svq1: do not modify the input packet

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 02:08:56 +02:00
Michael Niedermayer
c628627995 Merge commit 'c7d9b473e28238d4a4ef1b7e8b42c1cca256da36'
* commit 'c7d9b473e28238d4a4ef1b7e8b42c1cca256da36':
  cdgraphics: do not return 0 from the decode function

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 01:56:50 +02:00
Michael Niedermayer
91b4ed0918 Merge commit 'a1599f3f7ea8478d1f6a95e59e3bc6bc86d5f812'
* commit 'a1599f3f7ea8478d1f6a95e59e3bc6bc86d5f812':
  cdgraphics: switch to bytestream2

Conflicts:
	libavcodec/cdgraphics.c

See: ad002e1a13
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 01:45:22 +02:00
James Almer
8dfb8190d7 libavcodec/rawdec: remove old ff_find_pix_fmt() function
It's been dead code for more than a year

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-07 00:44:07 +02:00
Michael Niedermayer
7a34b7d80f avcodec/dca: Make ff_dca_convert_bitstream() available to libavformat, needed for dts_probe()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 22:28:35 +02:00
Anton Khirnov
7b588bb691 svq1: do not modify the input packet
The input data must remain constant, make a copy instead. This is in
theory a performance hit, but since I failed to find any samples
using this feature, this should not matter in practice.

Also, check the size of the header, avoiding invalid reads on truncated
data.

CC:libav-stable@libav.org
2014-08-06 18:59:27 +00:00
Anton Khirnov
c7d9b473e2 cdgraphics: do not return 0 from the decode function
0 means no data consumed, so it can trigger an infinite loop in the
caller.

CC:libav-stable@libav.org
2014-08-06 18:32:42 +00:00
Anton Khirnov
a1599f3f7e cdgraphics: switch to bytestream2
Fixes possible invalid memory accesses on corrupted data.

CC:libav-stable@libav.org
Bug-ID: CVE-2013-3674
2014-08-06 18:32:38 +00:00
Christophe Gisquet
75837e9add x86: sbrdsp/fft: reuse ps_neg constant
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 19:25:08 +02:00
Christophe Gisquet
51dd80e751 x86: diracdsp: reuse constants
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 19:25:02 +02:00
Christophe Gisquet
6622a6cff3 x86: dwt: better share constants
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 19:24:57 +02:00
Christophe Gisquet
71db2d08b1 x86: better share ff_pw_2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 19:24:49 +02:00
Christophe Gisquet
4e128ab0b1 x86: vpx/h264/hevc/mpeg2: share constants
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 18:36:31 +02:00
Michael Niedermayer
305f72aee7 avcodec: Change get_pixels() to ptrdiff_t linesize
Found-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 15:50:54 +02:00
Vittorio Giovara
cbc808d726 jpeg2000: enable 4 component pixel formats
Bug-Id: 721
CC: libav-stable@libav.org
Sample-Id: 31230.mov
2014-08-06 12:23:21 +01:00
Christophe Gisquet
6786848585 hevc_deblock: change tc type
The x86 asm expects int32_t so use that type.

Reviewed-by: Mickaël Raulet <mraulet@insa-rennes.fr>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 12:38:26 +02:00
Michael Niedermayer
296b01d7f9 Merge commit 'a7153444df9040bf6ae103e0bbf6104b66f974cb'
* commit 'a7153444df9040bf6ae103e0bbf6104b66f974cb':
  huffyuvdec: check width size for yuv422p

Conflicts:
	libavcodec/huffyuvdec.c

See: 6abb9a901f
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-06 00:08:03 +02:00
Michael Niedermayer
a7153444df huffyuvdec: check width size for yuv422p
Avoid out of array accesses.

CC: libav-stable@libav.org
Bug-Id: CVE-2013-0848
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-05 20:01:59 +00:00
Michael Niedermayer
70cd3b8e65 mmvideo: check horizontal coordinate too
Fixes out of array accesses.

Bug-Id: CVE-2013-3672
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-05 19:16:12 +00:00
Michael Niedermayer
849b9d34c7 wmalosslessdec: fix mclms_coeffs* array size
Fixes corruption of context

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
Bug-Id: CVE-2014-2098
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-08-05 14:58:03 +00:00
Michael Niedermayer
9988899993 Merge commit '701e8b42e12ad625c64ceae2252acb1de390278c'
* commit '701e8b42e12ad625c64ceae2252acb1de390278c':
  vc-1: Optimise parser (with special attention to ARM)

Conflicts:
	libavcodec/vc1_parser.c

See: a0d7f9ec9a
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 13:37:07 +02:00
Michael Niedermayer
bf7ed956ff Merge commit 'adf8227cf4e7b4fccb2ad88e1e09b6dc00dd00ed'
* commit 'adf8227cf4e7b4fccb2ad88e1e09b6dc00dd00ed':
  vc-1: Add platform-specific start code search routine to VC1DSPContext.

Conflicts:
	configure
	libavcodec/arm/vc1dsp_init_arm.c
	libavcodec/vc1dsp.c
	libavcodec/vc1dsp.h

See: 9d8ecdd8ca
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 13:00:41 +02:00
Michael Niedermayer
77aafadc56 Merge commit 'db7f1c7c5a1d37e7f4da64a79a97bea1c4b6e9f8'
* commit 'db7f1c7c5a1d37e7f4da64a79a97bea1c4b6e9f8':
  h264: Move start code search functions into separate source files.

Conflicts:
	libavcodec/arm/Makefile
	libavcodec/arm/h264dsp_init_arm.c
	libavcodec/h264_parser.c
	libavcodec/h264dsp.c
	libavcodec/startcode.c
	libavcodec/startcode.h

See: 270cede3f3
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 12:46:10 +02:00
James Almer
de417982e8 x86/vp9lpf: use fewer instructions in SPLATB_MIX
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 02:47:54 +02:00
Bernd Kuhls
bf6c84d7eb Fix compile error on bfin.
After the removal of all Blackfin architecture optimizations in
http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b55d3bbeed375f7b74442c4dd274d116a3e3d2e1
some includes were left behind leading to a compile error:

CC      libavformat/adtsenc.o
In file included from ./libavcodec/get_bits.h:35,
                 from ./libavcodec/ac3_parser.h:27,
                 from libavformat/ac3dec.c:23:
./libavcodec/mathops.h:43:29: error: bfin/mathops.h: No such file or directory

This compile error was found by buildroot autobuild system:
http://autobuild.buildroot.net/results/ae0/ae056f267e907091d09d2a1546d6f1ae02fa23b9/

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 01:54:47 +02:00
Michael Niedermayer
debb88776c Merge commit '990e2f3555bb0adae122d3599938ddcfee46e2d1'
* commit '990e2f3555bb0adae122d3599938ddcfee46e2d1':
  avcodec: Suppress deprecation warnings from DTG code scheduled for removal

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-05 01:15:11 +02:00
Michael Niedermayer
8f83fb9991 Merge commit '60cbd6ad84de0931314030b81df87b69d6196587'
* commit '60cbd6ad84de0931314030b81df87b69d6196587':
  tiff: support reading gray+alpha at 8 bits

Conflicts:
	libavcodec/tiff.c

See: f746f37901
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 22:52:01 +02:00
Michael Niedermayer
47080b6d17 Merge commit 'bcc5f69b33e27b5e11aaea8304ee02f8d895cdab'
* commit 'bcc5f69b33e27b5e11aaea8304ee02f8d895cdab':
  tiff: support reading gray+alpha at 16 bits

Conflicts:
	libavcodec/tiff.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 22:45:33 +02:00
Michael Niedermayer
59412e3a07 Merge commit 'e64f0bf2d2b1347ec9461f0e82852a62e8c6ffbe'
* commit 'e64f0bf2d2b1347ec9461f0e82852a62e8c6ffbe':
  png: support reading gray+alpha at 16 bits

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 22:38:12 +02:00
Ben Avison
701e8b42e1 vc-1: Optimise parser (with special attention to ARM)
The previous implementation of the parser made four passes over each input
buffer (reduced to two if the container format already guaranteed the input
buffer corresponded to frames, such as with MKV). But these buffers are
often 200K in size, certainly enough to flush the data out of L1 cache, and
for many CPUs, all the way out to main memory. The passes were:

1) locate frame boundaries (not needed for MKV etc)
2) copy the data into a contiguous block (not needed for MKV etc)
3) locate the start codes within each frame
4) unescape the data between start codes

After this, the unescaped data was parsed to extract certain header fields,
but because the unescape operation was so large, this was usually also
effectively operating on uncached memory. Most of the unescaped data was
simply thrown away and never processed further. Only step 2 - because it
used memcpy - was using prefetch, making things even worse.

This patch reorganises these steps so that, aside from the copying, the
operations are performed in parallel, maximising cache utilisation. No more
than the worst-case number of bytes needed for header parsing is unescaped.
Most of the data is, in practice, only read in order to search for a start
code, for which optimised implementations already existed in the H264 codec
(notably the ARM version uses prefetch, so we end up doing both remaining
passes at maximum speed). For MKV files, we know when we've found the last
start code of interest in a given frame, so we are able to avoid doing even
that one remaining pass for most of the buffer.

In some use-cases (such as the Raspberry Pi) video decode is handled by the
GPU, but the entire elementary stream is still fed through the parser to
pick out certain elements of the header which are necessary to manage the
decode process. As you might expect, in these cases, the performance of the
parser is significant.

To measure parser performance, I used the same VC-1 elementary stream in
either an MPEG-2 transport stream or a MKV file, and fed it through avconv
with -c:v copy -c:a copy -f null. These are the gperftools counts for
those streams, both filtered to only include vc1_parse() and its callees,
and unfiltered (to include the whole binary). Lower numbers are better:

                Before          After
File  Filtered  Mean   StdDev   Mean   StdDev  Confidence  Change
M2TS  No        861.7  8.2      650.5  8.1     100.0%      +32.5%
MKV   No        868.9  7.4      731.7  9.0     100.0%      +18.8%
M2TS  Yes       250.0  11.2     27.2   3.4     100.0%      +817.9%
MKV   Yes       149.0  12.8     1.7    0.8     100.0%      +8526.3%

Yes, that last case shows vc1_parse() running 86 times faster! The M2TS
case does show a larger absolute improvement though, since it was worse
to begin with.

This patch has been tested with the FATE suite (albeit on x86 for speed).

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-04 22:22:54 +02:00
Ben Avison
adf8227cf4 vc-1: Add platform-specific start code search routine to VC1DSPContext.
Initialise VC1DSPContext for parser as well as for decoder.
Note, the VC-1 code doesn't actually use the function pointer yet.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-04 22:22:54 +02:00
Ben Avison
db7f1c7c5a h264: Move start code search functions into separate source files.
This permits re-use with parsers for codecs which use similar start codes.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-08-04 22:22:54 +02:00
Michael Niedermayer
4c8bc6fdee Merge commit 'e96c3b81cadd0ba84d43b1f3a54980df3785d9a5'
* commit 'e96c3b81cadd0ba84d43b1f3a54980df3785d9a5':
  avutil: rename AV_PIX_FMT_Y400A to AV_PIX_FMT_YA8

Conflicts:
	libavcodec/libopenjpegdec.c
	libavcodec/libopenjpegenc.c
	libavcodec/raw.c
	libavutil/pixdesc.c
	libavutil/pixfmt.h
	libavutil/version.h
	libswscale/swscale_internal.h
	libswscale/swscale_unscaled.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 21:48:00 +02:00
Diego Biurrun
990e2f3555 avcodec: Suppress deprecation warnings from DTG code scheduled for removal 2014-08-04 11:08:35 -07:00
Christophe Gisquet
e8c003edd2 x86: hevc_deblock: remove unnecessary masking
The unpacks/shuffles later on makes it unnecessary.

Before:
1508 decicycles in h, 2096759 runs, 393 skips
2512 decicycles in v, 2095422 runs, 1730 skips

After:
1477 decicycles in h, 2096745 runs, 407 skips
2484 decicycles in v, 2095297 runs, 1855 skips

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 17:46:04 +02:00
James Almer
b7863c972c x86/hevc_mc: use fewer instructions in hevc_put_hevc_{uni, bi}_w[24]_{8, 10, 12}
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 14:47:15 +02:00
James Almer
b1a44e6bf5 x86/hevc_mc: remove an unnecessary pxor
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: Mickaël Raulet <mraulet@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 14:35:08 +02:00
Carl Eugen Hoyos
60cbd6ad84 tiff: support reading gray+alpha at 8 bits
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-08-04 12:57:39 +01:00
Vittorio Giovara
bcc5f69b33 tiff: support reading gray+alpha at 16 bits 2014-08-04 12:57:38 +01:00
Vittorio Giovara
e64f0bf2d2 png: support reading gray+alpha at 16 bits 2014-08-04 12:57:38 +01:00
Vittorio Giovara
2257165bff png: disable broken MMX/SIMD code for bpp <= 2
The decoder was producing different results when ASM was disabled.
Based on a long debug session with Kostya.
2014-08-04 12:57:38 +01:00
Vittorio Giovara
e96c3b81ca avutil: rename AV_PIX_FMT_Y400A to AV_PIX_FMT_YA8
The rationale is that you have a packed format in form
<greyscale sample> <alpha sample> <greyscale sample> <alpha sample>
and shortening greyscale to 'G' might make one thing about Greenscale instead.
An alias pixel format and color space name are provided for compatibility.
2014-08-04 12:55:08 +01:00
Michael Niedermayer
71d008ebe4 Merge commit '1ef9e8376466bb1e2c147e47554b94cab9c8b04a'
* commit '1ef9e8376466bb1e2c147e47554b94cab9c8b04a':
  avcodec: Deprecate dtg_active_format field in favor of avframe side-data

Conflicts:
	doc/APIchanges
	libavcodec/avcodec.h
	libavcodec/mpeg12dec.c
	libavcodec/version.h
	libavfilter/vf_showinfo.c
	libavutil/frame.h
	libavutil/version.h

See: 2a3c36e920
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 06:11:34 +02:00
Kieran Kunhya
2a3c36e920 Deprecate AFD field and add AFD as side-data
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 05:36:44 +02:00
Michael Niedermayer
2793b218bd Merge commit 'd0393d79bc3d61c9f2ff832c0e273b7774ff0269'
* commit 'd0393d79bc3d61c9f2ff832c0e273b7774ff0269':
  huffyuv: Check and propagate function return values

Conflicts:
	libavcodec/huffyuvdec.c

See: f67a0d1152
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 05:29:55 +02:00
Michael Niedermayer
d5fde13bd2 Merge commit '6234058148d6e1ee765913b678a22385a87bffac'
* commit '6234058148d6e1ee765913b678a22385a87bffac':
  huffyuv: Return proper error codes

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:58:13 +02:00
Michael Niedermayer
e9cd8f4d20 Merge commit 'b7616f5716dce68c749d5dfeab19cf595a11807c'
* commit 'b7616f5716dce68c749d5dfeab19cf595a11807c':
  huffyuv: Eliminate some pointless casts

Conflicts:
	libavcodec/huffyuvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:42:04 +02:00
Michael Niedermayer
c1e7fb60d1 Merge commit 'c065f4a0c652cc569c927c95148111b3aa2962dc'
* commit 'c065f4a0c652cc569c927c95148111b3aa2962dc':
  huffyuv: K&R formatting cosmetics

Conflicts:
	libavcodec/huffyuvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:34:17 +02:00
Michael Niedermayer
2aeeb3ba1f Merge commit 'f89d76c10355242c39b08f253c1d1524f45ef778'
* commit 'f89d76c10355242c39b08f253c1d1524f45ef778':
  mpeg4video: Initialize xvididct for all threads

Conflicts:
	libavcodec/mpeg4videodec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:14:43 +02:00
Michael Niedermayer
7fd60d1e7a Merge commit 'ac6b95dbc0b53b3ea461bd5e5e7f7f31d2983733'
* commit 'ac6b95dbc0b53b3ea461bd5e5e7f7f31d2983733':
  aarch64: add ',' between assembler macro arguments where missing

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-04 04:06:13 +02:00
Kieran Kunhya
1ef9e83764 avcodec: Deprecate dtg_active_format field in favor of avframe side-data
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-03 15:43:02 -07:00
Diego Biurrun
d0393d79bc huffyuv: Check and propagate function return values
Bug-Id: CVE-2013-0868

inspired by a patch from Michael Niedermayer <michaelni@gmx.at>
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Diego Biurrun <diego@biurrun.de>

CC: libav-stable@libav.org
2014-08-03 15:35:30 -07:00
Diego Biurrun
6234058148 huffyuv: Return proper error codes 2014-08-03 15:18:58 -07:00
Diego Biurrun
b7616f5716 huffyuv: Eliminate some pointless casts 2014-08-03 15:18:58 -07:00
Diego Biurrun
c065f4a0c6 huffyuv: K&R formatting cosmetics 2014-08-03 15:18:58 -07:00
Anton Khirnov
f89d76c103 mpeg4video: Initialize xvididct for all threads
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-03 15:18:58 -07:00
Diego Biurrun
3160bdc7f7 huffyuv: Use avpriv_report_missing_feature() where appropriate 2014-08-03 15:18:58 -07:00
Janne Grunau
ac6b95dbc0 aarch64: add ',' between assembler macro arguments where missing
llvm's integrated assembler does not accept spaces as macro argument
delimiter when targeting darwin. Using a explicit delimiter is a good
idea in principle since it makes case like 'macro 4 -2' vs 'macro 4 - 2'
clear.
2014-08-04 00:17:21 +02:00
Michael Niedermayer
e680c731a2 avcodec/avdct: Add get_pixels()
Suggested-by: ubitux
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 23:34:35 +02:00
Michael Niedermayer
9400603140 Merge commit '9f17685dfb70a73823aca16ad246ee3b831d1de8'
* commit '9f17685dfb70a73823aca16ad246ee3b831d1de8':
  avcodec: Deprecate unused defines and options

Conflicts:
	doc/APIchanges
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 20:53:00 +02:00
Michael Niedermayer
76aec9e6b4 Merge commit 'bad81800bb51f43d28d656abf5d45b477e3b3198'
* commit 'bad81800bb51f43d28d656abf5d45b477e3b3198':
  avcodec: options: Add missing deprecation ifdefs around emu_edge

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 19:45:38 +02:00
Michael Niedermayer
2212bff9a2 Merge commit 'c697c590fbf296b1679b80c8f4071e4c8a6c884b'
* commit 'c697c590fbf296b1679b80c8f4071e4c8a6c884b':
  lcl: Disentangle pointers to input data and decompression buffer

Conflicts:
	libavcodec/lcldec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 18:58:19 +02:00
Michael Niedermayer
b7f8d3de2c Merge commit '7835c24e19d9e1cb43fba5a02ce9d81d518f1300'
* commit '7835c24e19d9e1cb43fba5a02ce9d81d518f1300':
  dv: Update DV-profile-related functions to current public API

Conflicts:
	libavcodec/dvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 18:29:38 +02:00
Michael Niedermayer
b4d525eb63 avcodec/pnm: check buf[0] before using buf[1]
Fixes CSA warning
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 14:01:03 +02:00
Diego Biurrun
9f17685dfb avcodec: Deprecate unused defines and options 2014-08-03 03:24:16 -07:00
Diego Biurrun
bad81800bb avcodec: options: Add missing deprecation ifdefs around emu_edge 2014-08-03 03:24:15 -07:00
Michael Niedermayer
4fed019821 avcodec/takdec: remove unused variable
Found-by: CSA
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 11:35:25 +02:00
Michael Niedermayer
7dbc27dc1d avcodec/takdec: move tmp declaration to where its used
Makes the code a bit easier to read

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 11:34:51 +02:00
Diego Biurrun
c697c590fb lcl: Disentangle pointers to input data and decompression buffer
This is cleaner and avoids a cast plus a related const qualifier warning.
2014-08-03 01:29:43 -07:00
James Almer
d0f56ca071 x86/hevc_deblock: improve 8bit transpose store macros
Up to four instructions less depending on function and instruction set.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-03 04:24:15 +02:00
Clément Bœsch
ee7ee9b1b4 avcodec/mpeg12dec: fix vissible typo after 17c65651 2014-08-03 00:02:23 +02:00
Michael Niedermayer
17c6565186 avcodec/mpeg12dec: Document Ticket3809 fix
Suggested-by: Reimar
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 23:10:23 +02:00
Michael Niedermayer
c103c48525 avcodec/error_resilience: make error an local variable where possible
This makes the code easier to understand as the scope of the variable is
smaller.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 22:04:08 +02:00
Michael Niedermayer
459996325d avcodec/error_resilience: comment out unused assignment
Its not removed as the code which uses this is out-commented too.

Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 22:01:59 +02:00
Diego Biurrun
7835c24e19 dv: Update DV-profile-related functions to current public API 2014-08-02 12:54:37 -07:00
Diego Biurrun
df507d5aa0 tiff: Replace deprecated PIX_FMT names by modern ones 2014-08-02 12:54:37 -07:00
Michael Niedermayer
d73371b58c avcodec/mmvideo: remove unused return value and assignment
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 21:46:24 +02:00
Michael Niedermayer
08b6591cf6 avcodec/avuienc: move pointer declaration to where its used
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 20:13:08 +02:00
Michael Niedermayer
146e498c9e Merge commit 'ffa4d4ef0bd66c4e8bde7357b69bdedc78123ea8'
* commit 'ffa4d4ef0bd66c4e8bde7357b69bdedc78123ea8':
  ppc: fft: Build AltiVec optimizations in the standard way

Conflicts:
	libavcodec/ppc/Makefile

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 19:40:18 +02:00
Michael Niedermayer
e706fe7640 avcodec/wavpackenc: Fix log2sample() result value
Found-by: CSA
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 18:15:12 +02:00
Diego Biurrun
ffa4d4ef0b ppc: fft: Build AltiVec optimizations in the standard way 2014-08-02 07:40:37 -07:00
Matthew Oliver
66627075d9 msvc: fix implicitly declared read/close.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 14:52:17 +02:00
Michael Niedermayer
3fa9692ae2 avcodec/hevc: move HEVCLocalContext declaration into loop
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 05:15:57 +02:00
Michael Niedermayer
92be540636 avcodec/h264_parser: remove redundant assignment
Found-by: CSA
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 05:14:18 +02:00
Michael Niedermayer
bcc898dd26 avcodec/dvdsub_parser: print message if packet is smaller than the packet size field
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 01:17:24 +02:00
Michael Niedermayer
81c1657a59 avcodec/dvdsub_parser: Check buf_size before reading 32bit packet size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-02 01:15:37 +02:00