Carl Eugen Hoyos
587226ad45
lavc/libx265: Add gray10 and gray12 encoding support.
2017-03-08 00:25:33 +01:00
Michael Niedermayer
1afd246960
avcodec/vp8: Check for the bitstream end per MB in decode_mb_row_no_filter()
...
Fixes: timeout in 730/clusterfuzz-testcase-5265113739165696 (part 2 of 2)
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Reviewed-by: BBB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-07 21:29:43 +01:00
Michael Niedermayer
55d7371fe0
avcodec/vp568: Check that there is enough data for ff_vp56_init_range_decoder()
...
Fixes: timeout in 730/clusterfuzz-testcase-5265113739165696 (part 1 of 2)
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Reviewed-by: BBB
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-07 21:29:12 +01:00
Michael Niedermayer
5098a6f627
avcodec/vp8: remove redundant check
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-07 19:13:19 +01:00
Muhammad Faiz
e85e840880
avcodec/allcodecs: make avcodec_register_all thread safe
...
use ff_thread_once
Suggested-by: wm4 <nfxjfg@googlemail.com >
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com >
2017-03-07 20:34:44 +07:00
Vittorio Giovara
a6b1180e39
avcodec/pixlet: fix architecture-dependent code and values
...
The constants used in the decoder used floating point precision,
and this caused different values to be generated on different
architectures.
So, eradicate floating point numbers and use fixed point (32.32)
arithmetics everywhere, replacing constants with precomputed integer
values.
Signed-off-by: Vittorio Giovara <vittorio.giovara at gmail.com>
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-03-07 14:04:01 +01:00
Aman Gupta
b6eaa3928e
avcodec/h264, videotoolbox: fix crash after VT decoder fails
...
The way videotoolbox hooks in as a hwaccel is pretty hacky. The VT decode
API is not invoked until end_frame(), so alloc_frame() returns a dummy
frame with a 1-byte buffer. When end_frame() is eventually called, the
dummy buffer is replaced with the actual decoded data from
VTDecompressionSessionDecodeFrame().
When the VT decoder fails, the frame returned to the h264 decoder from
alloc_frame() remains invalid and should not be used. Before
9747219958 , it was accidentally being
returned all the way up to the API user. After that commit, the dummy
frame was unref'd so the user received an error.
However, since that commit, VT hwaccel failures started causing random
segfaults in the h264 decoder. This happened more often on iOS where the
VT implementation is more likely to throw errors on bitstream anomolies.
A recent report of this issue can be see in
http://ffmpeg.org/pipermail/libav-user/2016-November/009831.html
The issue here is that the dummy frame is still referenced internally by the
h264 decoder, as part of the reflist and cur_pic_ptr. Deallocating the
frame causes assertions like this one to trip later on during decoding:
Assertion h->cur_pic_ptr->f->buf[0] failed at src/libavcodec/h264_slice.c:1340
With this commit, we leave the dummy 1-byte frame intact, but avoid returning it
to the user.
This reverts commit 9747219958 .
Signed-off-by: wm4 <nfxjfg@googlemail.com >
2017-03-07 11:58:38 +01:00
Kagami Hiiragi
734d760e2f
lavc/libvpxenc: add -row-mt option
...
Signed-off-by: James Zern <jzern@google.com >
2017-03-06 11:58:33 -08:00
Michael Niedermayer
8aa4f3bb4f
avcodec/proresdec2: Do not discard frames with bad slices
...
The code previously completely discarded frames that had any error in a slice
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-06 16:47:17 +01:00
Michael Niedermayer
835d9f299c
avcodec/x86/cavsdsp: Put MMX code under mmx check
...
Without this the FPU state becomes trashed and causes mysterious
fate failures with cpuflags=0
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-06 16:47:17 +01:00
Michael Niedermayer
a9f9b7f5c7
avcodec/movtextdec: Call mov_text_cleanup() on close
...
Fixes memleak
Fixes: 548/clusterfuzz-testcase-5511470875934720
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-06 16:47:17 +01:00
wm4
a755b725ec
avcodec: consider an error during decoder draining as EOF
...
There is no reason that draining couldn't return an error or two. But
some decoders don't handle this very well, and might always return an
error. This can lead to API users getting into an infinite loop and
burning CPU, because no progress is made and EOF is never returned.
In fact, ffmpeg.c contains a hack against such a case. It is made
unnecessary with this commit, and removed with the next one. (This
particular error case seems to have been fixed since the hack was
added, though.)
This might lose frames if decoding returns errors during draining.
2017-03-06 11:06:09 +01:00
wang-bin
3267e1703b
avcodec/videotoolbox: set kCVPixelBufferOpenGLESCompatibilityKey for iOS
...
kCVPixelBufferIOSurfaceOpenGLTextureCompatibilityKey is not available in
iOS
2017-03-06 10:54:02 +01:00
Michael Niedermayer
ba15005132
avcodec/wavpack: Fix runtime error: left shift of negative value -2
...
Fixes: 723/clusterfuzz-testcase-6471394663596032
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-05 12:03:15 +01:00
Michael Niedermayer
29638d4db9
avcodec/dcadsp: Fix 2 runtime error: signed integer overflow: -1958094138 - 1078906344 cannot be represented in type 'int'
...
Fixes: 722/clusterfuzz-testcase-5711268868521984
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-05 12:01:48 +01:00
Michael Niedermayer
d03d386162
avcodec/wavpack: Check bitrate_acc for overflow
...
Fixes: undefined behavior in 717/clusterfuzz-testcase-5434924129583104
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-05 12:01:46 +01:00
Michael Niedermayer
fab13bbbcd
avcodec/mpeg4videodec: Fix runtime error: signed integer overflow: 134527392 * 16 cannot be represented in type 'int'
...
This checks the sprite delta intermediates for overflow
Fixes: 716/clusterfuzz-testcase-4890287480504320
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-05 12:01:41 +01:00
Michael Niedermayer
d757ddbaab
avcodec/mpeg12dec: Fix runtime error: left shift of negative value -13
...
Fixes: 709/clusterfuzz-testcase-4789836449841152
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-04 17:48:04 +01:00
Michael Niedermayer
ab998f4c7f
avcodec/h264_mvpred: Fix multiple runtime error: left shift of negative value
...
Fixes: 710/clusterfuzz-testcase-5091051431788544
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-04 17:48:04 +01:00
Michael Niedermayer
d23727e042
avcodec/adxdec: Fix runtime error: left shift of negative value -1
...
Fixes: 705/clusterfuzz-testcase-5129572590813184
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-04 17:48:04 +01:00
Michael Niedermayer
eb41956636
avcodec/mpeg4videodec: Improve the overflow checks in mpeg4_decode_sprite_trajectory()
...
Also clear the state on errors
Fixes integer overflows in 701/clusterfuzz-testcase-6594719951880192
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-04 03:05:15 +01:00
Michael Niedermayer
2ce4f28431
avcodec/vp56: Require a correctly decoded frame before using vp56_conceal_mb()
...
Fixes timeout with 700/clusterfuzz-testcase-5660909504561152
Fixes timeout with 702/clusterfuzz-testcase-4553541576294400
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-04 03:05:15 +01:00
Michael Niedermayer
d8094a303b
avcodec/vp3: Do not return random positive values but the buf size
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-03 17:17:53 +01:00
Takayuki 'January June' Suwa
13332504c9
omx: Add support for specifying H.264 profile [v5']
...
This adds "-profile[:v] profile_name"-style option.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-03 17:17:53 +01:00
Paul B Mahol
6d93e7d1a3
avcodec/scpr: fix top left prediction for special case when x is 0 for keyframes
...
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-03-03 12:28:24 +01:00
Michael Niedermayer
6191198c21
avcodec/interplayvideo: Fix timeout from lack of bitstream end check
...
Fixes: 697/clusterfuzz-testcase-6111250582863872
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-03 01:03:29 +01:00
Michael Niedermayer
3b0b35150d
avcodec/mpegaudiodec_template: Fix runtime error: signed integer overflow: 2053224902 + 2053224902 cannot be represented in type 'int'
...
Fixes: 696/clusterfuzz-testcase-5853632270434304
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-03 01:03:29 +01:00
Michael Niedermayer
4b72d5cd6f
avcodec/mjpegdec: Fix runtime error: left shift of negative value -511
...
Fixes: 693/clusterfuzz-testcase-6109776066904064
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-03 01:03:29 +01:00
Carl Eugen Hoyos
46082c2b3f
lavc/sheervideo: Fix Y prediction for interlaced frames with transparency.
...
Based on 260de8a2 by Paul B Mahol.
Fixes ticket #6210 .
2017-03-02 18:11:57 +01:00
Kostya Shishkov
a63496cc88
avcodec: add ClearVideo decoder
...
Only I-frames are decoded for now.
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-03-02 11:39:54 +01:00
wm4
f07492e7fb
avcodec/videotoolbox: set kCVPixelBufferIOSurfaceOpenGLTextureCompatibilityKey
...
Makes sure the output can be mapped as OpenGL texture.
This is what at least video players normally want.
2017-03-02 10:32:21 +01:00
wm4
ade7c1a232
avcodec/videotoolbox: allow not setting the kCVPixelBufferPixelFormatTypeKey
...
If AVVideotoolboxContext.cv_pix_fmt_type is set to 0, don't set the
kCVPixelBufferPixelFormatTypeKey value on the VT decoder.
This makes VT output its native format, which can be much faster on
some hardware iterations (if the native format does not match with
the requested format, it will be converted, which is slow).
The default is still forcing nv12.
2017-03-02 10:32:21 +01:00
wm4
554bc4eea8
avcodec, avutil, avformat: remove AVOption requirement for some fields
...
Allow all struct fields to be accessed directly, as long as they're
public.
Before this change, many fields were "public", but could be accessed via
AVOption only. This meant they were effectively not public, but were
present for documentation purposes, which was incredibly confusing at
best.
2017-03-02 10:32:12 +01:00
Michael Niedermayer
4bed066377
avcodec/vp56: Clear dimensions in case of failure in the middle of a resolution change
...
Similar code is used elsewhere in vp56 to force a more complete reinit in the future.
Fixes null pointer dereference
Fixes: 707/clusterfuzz-testcase-4717453097566208
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-02 03:16:18 +01:00
Michael Niedermayer
f8060ab927
avcodec/wavpack: Check value before shift in wp_exp2()
...
Fixes undefined shift, all callers should be changed to check the value
they use with wp_exp2() or its return value.
Fixes: 692/clusterfuzz-testcase-5757381516460032
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-02 03:16:15 +01:00
Michael Niedermayer
12c3e120fe
avcodec/ituh263dec: Use 0xffff as error code in h263p_decode_umotion()
...
This matches ff_h263_decode_motion() both functions error codes are interpreted by the same common code
Fixes: 690/clusterfuzz-testcase-4744944981901312
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-02 03:16:12 +01:00
Michael Niedermayer
04c99c8042
avcodec/h264idct_template: Fix several runtime error: signed integer overflow
...
Fixes: 689/clusterfuzz-testcase-6029352737177600
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-02 03:16:10 +01:00
Rick Kern
70ebc05bce
lavc/videotoolboxenc: fix symbol linking
...
Removes explicit reference to symbols and fixes dereferencing issue.
Signed-off-by: Rick Kern <kernrj@gmail.com >
2017-03-01 10:43:08 -05:00
Michael Niedermayer
7b5ff7d573
avcodec/vp8: Check for bitsteam end in decode_mb_row_no_filter()
...
Fixes timeout with 686/clusterfuzz-testcase-5853946876788736
this shortcuts (i.e. speeds up) the error and
return-to-user when decoding a truncated frame
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Previous version reviewed by: "Ronald S. Bultje" <rsbultje@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-01 14:07:33 +01:00
Michael Niedermayer
4bd3f1ce3e
avcodec/h264_direct: Fix runtime error: left shift of negative value -14
...
Fixes: 682/clusterfuzz-testcase-4799120021651456
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-01 14:07:33 +01:00
Michael Niedermayer
2c00b37302
avcodec/avpacket: Check metadata key in av_packet_unpack_dictionary()
...
Fixes timeout
Fixes: 501/clusterfuzz-testcase-5672752870588416
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-03-01 14:07:33 +01:00
Konda Raju
5f44a4a0a9
avcodec/nvenc: add initial QP value options
...
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org >
2017-03-01 13:15:34 +01:00
Ganapathy Raman Kasi
a549243b89
avcodec/nvenc: remove qmin and qmax constraints for vbr
...
qmin and qmax are not necessary for nvenc vbr.
Enforcing this constraint, doesn't allow user to use vbr 2 pass mode without explicity setting the qmin and qmax options
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org >
2017-03-01 12:20:54 +01:00
Michael Niedermayer
4c0139463c
avcodec/vp56: Factorize vp56_render_mb() out
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-02-28 01:13:52 +01:00
Michael Niedermayer
949d2176ef
avcodec/dca: Fix multiple runtime error: signed integer overflow
...
Fixes: 680/clusterfuzz-testcase-5416627266912256
Fixes: 681/clusterfuzz-testcase-5013323462475776
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-02-28 01:13:52 +01:00
Michael Niedermayer
63e400a880
avcodec/pictordec: Check plane value before doing value/mask computations
...
Fixes integer overflow
Fixes: 675/clusterfuzz-testcase-6722971232108544
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-02-28 01:13:52 +01:00
Michael Niedermayer
25e93aacc2
avcodec/mpeg4videodec: Fix runtime error: left shift of negative value -2650
...
Fixes: 674/clusterfuzz-testcase-6713275880308736
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-02-28 01:13:52 +01:00
Michael Niedermayer
4ea7744859
avcodec/h264idct_template: Fix multiple runtime error: signed integer overflow
...
Fixes: 677/clusterfuzz-testcase-6635120628858880
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Reviewed-by: Steven Liu <lingjiujianke@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-02-28 01:13:52 +01:00
Paul B Mahol
26a7d6a301
avcodec/qdrw: check bytes per scanline for 2bpp images
...
One byte less is read in case of small width.
Closes #6194 .
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-02-27 14:17:51 +01:00
Paul B Mahol
86ab6b6e08
avcodec/scpr: check if total_freq is 0 in decode0
...
Fixes SIGFPE, closes #6196 .
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-02-27 13:55:15 +01:00