Michael Niedermayer
1a89ae1df8
avcodec/hevcdec: Check for overlapping slices
...
Fixes: Timeout
Fixes: 10108/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-6222384351674368
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-12-01 02:17:19 +01:00
Mark Wu
10bc4c3a7d
avcodec/hevcdec: fix non-ref frame judgement
...
After inspecting the source code of x265, mpv and ffmpeg, I've found that
ffmpeg mistakenly regards EVC_NAL_BLA_N_LP and HEVC_NAL_IDR_N_LP as non-
reference frames, which are acutally reference frames according to the
specification in x265, and drops them.
This patch should address the problem. I have tested it with mpv.
Signed-off-by: Mark Wu <wfwf1997@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2018-11-10 14:32:17 -03:00
Timo Rothenpieler
46c1ee1917
avcodec/hevcdec: make ff_hevc_frame_nb_refs take a const pointer
2018-05-10 18:41:56 +02:00
sfan5
a428f2fcd9
libavcodec/hevc_filter: move AVDISCARD_NONREF switch-case into function
...
In preparation for implementation of skip_frame.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-12-08 20:02:16 +01:00
James Almer
b1ab02895b
Merge commit 'c3f0357bdf7d3c542aad2c58b94184b9f56edc41'
...
* commit 'c3f0357bdf7d3c542aad2c58b94184b9f56edc41':
hevcdec: move the MD5 context out of HEVCSEIPictureHash back into HEVCContext
Merged-by: James Almer <jamrial@gmail.com >
2017-10-31 12:48:36 -03:00
James Almer
bd8f1fa100
avcodec/hevc_sei: rename HEVCSEIContext to HEVCSEI
...
Cosmetic change skipped in 0b30cb8dae
by mistake.
Signed-off-by: James Almer <jamrial@gmail.com >
2017-10-31 12:27:57 -03:00
Mark Thompson
4dee92f6bc
hevc: Fix aligned array declarations
...
(cherry picked from commit d41e10c148 )
2017-10-21 22:19:50 +01:00
Michael Niedermayer
933aa91e31
avcodec/hevcdec: check ff_init_cabac_decoder() for failure
...
Fixes: runtime error: left shift of 1965559808 by 4 places cannot be represented in type 'int'
Fixes: 2333/clusterfuzz-testcase-minimized-5223935677300736
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 >
2017-06-24 22:17:15 +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
Anton Khirnov
c3f0357bdf
hevcdec: move the MD5 context out of HEVCSEIPictureHash back into HEVCContext
...
HEVCSEIPictureHash should store only the information extracted from the
bitstream and exported to the higher layer (the decoder or the parser).
The MD5 context is allocated, used and freed by this higher layer, so it
makes more sense for it to also be stored there.
2017-05-20 09:41:30 +02:00
James Almer
cfd25488bf
hevcdec: move SEI message parsing into a separate header
...
It doesn't depend on hevcdec anymore.
Signed-off-by: James Almer <jamrial@gmail.com >
Signed-off-by: Luca Barbato <lu_zero@gentoo.org >
2017-05-09 13:42:20 +02:00
James Almer
648a0b4503
hevcdec: remove HEVCContext usage from hevc_sei
...
Based on the H264 SEI implementation.
This will be mainly useful once support for SEI messages that can be
used by the hevc parser are implemented, like Picture Timing.
Signed-off-by: James Almer <jamrial@gmail.com >
Signed-off-by: Luca Barbato <lu_zero@gentoo.org >
2017-05-09 13:42:20 +02:00
James Almer
4aaace8b25
avcodec/hevcdec: move SliceHeader struct definition to hevc_ps
...
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
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
James Almer
a687fb9970
avcodec/hevcdec: move SEI message parsing into a separate header
...
It doesn't depend on hevcdec anymore.
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:35 -03:00
James Almer
c4b08c8a4e
avcodec/hevcdec: remove HEVCContext usage from hevc_sei
...
Based on the H264 SEI implementation.
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:35 -03:00
James Almer
4588063f3e
avcodec/hevcdec: remove duplicate extradata parsing function
...
Use ff_hevc_decode_extradata() instead, which correctly only tries
to decode parameter set NAL units and not any other NAL that may be
present in extradata.
Reviewed-by: nevcairiel
Signed-off-by: James Almer <jamrial@gmail.com >
2017-04-09 14:09:05 -03:00
Steve Lhomme
157e57a181
lavc: Add Content Light Level side metadata found in HEVC
...
These data are necessary when transmitting HDR over HDMI.
Signed-off-by: James Almer <jamrial@gmail.com >
2017-04-06 11:38:15 -03:00
James Almer
dc39ccdc3b
Merge commit '0bfdcce4d42a6e654c00ea5f9237dc987626457f'
...
* commit '0bfdcce4d42a6e654c00ea5f9237dc987626457f':
hevc: move the SliceType enum to hevc.h
Merged-by: James Almer <jamrial@gmail.com >
2017-03-23 20:02:11 -03: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
Anton Khirnov
a02ae1c683
hevcdec: export cropping information instead of handling it internally
2017-01-12 16:27:56 +01:00
Anton Khirnov
0bfdcce4d4
hevc: move the SliceType enum to hevc.h
...
Those values are decoder-independent and are also use by the VA-API
encoder.
2016-10-21 10:11:20 +02: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
645c6ff423
hevcdec: drop the prototype of a non-existing function
2016-10-16 20:26:35 +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