1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Commit Graph

77983 Commits

Author SHA1 Message Date
Ganesh Ajjanagadde
4fa6f09c2c lavu/eval: remove pow and exp2 for postfixes
These postfixes can be computed statically, and there is no need to
waste runtime resources.

Tested with FATE.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-16 07:56:54 -05:00
Paul B Mahol
10b16aee1b avfilter/vf_stereo3d: get rid of ts_unit hack
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-16 13:00:46 +01:00
Stefano Sabatini
6e891d51f4 lavc/libopenh264: apply minor options text consistency fixes 2015-12-16 10:48:28 +01:00
Stefano Sabatini
5defa3a0b0 doc/encoders/libopenh264: update documentation after recent changes 2015-12-16 10:48:28 +01:00
Ganesh Ajjanagadde
65877ab935 lavc: typo fix uncliped -> unclipped
Untested due to lack of ppc.

Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-15 22:45:15 -05:00
Andreas Cadhalpun
ecf63b7cc2 ffm: reject invalid codec_id and codec_type
A negative codec_id cannot be handled by the found_decoder API of
AVStream->info: if the codec_id is not recognized, found_decoder is set
to -codec_id, which has to be '<0' according to the API documentation.

This can cause NULL pointer dereferencing in try_decode_frame.

Also make sure the codec_type matches the expected one for codec_id.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-15 22:43:25 +01:00
Paul B Mahol
09d84e00bd avfilter/af_ladspa: unbreak Mch -> Nch plugins, where M < N
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-15 20:53:13 +01:00
Reynaldo H. Verdejo Pinochet
0bdf84b6b0 ffserver: explicitly use time_t for uptime calc
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-15 10:04:59 -08:00
Reynaldo H. Verdejo Pinochet
dadb95142b ffserver: free pathname before bailing out
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-15 10:04:59 -08:00
Reynaldo H. Verdejo Pinochet
1fa81430ca ffserver: use EXIT_FAILURE on failed child fork()
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-15 10:04:59 -08:00
Reynaldo H. Verdejo Pinochet
eb68c35670 ffserver: be explicit on failed fork() msg
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-15 10:04:59 -08:00
Reynaldo H. Verdejo Pinochet
5a31f2318b ffserver: allocate AVStream's internal too
Avoids segfault at init_muxer() (mux.c) due to a
null pointer dereference on the recently
introduced AVStream->internal

Fixes: #5059 (https://trac.ffmpeg.org/ticket/5059)

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2015-12-15 10:04:49 -08:00
erankor
4469e8ebb2 movenc: support cenc (common encryption)
support writing encrypted mp4 using aes-ctr, conforming to ISO/IEC
23001-7.

3 new parameters were added:
- encryption_scheme - allowed values are none (default) and cenc-aes-ctr
- encryption_key - 128 bit encryption key (hex)
- encryption_kid - 128 bit encryption key identifier (hex)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-15 14:16:28 +01:00
erankor
23ac99dc17 libavutil: add aes-ctr support
for supporting mp4 cenc encoding/decoding

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-15 14:16:28 +01:00
Paul B Mahol
c54632d381 avfilter/vf_stereo3d: add direct (faster) path:
for above below and side by side to alternating format
for above below and side by side to mono format

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-15 11:53:25 +01:00
Hendrik Leppkes
577e0132a2 Merge commit 'e7078e842d93436edba1f30af1f9869d3913f7fe'
* commit 'e7078e842d93436edba1f30af1f9869d3913f7fe':
  hevcdsp: add x86 SIMD for MC

Not merged, FFmpeg HEVC DSP has diverged substantially from Libav.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-15 10:46:21 +01:00
Hendrik Leppkes
32105588fb Merge commit '0cef06df073934ca08d0357fcbbbcf2bc9b2a0cd'
* commit '0cef06df073934ca08d0357fcbbbcf2bc9b2a0cd':
  checkasm: add HEVC MC tests

Not merged, FFmpeg HEVC DSP has diverged substantially from Libav.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-15 10:45:06 +01:00
Hendrik Leppkes
d665d191a2 Merge commit 'a853388d2fc5be848cca839a9fdf39a97c2d7b0e'
* commit 'a853388d2fc5be848cca839a9fdf39a97c2d7b0e':
  hevc: change the stride of the MC buffer to be in bytes instead of elements

Not merged, FFmpeg HEVC DSP has diverged substantially from Libav.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-15 10:43:54 +01:00
Hendrik Leppkes
6f0eb62292 Merge commit '688417399c69aadd4c287bdb0dec82ef8799011c'
* commit '688417399c69aadd4c287bdb0dec82ef8799011c':
  hevcdsp: split the pred functions by width

Not merged, FFmpeg HEVC DSP has diverged substantially from Libav.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-15 10:43:06 +01:00
Hendrik Leppkes
14a28298cb Merge commit '818bfe7f0a3ff243deb63c4b146de2563f38ffd4'
* commit '818bfe7f0a3ff243deb63c4b146de2563f38ffd4':
  hevcdsp: split the epel functions by width

Not merged, FFmpeg HEVC DSP has diverged substantially from Libav.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-15 10:42:13 +01:00
Hendrik Leppkes
9db8c2d747 Merge commit '1f821750f0b8d0c87cbf88a28ad699b92db5ec88'
* commit '1f821750f0b8d0c87cbf88a28ad699b92db5ec88':
  hevcdsp: split the qpel functions by width instead of by the subpixel fraction

Not merged, FFmpeg HEVC DSP has diverged substantially from Libav.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-15 10:41:26 +01:00
Matthieu Bouron
ae1c750cb4 lavc/utils: use AVPixFmtDescriptor to probe palette formats
Also use the input frame format instead of the AVCodecContext one according
to the documentation of AVCodecContext.get_buffer2().
2015-12-15 10:35:47 +01:00
Matthieu Bouron
0c59d40ae0 lavfi: use a video frame pool for each link of the filtergraph 2015-12-15 10:35:41 +01:00
Paul B Mahol
04cc4d0550 avfilter/af_sofalizer: check av_fft_init return code
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-15 10:04:01 +01:00
Michael Niedermayer
a066ff89bc swscale/x86/rgb2rgb_template: Fallback to mmx in interleaveBytes() if the alignment is insufficient for SSE*
This also as a sideeffect fixes the non aligned case

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-15 03:06:33 +01:00
Michael Niedermayer
80bfce35cc swscale/x86/rgb2rgb_template: Do not crash on misaligend stride
Fixes Ticket5013

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-15 02:32:23 +01:00
Michael Niedermayer
06987dab97 avfilter/vf_decimate: fix typo in fraction
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 23:38:36 +01:00
Paul B Mahol
e8586ecb86 configure: add conditional library dependency for sofalizer and showfreqs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-14 22:41:52 +01:00
Paul B Mahol
2f12172d67 avfilter/af_sofalizer: add frequency domain processing and use it by default
Code ported from SOFAlizer patch for VLC.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-12-14 21:58:08 +01:00
Michael Niedermayer
30fe3fd527 avfilter/vf_decimate: Check that input parameters match
Fixes Ticket4964

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 21:46:05 +01:00
Andreas Cadhalpun
22e960ad47 golomb: always check for invalid UE golomb codes in get_ue_golomb
Also correct the check to reject log < 7, because UPDATE_CACHE only
guarantees 25 meaningful bits.

This fixes undefined behavior:
runtime error: shift exponent is negative

Testing with START/STOP timers in get_ue_golomb, one for the first
branch (A) and one for the second (B), shows that there is practically no
slowdown, e.g. for the cavs decoder:

With the check in the B branch:
    629 decicycles in get_ue_golomb B, 4194260 runs,     44 skips
    433 decicycles in get_ue_golomb A,268434102 runs,   1354 skips

Without the check:
    624 decicycles in get_ue_golomb B, 4194273 runs,     31 skips
    433 decicycles in get_ue_golomb A,268434203 runs,   1253 skips

Since the B branch is executed far less often than the A branch, this
change is negligible, even more so for the h264 decoder, where the ratio
B/A is a lot smaller.

Fixes: mozilla bug 1230239
Fixes: fbeb8b2c7c996e9b91c6b1af319d7ebc/asan_heap-oob_195450f_2743_e8856ece4579ea486670be2b236099a0.bit

Found-by: Tyson Smith
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-14 20:51:39 +01:00
Michael Niedermayer
1925eaeaa6 avfilter/vf_decimate: change ts_unit to AVRational
This might help with rounding differences between platforms

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 20:37:26 +01:00
Michael Niedermayer
997de2e810 avfilter/vf_mpdecimate: Add missing emms_c()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 20:21:50 +01:00
Rostislav Pehlivanov
ade31b9424 aacenc: switch to using the RNG from libavutil
PSNR doesn't change as expected. The AAC spec doesn't really say
anything about how exactly to generate noise.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-14 18:53:09 +00:00
Janne Grunau
90b1b9350c arm: add ff_int32_to_float_fmul_array8_neon
Quite a bit faster than int32_to_float_fmul_array8_c calling
ff_int32_to_float_fmul_scalar_neon through FmtConvertContext.
Number of cycles per int32_to_float_fmul_array8 call while decoding
padded.dts on exynos5422:

               before  after   change
cortex-a7:     1270     951    -25%
cortex-a15:     434     285    -34%

checkasm --bench cycle counts:     cortex-a15   cortex-a7
int32_to_float_fmul_array8_c:      1730.4       4384.5
int32_to_float_fmul_array8_neon_c:  571.5       1694.3
int32_to_float_fmul_array8_neon:    374.0       1448.8

Interesting are the differences between
int32_to_float_fmul_array8_neon_c and int32_to_float_fmul_array8_neon.
The former is current behaviour of calling
ff_int32_to_float_fmul_scalar_neon repeatedly from the c function,
The raw numbers differ since checkasm uses different lengths than the
dca decoder.
2015-12-14 16:45:02 +01:00
Janne Grunau
a0fc780a20 arm64: int32_to_float_fmul neon asm
3% faster dts decoding on a cortex-a57.

                                 cortex-a57   cortex-a53
int32_to_float_fmul_array8_c:    1270.9       4475.6
int32_to_float_fmul_array8_neon:  328.6        569.2
int32_to_float_fmul_scalar_c:     928.5       4119.6
int32_to_float_fmul_scalar_neon:  309.1        524.1
2015-12-14 16:45:02 +01:00
Janne Grunau
705f5e5e15 arm64: port synth_filter_float_neon from arm
~25% faster dts decoding overall. The checkasm CPU cycles numbers are
not that useful since synth_filter_float() calls FFTContext.imdct_half().

                         cortex-a57   cortex-a53
synth_filter_float_c:    1866.2       3490.9
synth_filter_float_neon:  915.0       1531.5

With fftc.imdct_half forced to imdct_half_neon:
                         cortex-a57   cortex-a53
synth_filter_float_c:    1718.4       3025.3
synth_filter_float_neon:  926.2       1530.1
2015-12-14 16:45:01 +01:00
Janne Grunau
c33c1fa8af arm64: convert dcadsp neon asm from arm
~2% faster dts decoding overall.

                    cortex-a57   cortex-a53
dca_decode_hf_c:    474.8        1659.9
dca_decode_hf_neon: 225.2         301.1
dca_lfe_fir0_c:     913.2        1537.7
dca_lfe_fir0_neon:  286.8         451.9
dca_lfe_fir1_c:     848.7        1711.5
dca_lfe_fir1_neon:  387.1         506.4
2015-12-14 16:45:01 +01:00
Janne Grunau
e2710e790c arm: add a cpu flag for the VFPv2 vector mode
The vector mode was deprecated in ARMv7-A/VFPv3 and various cpu
implementations do not support it in hardware. Vector mode code will
depending the OS either be emulated in software or result in an illegal
instruction on cpus which does not support it. This was not really
problem in practice since NEON implementations of the same functions are
preferred. It will however become a problem for checkasm which tests
every cpu flag separately.

Since this is a cpu feature newer cpu do not support anymore the
behaviour of this flag differs from the other flags. It can be only
activated by runtime cpu feature selection.
2015-12-14 16:42:35 +01:00
Janne Grunau
5dfe4edad6 x86_64: int32_to_float_fmul_scalar sign extend integer length 2015-12-14 16:42:35 +01:00
Janne Grunau
64034849da arm64: add cycle counter support
The ISB (instruction synchronization barrier) might be too heavy for
START/STOPTIMER use but should be more accurate in checkasm where the
timing overhead is subtracted.
2015-12-14 16:42:35 +01:00
Janne Grunau
50078c1c80 libavutil: move FFALIGN macro from common.h to macros.h
Include macros.h explicitly in common.h so that external code using
FFALIGN does not break. It was already implicitly included through
version.h. Include macros.h in lls.h and internal.h for FFALIGN.
lls.h was including common.h only for FFALIGN and internal.h was
missing the include for FFALIGN. `make checkheaders` did not catch it
because it's an internal header.
2015-12-14 16:16:55 +01:00
Stefan Pöschel
dbce017913 mpegtsenc: add flag to embed an AC-3 ES the DVB way
So far an AC-3 elementary stream is refered to in the PMT according to
System A (ATSC). However System B (DVB) has a different way to signal an AC-3
ES within the PMT. This different way can be enabled by a new flag. The flag is
more generally named 'system_b' as there are further differences between ATSC
and DVB (e.g. the signalling of E-AC-3) which should then also be covered by it
in the future.

Bug-Id: 73

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-12-14 15:16:33 +01:00
Kip Warner
cc4c242081 avresample: Mark avresample_buffer() as pointer to const
That buffer is read only and marking it accordingly let
the user passing a constant buffer to it without having
a const-correctness warning.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-12-14 15:16:33 +01:00
Jean Delvare
932cbc846f avfilter/vf_delogo: fix show option when clipping
The show option did not take clipping into account, so the borders on
the clipped side wouldn't show up. Fix it.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-14 12:50:46 +01:00
Anton Khirnov
5bc223b15d r3d: fix an invalid read introduced in 6bf4c1d 2015-12-14 12:12:42 +01:00
Agatha Hu
758be45756 avcodec/nvenc: clamp initial qp value to [1, 51]
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-12-14 10:34:59 +01:00
Agatha Hu
f1a8897375 avcodec/nvenc: set slice number to 1 to improve encoding quality
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2015-12-14 10:27:36 +01:00
Kieran Kunhya
906c0b7716 get_bits: Support max_depth > 2 in GET_RL_VLC_INTERNAL 2015-12-13 22:56:49 +00:00
Andreas Cadhalpun
28e9b7e8ae fate: increase FUZZ by 1 for aac-tns-encode
This should fix this test failing on kfreebsd, a regression since
6e5dbe7, which decreased the CMP_TARGET by 1.

Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-13 23:28:53 +01:00