summaryrefslogtreecommitdiffstats
path: root/libavcodec/hevc_ps.c
Commit message (Collapse)AuthorAgeFilesLines
* hevc: Validate the number of long term reference picturesMark Thompson2017-08-051-0/+6
| | | | | This would overflow if the stream contained a value greater than the maximum allowed by the standard (32).
* hevc: Improve stream constraint values in common headerMark Thompson2017-08-051-1/+1
| | | | | | | | 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.
* golomb: Convert to the new bitstream readerDiego Biurrun2017-01-311-1/+1
|
* hevcdec: export cropping information instead of handling it internallyAnton Khirnov2017-01-121-21/+12
|
* lavc: Use a stricter check for the color properties valuesVittorio Giovara2016-12-021-3/+3
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* Use avpriv_report_missing_feature() where appropriateDiego Biurrun2016-11-081-4/+3
|
* hevcdec: move parameter set parsing into a separate headerAnton Khirnov2016-10-161-7/+7
| | | | | This code is independent from the decoder, so it makes more sense for it to to have its own header.
* hevcdec: split ff_hevc_diag_scan* declarations into a separate headerAnton Khirnov2016-10-161-0/+1
| | | | This will be useful in the following commits.
* hevcdec: move decoder-independent declarations into a separate headerAnton Khirnov2016-10-161-8/+8
| | | | | | | 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.
* hevc: rename hevc.[ch] to hevcdec.[ch]Anton Khirnov2016-10-161-1/+1
| | | | | This is more consistent with the rest of libav and frees up the hevc.h name for decoder-independent shared declarations.
* hevc: set profile based on the profile compatibility flags if neededHendrik Leppkes2016-07-201-1/+5
| | | | | | | This fixes retrieving a valid profile for many of the FATE conformance samples, allowing them to be properly decoded by the HWAccel after adding a profile check. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* dxva2_hevc: properly signal the num_delta_pocs from the SPS RPSHendrik Leppkes2016-02-131-0/+1
| | | | | | | | | ucNumDeltaPocsOfRefRpsIdx needs to contain the flat value from the SPS RPS, and not the final computed value from the slice header RPS, as this calculation is done internally by the driver again. Sample-Id: http://trailers.divx.com/hevc/Sintel_4k_27qp_24fps_1aud_9subs.mkvi Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
* lavc: AV-prefix all codec flagsVittorio Giovara2015-07-271-3/+3
| | | | | | Convert doxygen to multiline and express bitfields more simply. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* hevc: Split the struct setup from the pps parsingLuca Barbato2015-07-151-127/+131
|
* hevc: Print the non-supported chroma_format_idcLuca Barbato2015-07-131-1/+2
| | | | | | And drop the spurious newline. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* hevc: Factor out the pixel format mapping from the sps parserLuca Barbato2015-07-131-27/+34
| | | | | | The function will grow larger as more formats are supported. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* hevc_ps: make sure failing to decode an SPS always returns an errorAnton Khirnov2015-07-131-1/+1
| | | | | Some of the goto err clauses do not set the error code. It seems better to fall back on INVALIDDATA instead of adding it everywhere explicitly.
* hevc: remove HEVCContext usage from hevc_psAnton Khirnov2015-07-121-49/+50
| | | | | | Factor out the parameter sets into a separate struct and use it instead. This will allow us to reuse this code in the parser.
* hevc_ps: split the code for parsing the SPS and exporting it into the contextAnton Khirnov2015-07-081-89/+96
| | | | | This will be useful in the later commits, where we want to parse an SPS without having a whole decoding context.
* hevc: make sure no dangling pointers remain around on VPS/SPS changeAnton Khirnov2015-04-031-7/+39
|
* hevc: do not change the VPS if its contents are the sameAnton Khirnov2015-04-031-2/+8
| | | | This is the same as is done for SPS.
* hevc: zero the correct variables on invalid crop parametersAnton Khirnov2015-03-211-4/+4
| | | | | It's the output_window that is applied to the output frame, not pic_conf_win
* hevc_ps: remove a write-only variableAnton Khirnov2014-07-111-2/+1
|
* hevc: remove unused array min_cb_addr_zsGildas Cocherel2014-06-261-18/+1
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: Allow out of bound values for num_reorder_picsKieran Kunhya2014-06-261-5/+10
| | | | | | This fixes decoding for a sample that cannot be shared Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: make pps/sps ids unsigned where necessaryVittorio Giovara2014-03-091-4/+4
| | | | | Fixes integer overflow and out of array accesses. Found-by: Mateusz j00ru Jurczyk and Gynvael Coldwind
* hevc: Use get_bits_long() in decode_vui()Michael Niedermayer2014-03-091-2/+2
| | | | | Fix assertion failure. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
* hevc: Mention the missing SPS in the error messageLuca Barbato2014-02-191-1/+1
|
* hevc: Prevent some integer overflowsLuca Barbato2014-01-211-6/+6
| | | | | | | | get_ue_golomb_long() returns an unsigned. Sample-Id: 00001541-google Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* hevc: Use uint64 to check for tile dimensionsLuca Barbato2014-01-211-1/+1
| | | | | | | | | | And use unsigned datatypes. Otherwise it would overflow. Sample-Id: 00001315-google Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* hevc: check that VPS referenced from SPS existsMichael Niedermayer2014-01-211-0/+7
| | | | | | | | This matches how its done for SPS/PPS. Fixes null pointer dereference. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* hevc: support luma bit depth != chroma bit depth for PCM coding unitsMickaël Raulet2013-12-201-11/+1
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: warn when an unknown profile is usedGuillaume Martres2013-12-201-0/+8
| | | | | | | Bitstreams conforming to the spec should not use profiles not defined in it. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc_ps: fix indentationGildas Cocherel2013-12-201-1/+1
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: refactor Profile Tier LevelGildas Cocherel2013-12-201-32/+31
| | | | | | Also store a few PTL flags which were skipped before Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: don't check for errors in PTL codeGuillaume Martres2013-12-201-24/+9
| | | | | | | According to the spec, the value of XXX_reserved_zero_44bits should be ignored, so don't report an error when it's not zero. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: store the VPS list as an AVBufferRef, just like the others *PSGildas Cocherel2013-12-111-7/+8
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc_ps: Use AV_PIX_FMT_YUVJ420P if YUV 4:2:0 8-bit full scaleYusuke Nakamura2013-11-041-0/+2
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* hevc: Use parsed VUI colorimetry in avcodecJan Ekström2013-11-041-0/+8
| | | | | | Also limit the parsed VUI values to known valid ones. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* Add HEVC decoderGuillaume Martres2013-10-311-0/+1329
Initially written by Guillaume Martres <smarter@ubuntu.com> as a GSoC project. Further contributions by the OpenHEVC project and other developers, namely: Mickaël Raulet <mraulet@insa-rennes.fr> Seppo Tomperi <seppo.tomperi@vtt.fi> Gildas Cocherel <gildas.cocherel@laposte.net> Khaled Jerbi <khaled_jerbi@yahoo.fr> Wassim Hamidouche <wassim.hamidouche@insa-rennes.fr> Vittorio Giovara <vittorio.giovara@gmail.com> Jan Ekström <jeebjp@gmail.com> Anton Khirnov <anton@khirnov.net> Martin Storsjö <martin@martin.st> Luca Barbato <lu_zero@gentoo.org> Yusuke Nakamura <muken.the.vfrmaniac@gmail.com> Reimar Döffinger <Reimar.Doeffinger@gmx.de> Diego Biurrun <diego@biurrun.de> Signed-off-by: Anton Khirnov <anton@khirnov.net>
OpenPOWER on IntegriCloud