Michael Niedermayer
ad20a4f92b
avcodec/hevc_ps: Change scaling_list_dc_coef to 8 bit
...
Suggested-by: James
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-12-19 20:07:56 +01:00
Michael Niedermayer
f1700bd8bb
avcodec/hevc_ps: check scaling_list_dc_coef
...
Fixes: signed integer overflow: 2147483640 + 8 cannot be represented in type 'int'
Fixes: 28449/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5686013259284480
Reviewed-by: James Almer <jamrial@gmail.com >
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-12-19 20:07:56 +01:00
Linjie Fu
0d83fcc07b
lavc/hevc_ps: parse constraint flags for HEVC REXT
...
Parse all the constraint flags according to ITU-T Rec. H.265 (02/2018).
They have to be passed to hw decoders to determine the exact profile for Range
Extension HEVC.
Signed-off-by: Linjie Fu <linjie.fu@intel.com >
2020-02-24 00:09:51 +00:00
Andriy Gelman
80e1c93c87
avcodec/hevc_ps: Remove dead code in vps_id check
...
Since reading 4 bits always returns a value in the range [0, 15], the
check for vps_id >= HEVC_MAX_VPS_COUNT, where HEVC_MAX_VPS_COUNT = 16, is redundant.
Signed-off-by: Andriy Gelman <andriy.gelman@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2019-09-26 11:20:14 -03:00
James Almer
7c644989a5
avcodec/hevc_ps: fix range of num_tile_{columns,rows}_minus1
...
From 7.4.3.3.1:
num_tile_columns_minus1 shall be in the range of 0 to PicWidthInCtbsY - 1, inclusive.
num_tile_rows_minus1 shall be in the range of 0 to PicHeightInCtbsY - 1, inclusive.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: James Almer <jamrial@gmail.com >
2019-07-05 16:30:40 -03:00
Michael Niedermayer
3b2082c663
avcodec/hevc_ps: Change num_tile_rows/columns checks to sps->ctb_height/weight
...
Suggested-by: James Almer <jamrial@gmail.com >
Reviewed-by: James Almer <jamrial@gmail.com
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-06-30 17:53:00 +02:00
Michael Niedermayer
c692051252
avcodec/hevc_ps: Fix integer overflow with num_tile_rows and num_tile_columns
...
Fixes: signed integer overflow: -2147483648 - 1 cannot be represented in type 'int'
Fixes: 14880/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5130977304641536
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: James Almer <jamrial@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-06-30 17:52:13 +02:00
Philip Langdale
f4ea930a11
avcodec/hevc_ps: Expose all SPS and PPS range extension flags
...
We need all the flags to be exposed to be able to pass them on to
HW decoders. I did not attempt to nuance any of the warnings about
flags being unsupported as there's no way, at the point we extract
flags, to say whether an HW decoder is being used.
2019-02-16 08:47:36 -08:00
Zhao Zhili
70d2bab80b
lavc/hevc_ps: fix crop info for monochrome
...
The values of SubWidthC and SubHeightC are 1 in the ITU-T H.265. The
current code use the value of 2.
Signed-off-by: James Almer <jamrial@gmail.com >
2018-08-22 14:01:12 -03:00
Jun Zhao
d746a2e3cf
lavc/hevc_ps: use skip_bits instead of get_bits when skip bits.
...
use skip_bits when want to skip some bits.
Signed-off-by: Jun Zhao <mypopydev@gmail.com >
2018-07-13 20:18:40 +08:00
Jun Zhao
896854b233
lavc/hevc_ps: Refine sps_range_extension parse.
...
Signed-off-by: Jun Zhao <mypopydev@gmail.com >
2018-07-13 20:15:15 +08:00
Carl Eugen Hoyos
085fe9822d
lavc/hevc_ps: Use correct pix_fmt AV_PIX_FMT_GRAY9 for 9-bit 4:0:0 input.
2018-05-25 20:46:11 +02:00
Timo Rothenpieler
9e857aa00e
avcodec/nvdec_hevc: add support for new extended sps/pps flags from SDK 8.1
2018-04-13 09:21:07 +02:00
Michael Niedermayer
4a75a75c62
avcodec/hevc_ps: Check log2_sao_offset_scale_*
...
Fixes: 4868/clusterfuzz-testcase-minimized-6236542906400768
Fixes: runtime error: shift exponent 126 is too large for 32-bit type 'int'
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-01-30 22:08:32 +01:00
James Almer
9462b2b820
avcodec/hevc_ps: add a function to uninitialize parameter set buffers
...
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: James Almer <jamrial@gmail.com >
2018-01-21 00:06:30 -03:00
James Almer
36e0093dd9
Merge commit '1329c08ad6d2ddb304858f2972c67b508e8b0f0e'
...
* commit '1329c08ad6d2ddb304858f2972c67b508e8b0f0e':
hevc: Validate the number of long term reference pictures
See ea38e5a6b7
Merged-by: James Almer <jamrial@gmail.com >
2017-11-11 00:36:22 -03:00
Mark Thompson
b1374e925c
hevc: Improve stream constraint values in common header
...
Add comments to describe the sources of the constraint values expressed here,
and add some more related values which will be used in following patches.
Fix the incorrect values for SPS and PPS count (they are not the same as those
used for H.264), and remove HEVC_MAX_CU_SIZE because it is not used anywhere.
(cherry picked from commit b88da98b34 )
2017-10-17 20:56:29 +01:00
Aman Gupta
c32077c0ee
avcodec/hevc_ps: extract SPS fields required for hvcC construction
...
Signed-off-by: Aman Gupta <aman@tmm1.net >
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
2017-09-28 16:47:46 -07:00
Michael Niedermayer
e952d4b7ac
avcodec/hevc_ps: Fix limit of chroma_qp_offset_list_len_minus1
...
A value of 5 is allowed
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-09-12 01:52:14 +02:00
James Almer
c9a1cd08ea
avcodec/hevc_ps: improve check for missing default display window bitstream
...
Fixes ticket #6644
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: James Almer <jamrial@gmail.com >
2017-09-11 20:01:41 -03:00
Michael Niedermayer
2a83866c9f
avcodec/hevc_ps: Fix undefined shift in pcm code
...
Fixes: runtime error: shift exponent -1 is negative
Fixes: 3091/clusterfuzz-testcase-minimized-6229767969832960
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-08-29 21:16:32 +02:00
Michael Niedermayer
2b44dcbc44
avcodec/hevc_ps: Check delta_pocs in ff_hevc_decode_short_term_rps()
...
Fixes: integer overflow
Fixes: 2893/clusterfuzz-testcase-minimized-5809330567774208
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-08-24 11:29:40 +02:00
Mark Thompson
1329c08ad6
hevc: Validate the number of long term reference pictures
...
This would overflow if the stream contained a value greater than the
maximum allowed by the standard (32).
2017-08-05 23:54:35 +01:00
Mark Thompson
b88da98b34
hevc: Improve stream constraint values in common header
...
Add comments to describe the sources of the constraint values expressed here,
and add some more related values which will be used in following patches.
Fix the incorrect values for SPS and PPS count (they are not the same as those
used for H.264), and remove HEVC_MAX_CU_SIZE because it is not used anywhere.
2017-08-05 23:54:35 +01:00
Michael Niedermayer
74c1c22d7f
avcodec/hevc_ps: fix integer overflow in log2_parallel_merge_level_minus2
...
Fixes: runtime error: signed integer overflow: -2147483647 - 2 cannot be represented in type 'int'
Fixes: 2702/clusterfuzz-testcase-minimized-4511932591636480
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-07-26 17:06:29 +02:00
Michael Niedermayer
de54a37c1d
avcodec/hevc_ps: Fix integer overflow with beta/tc offsets
...
Fixes: runtime error: signed integer overflow: 2113929216 * 2 cannot be represented in type 'int'
Fixes: 2422/clusterfuzz-testcase-minimized-5242114713583616
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-30 16:24:16 +02:00
Michael Niedermayer
63e7bfe78e
avcodec/hevc_ps: Fix max_dec_buffer check
...
Fixes: runtime error: signed integer overflow: -2147483648 - 1 cannot be represented in type 'int'
Fixes: 2339/clusterfuzz-testcase-minimized-6663164320022528
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-25 01:13:17 +02:00
Mark Thompson
88a2e4504d
hevc: Fix scaling list prediction delta for the 32x32 inter matrix
...
Fixes ticket #6356 .
2017-06-14 23:08:26 +01:00
Michael Niedermayer
29808fff33
avcodec/hevc_ps: Fix runtime error: index 32 out of bounds for type 'uint8_t [32]'
...
Fixes: 2010/clusterfuzz-testcase-minimized-6209288450080768
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-04 17:51:02 +02:00
Michael Niedermayer
6726328f79
avcodec/hevc_ps: Fix runtime error: signed integer overflow: 2147483628 + 256 cannot be represented in type 'int'
...
Fixes: 1909/clusterfuzz-testcase-minimized-6732072662073344
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-31 22:05:32 +02:00
James Almer
000fb61a71
avcodec/hevcdec: export cropping information instead of handling it internally
...
This merges commit a02ae1c683 from libav,
originally written by Anton Khirnov and skipped in
fc63d5ceb3 .
libavcodec/hevc_parser.c | 6 ++++--
libavcodec/hevc_ps.c | 31 ++++++++++++-------------------
libavcodec/hevc_ps.h | 2 --
libavcodec/hevc_refs.c | 18 +++++-------------
libavcodec/hevcdec.c | 7 ++++---
libavcodec/hevcdec.h | 2 --
6 files changed, 25 insertions(+), 41 deletions(-)
Signed-off-by: James Almer <jamrial@gmail.com >
2017-05-26 11:15:45 -03:00
James Almer
1d53b8e907
avcodec/hevcdec: remove HEVCContext usage from ff_hevc_compute_poc()
...
Move it to hevc_ps as well. This is in preparation for a following patch.
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com >
Reviewed-by: Aaron Levinson <alevinsn@aracnet.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2017-05-05 17:30:36 -03:00
Clément Bœsch
883fe17e3b
Merge commit 'ff9db5cfd14558df9cfcc54d6c062bc34bf1f341'
...
* commit 'ff9db5cfd14558df9cfcc54d6c062bc34bf1f341':
lavc: Use a stricter check for the color properties values
Merged-by: Clément Bœsch <u@pkh.me >
2017-04-08 14:41:10 +02:00
Clément Bœsch
549045254c
Fix all -Wformat warnings raised by DJGPP
2017-03-29 14:49:29 +02:00
James Almer
4a5810b659
Merge commit 'f6e2f8a9ffda2247bffba991450990d075ea68e3'
...
* commit 'f6e2f8a9ffda2247bffba991450990d075ea68e3':
hevcdec: move parameter set parsing into a separate header
Merged-by: James Almer <jamrial@gmail.com >
2017-03-23 15:53:00 -03:00
James Almer
b29c8c995f
Merge commit '150c896a9e46b23b97debb0a5f66fbaeaa32f153'
...
* commit '150c896a9e46b23b97debb0a5f66fbaeaa32f153':
hevcdec: split ff_hevc_diag_scan* declarations into a separate header
Merged-by: James Almer <jamrial@gmail.com >
2017-03-23 15:14:06 -03:00
James Almer
6397815be0
Merge commit 'c359d624d3efc3fd1d83210d78c4152bd329b765'
...
* commit 'c359d624d3efc3fd1d83210d78c4152bd329b765':
hevcdec: move decoder-independent declarations into a separate header
Merged-by: James Almer <jamrial@gmail.com >
2017-03-23 14:27:48 -03:00
Clément Bœsch
038e6aef7a
Merge commit '4abe3b049d987420eb891f74a35af2cebbf52144'
...
* commit '4abe3b049d987420eb891f74a35af2cebbf52144':
hevc: rename hevc.[ch] to hevcdec.[ch]
Merged-by: Clément Bœsch <u@pkh.me >
2017-03-23 16:48:41 +01:00
Diego Biurrun
d4c2103bd3
golomb: Convert to the new bitstream reader
2017-01-31 17:46:19 +01:00
Anton Khirnov
a02ae1c683
hevcdec: export cropping information instead of handling it internally
2017-01-12 16:27:56 +01:00
Vittorio Giovara
ff9db5cfd1
lavc: Use a stricter check for the color properties values
...
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com >
2016-12-02 11:36:42 -05:00
Carl Eugen Hoyos
0674d1938e
lavc/hevc_ps: Use correct pix_fmt for 10bit 4:0:0.
...
Fixes the second sample from ticket #5544 .
2016-11-14 10:36:25 +01:00
Carl Eugen Hoyos
08be65a075
lavc/hevc_ps: Fix an error message.
2016-11-10 08:22:26 +01:00
Carl Eugen Hoyos
edb8af6e92
lavc/hevc_ps: Use correct pix_fmt for 12bit 4:0:0.
...
Fixes part of ticket #5544 .
2016-11-10 08:11:12 +01:00
Diego Biurrun
67deba8a41
Use avpriv_report_missing_feature() where appropriate
2016-11-08 17:54:34 +01:00
Anton Khirnov
f6e2f8a9ff
hevcdec: move parameter set parsing into a separate header
...
This code is independent from the decoder, so it makes more sense for it
to to have its own header.
2016-10-16 20:26:47 +02:00
Anton Khirnov
150c896a9e
hevcdec: split ff_hevc_diag_scan* declarations into a separate header
...
This will be useful in the following commits.
2016-10-16 20:26:40 +02:00
Anton Khirnov
c359d624d3
hevcdec: move decoder-independent declarations into a separate header
...
This way they can be reused by other code without including the whole
decoder-specific hevcdec.h
Also, add the HEVC_ prefix to them, since similarly named values exist
for H.264 as well and are sometimes used in the same code.
2016-10-16 20:26:28 +02:00
Anton Khirnov
4abe3b049d
hevc: rename hevc.[ch] to hevcdec.[ch]
...
This is more consistent with the rest of libav and frees up the hevc.h
name for decoder-independent shared declarations.
2016-10-16 20:26:17 +02:00
Matthieu Bouron
bf011695fd
lavc/hevc: store VPS/SPS/PPS data
2016-09-09 16:35:37 +02:00