Michael Niedermayer
31fa50f3d9
avcodec/prosumer: Error out if decompress() stops reading data
...
if 0 is encountered in the LUT then decompress() will continue to output 0 bytes but never read more data.
Without a specification it is impossible to say if this is invalid or a feature.
None of the valid prosumer files tested cause a 0 to be read, so it is likely
not a intended feature.
Fixes: Timeout
Fixes: 11266/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PROSUMER_fuzzer-5681827423977472
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 62f8d27ef1 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-01-21 07:53:26 +01:00
Michael Niedermayer
2f04b78b95
avcodec/prosumer: Simplify bit juggling of the c variable in decompress()
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 66425add27 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-11-04 20:26:49 +01:00
Michael Niedermayer
fd05e20650
avcodec/prosumer: Remove always true check in decompress()
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 1dfa0b6f36 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-11-04 20:26:49 +01:00
Michael Niedermayer
a163384467
avcodec/prosumer: Remove unneeded ()
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 506839a3e9 )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-11-04 20:26:49 +01:00
Michael Niedermayer
b9875b7583
avcodec/prosumer: Check for bytestream eof in decompress()
...
Fixes: Infinite loop
Fixes: 10685/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PROSUMER_fuzzer-5652236881887232
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
(cherry picked from commit 9acdf17b2c )
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-11-04 20:26:49 +01:00
Michael Niedermayer
0f36ad514c
avcodec/prosumer: Check remaining space in put byte context
...
Fixes: Timeout
Fixes: 10053/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PROSUMER_fuzzer-5636993883570176
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-09-24 00:49:30 +02:00
Michael Niedermayer
3b5945b146
avcodec/prosumer: Remove unused table element
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-09-24 00:49:30 +02:00
Michael Niedermayer
52b909b5c1
avcodec/prosumer: remove unneeded variable from vertical_predict
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-09-24 00:49:30 +02:00
Michael Niedermayer
093607f0cd
avcodec/prosumer: Rename do_shift() to vertical_predict()
...
It seems what this function does is a vertical prediction filter, thus
the new name should improve understanding.
rename the related table_b too
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-09-24 00:49:30 +02:00
Michael Niedermayer
0cd22fd752
avcodec/prosumer: mark src as const
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-09-24 00:49:30 +02:00
Michael Niedermayer
3c9ebcbc4d
avcodec/prosumer: Only scan as many elements as matter in fill_elements()
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-09-24 00:49:30 +02:00
Michael Niedermayer
fa1d3caef0
avcodec/prosumer: factorize e0 setting out
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-09-24 00:49:30 +02:00
Michael Niedermayer
e97951f458
avcodec/prosumer: Use 16bit instead of 32 for table
...
Simplifies code and reduces needed memory
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-09-24 00:49:30 +02:00
Michael Niedermayer
d3a9cb6bc8
avcodec/prosumer: Factorize the 2 loops in fill_elements()
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-09-24 00:49:30 +02:00
Michael Niedermayer
f24701b073
avcodec/prosumer: clean up loop end code in fill_elements()
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-09-24 00:49:30 +02:00
Michael Niedermayer
674727291b
avcodec/prosumer: Remove dead code
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-09-24 00:49:30 +02:00
Paul B Mahol
4d87cd2882
avcodec/prosumer: fix some minor issues
2018-08-24 21:33:01 +02:00
Paul B Mahol
aba720dce2
avcodec: add Brooktree ProSumer Video decoder
2018-08-24 21:07:01 +02:00