Commit Graph

31099 Commits

Author SHA1 Message Date
James Almer
1679d68dbf x86/hevc_mc: optimize AVX2 mc functions
Before
40766 decicycles in ff_hevc_put_hevc_qpel_h64_8_avx2, 8192 runs, 0 skips

After
37975 decicycles in ff_hevc_put_hevc_qpel_h64_8_avx2, 8192 runs, 0 skips

Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-02-12 13:21:58 -03:00
James Almer
14b44c1614 x86/hevc_sao: make sao_edge_filter_{10,12} work on x86_32
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-02-12 13:21:30 -03:00
Michael Niedermayer
cab6302534 avcodec/arm/videodsp_armv5te: Fix linking failure with "g++ -shared -D__STDC_CONSTANT_MACROS -o test.so ... libavcodec.a"
Tested-by: Andreas Haupt
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-12 16:35:29 +01:00
Michael Niedermayer
9843746570 avcodec/mpegvideo_enc: correctly initialize chroma_intra_matrix for MPEG1/2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-12 00:19:22 +01:00
Michael Niedermayer
0bcb040a2e avcodec/mpegvideo_enc: Consider chroma_intra_matrix in dct_quantize_trellis_c()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-11 23:58:22 +01:00
Michael Niedermayer
7cac568b39 avcodec/mjpegenc: support trellis quantization
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-11 21:52:55 +01:00
Michael Niedermayer
7366bb38f1 avcodec/mpegvideo_enc: Add intra_chroma_ac_vlc_length, it will be needed for mjpeg
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-11 21:35:53 +01:00
Michael Niedermayer
08509c8f86 avcodec/mjpegdec: Skip blocks which are outside the visible area
Fixes out of array accesses
Fixes: ffmpeg_mjpeg_crash.avi

Found-by: Thomas Lindroth <thomas.lindroth@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-11 03:53:30 +01:00
Paul B Mahol
392d975efe avcodec: fix clobbered ff_get_buffer()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-02-10 14:20:32 +00:00
Paul B Mahol
e4eba9e21d avcodec/mss4: use av_malloc_array()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-02-10 09:35:23 +00:00
Paul B Mahol
fd6768a4b8 avcodec/huffman: check if map was allocated too
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-02-10 09:35:23 +00:00
Paul B Mahol
a5398aa56c avcodec/hevc_parser: check for av_mallocz() failure
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-02-10 09:35:23 +00:00
James Almer
06fe6dfe12 x86/hevc_sao: make sao_band_filter work on x86_32
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-02-09 20:41:21 -03:00
Paul B Mahol
238247b622 avcodec/sgienc: return meaningful error code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-02-09 14:07:54 +00:00
Michael Niedermayer
d80fe5d4bc avcodec/vb: Check for av_mallocz() failure
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-09 09:27:16 +01:00
Seppo Tomperi
03cecf45c1 hevcdsp: ARM NEON optimized transforms
cherry picked from commit b153f55935969c794de4640f8d34e01c58e027ae

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-08 23:29:35 +01:00
Christophe Gisquet
b61b9e4919 x86: hevc_mc: remove lea in EPEL_LOAD
The second parameter to the macro is always an immediate address,
so no lea is needed.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-08 22:19:35 +01:00
Christophe Gisquet
4919b38421 x86: hevc_mc: fewer gpr autoloads for _v filters
In that case, it's just to load my, but mx/r3src is not used.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-08 22:19:34 +01:00
James Almer
92d903afaa x86/vp9dsp: fix clobbering of xmm6 on IDCT sse2 functions
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-02-08 00:50:39 -03:00
Michael Niedermayer
7c148f30f3 Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  Support decoding yuv dpx images.
  Do not use -mdynamic-no-pic on OSX x86_64.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-08 02:36:23 +01:00
Michael Niedermayer
2048126ea7 avcodec/utils: Assert that dst->progress is clear before ff_thread_ref_frame()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-08 02:27:27 +01:00
Michael Niedermayer
de6df46120 avcodec/h264: Setup decoder to have matching reference to the EC code
Also move EC ref initialization to where the EC code is called.
Fixes out of array read
Fixes: asan_heap-uaf_143f420_142_20110805_112659_ch0.mkv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-08 02:27:27 +01:00
Michael Niedermayer
ecfd48dc06 avcodec/h264: Move COPY_PICTURE() to h264.h so it can be used from other parts of the h264 decoder
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-08 02:27:27 +01:00
Carl Eugen Hoyos
2efaaf9476 Support decoding yuv dpx images. 2015-02-08 00:12:46 +01:00
Christophe Gisquet
626d6184ce x86: lavc/hevc_mc: fix comments
The width parameter is now completely at the back, and actually
never used. This helps understanding the actual parameter list.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-07 20:52:03 +01:00
Paul B Mahol
134e8c73ea avcodec/faxcompr: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-02-07 17:16:14 +00:00
Christophe Gisquet
97996eff4f hevc/sao: do in-place band filtering when possible
The copies are only needed when data must be restored, so skip them
when it must not be.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-07 18:04:25 +01:00
Christophe Gisquet
ed450d4acf x86: lavc: share more constant through defines
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-07 17:48:14 +01:00
Paul B Mahol
ec8ec999f4 avcodec/twinvqdec: use init_get_bits8()
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-02-07 15:19:03 +00:00
Christophe Gisquet
691b7f5e9e lavc/lossless_audiodsp: revert various commits
Their intent was to make the DSP work with wmalossless pro.
The later was fixed to work with the DSP.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-07 15:15:19 +01:00
Christophe Gisquet
46e2afa4dc wmalossless: reset lms_update
It may contain garbage at the end, and zeroing allows using DSP
with longer loops.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-07 15:14:32 +01:00
Anshul Maheshwari
f05efd42af avcodec/ccaption_dec: Added Debug logs
Signed-off-by: Anshul Maheshwari <er.anshul.maheshwari@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-07 06:01:31 +01:00
Anshul Maheshwari
5647286e67 avcodec/ccaption_dec: handle error from ass_sub api
Signed-off-by: Anshul Maheshwari <er.anshul.maheshwari@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-07 05:51:17 +01:00
Anshul Maheshwari
bf30161a8d avcodec/ccaption_dec: Added Roll up functionality
Signed-off-by: Anshul Maheshwari <er.anshul.maheshwari@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-07 05:51:10 +01:00
Michael Niedermayer
2fd9ce92af avcodec/h264_slice: assert that reinit does not occur after the first slice
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-07 03:59:45 +01:00
Michael Niedermayer
38d5241b7f avcodec/h264_slice: ignore SAR changes in slices after the first
Fixes race condition and null pointer dereference
Fixes: signal_sigsegv_1472ac3_468_cov_2915641226_CABACI3_Sony_B.jsv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-07 03:59:45 +01:00
Michael Niedermayer
f111831ed6 avcodec/h264_slice: Check picture structure before setting the related fields
This might fix a hypothetical race condition

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-07 03:59:45 +01:00
Michael Niedermayer
f906982c94 avcodec/h264_slice: Do not change frame_num after the first slice
Fixes potential race condition
Fixes: signal_sigsegv_1472ac3_468_cov_2915641226_CABACI3_Sony_B.jsv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-07 02:20:14 +01:00
Christophe Gisquet
9dc45d1f42 x86: lavc: share more constants
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-06 23:35:02 +01:00
Michael Niedermayer
bfb988b1fa Merge remote-tracking branch 'cehoyos/master'
* cehoyos/master:
  lavc/tscc: Make 32bit output opaque.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-06 22:31:32 +01:00
Mickaël Raulet
6ecc3fd612 x86/hevc_mc: use aligned loads
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-06 21:38:00 +01:00
James Almer
383fddeec6 x86/lossless_audiodsp: fix compilation with --disable-yasm
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-02-06 17:30:17 -03:00
Carl Eugen Hoyos
d45fadb6df lavc/tscc: Make 32bit output opaque.
Found-by: wm4
2015-02-06 21:02:08 +01:00
Michael Niedermayer
9bc7ee8a98 avcodec/avfft: Add simple self test
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-06 19:07:29 +01:00
Timothy Gu
5081012eb8 audioconvert: Add missing include for FF_API_AUDIO_CONVERT
Fixes warning in `make checkheaders`.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-06 19:07:29 +01:00
James Almer
aea29a891f x86/hevc_sao: fix loading of RIP address
pb_eo must be handled as a rip relative address for MSVC64, so an
intermediate register is needed. Should fix link failures.

Suggested by Hendrik Leppkes and Christophe Gisquet.

Tested-By: Hendrik Leppkes <h.leppkes@gmail.com>
Reviewed-by: Christophe Gisquet <christophe.gisquet@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-02-06 15:06:15 -03:00
Mickaël Raulet
bcb0925115 x86/hevc: use CLIPW macro when possible
Conflicts:
	libavcodec/x86/hevc_mc.asm

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-06 17:38:47 +01:00
Christophe Gisquet
5eedd36df1 x86: hevc_mc: use epel_hv 16-wide function
The epel_hv functions were still relying on only epel_hv 8-wide
being the maximum width instanciated.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-06 17:37:56 +01:00
Pierre Edouard Lepere
a0d1300f71 x86: hevc_mc: add AVX2 optimizations
before
33304 decicycles in luma_bi_1, 523066 runs, 1222 skips
38138 decicycles in luma_bi_2, 523427 runs, 861 skips
13490 decicycles in luma_uni, 516138 runs, 8150 skips
after
20185 decicycles in luma_bi_1, 519970 runs, 4318 skips
24620 decicycles in luma_bi_2, 521024 runs, 3264 skips
10397 decicycles in luma_uni, 515715 runs, 8573 skips

Conflicts:
	libavcodec/x86/hevc_mc.asm
	libavcodec/x86/hevcdsp_init.c

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-06 17:20:47 +01:00
Michael Niedermayer
6fafc62b0b avcodec/h264: Be more strict on rejecting pps/sps changes
Fixes race condition
Fixes: signal_sigsegv_1472ac3_468_cov_2915641226_CABACI3_Sony_B.jsv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-06 15:22:51 +01:00