summaryrefslogtreecommitdiffstats
path: root/libavcodec/hevc.h
Commit message (Collapse)AuthorAgeFilesLines
* cbs_h265: Add a lot more SEI parsing supportMark Thompson2018-11-181-0/+3
| | | | | | Supports both prefix and suffix SEI, decoding all of the common SEI types and some more obscure ones. Most of this is tested by the existing tests in fate.
* lavc/h2645_parse: log more HEVC NAL type.Jun Zhao2018-05-161-1/+25
| | | | Signed-off-by: Jun Zhao <mypopydev@gmail.com>
* hevc: Improve stream constraint values in common headerMark Thompson2017-10-171-12/+53
| | | | | | | | | | 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 b88da98b34809dedf8882d43ed543632ed233538)
* hevc: Add names for reserved NAL unit typesMark Thompson2017-08-281-0/+16
| | | | | | | While not yet used, these NAL units do already have some defined semantics and are referred to elsewhere. (cherry picked from commit 3daaa4417317ca732fb00476fdb3308d784f87e4)
* Merge commit '0bfdcce4d42a6e654c00ea5f9237dc987626457f'James Almer2017-03-231-0/+6
|\ | | | | | | | | | | | | * commit '0bfdcce4d42a6e654c00ea5f9237dc987626457f': hevc: move the SliceType enum to hevc.h Merged-by: James Almer <jamrial@gmail.com>
| * hevc: move the SliceType enum to hevc.hAnton Khirnov2016-10-211-0/+6
| | | | | | | | | | Those values are decoder-independent and are also use by the VA-API encoder.
* | Merge commit 'f6e2f8a9ffda2247bffba991450990d075ea68e3'James Almer2017-03-231-0/+5
|\ \ | |/ | | | | | | | | | | * commit 'f6e2f8a9ffda2247bffba991450990d075ea68e3': hevcdec: move parameter set parsing into a separate header Merged-by: James Almer <jamrial@gmail.com>
| * hevcdec: move parameter set parsing into a separate headerAnton Khirnov2016-10-161-0/+5
| | | | | | | | | | This code is independent from the decoder, so it makes more sense for it to to have its own header.
| * hevcdec: move decoder-independent declarations into a separate headerAnton Khirnov2016-10-161-0/+65
| | | | | | | | | | | | | | 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.
* | avcodec/hevc: add missing hevc.h headerJames Almer2017-03-231-0/+65
|/ | | | It was lost as part of a merge in 6397815be0bee10948387fcb90ead36ec2834ef7.
* hevc: rename hevc.[ch] to hevcdec.[ch]Anton Khirnov2016-10-161-1016/+0
| | | | | This is more consistent with the rest of libav and frees up the hevc.h name for decoder-independent shared declarations.
* hevc_parse: rename into h2645_parseAnton Khirnov2016-03-281-36/+2
| | | | This code will be shared with h264.
* hevc: Track long and short term RPS size for VDPAUPhilip Langdale2016-02-131-0/+1
| | | | | | | | | | | | | | | | Today, we track the short term RPS size for DXVA, but only if the SliceHeader RPS is being used. Otherwise it's left uninitialized. NVIDIA's VDPAU implementation requires that the size be accurately tracked even if an SPS RPS is being used. In this case, it's really counting the size of the RPS idx information, but you end up with mangled output if the value is not accurate. VDPAU also needs the size of the long term RPS. Signed-off-by: Philip Langdale <philipl@overt.org> Signed-off-by: Rémi Denis-Courmont <remi@remlab.net> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* 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>
* hevcdsp: add x86 SIMD for MCAnton Khirnov2015-12-051-1/+1
|
* hevc: move splitting the packet into NALUs into a separate functionAnton Khirnov2015-07-121-3/+14
| | | | | This function is independent of the decoding context, so we'll be able to use it in the parser.
* hevc: eliminate the second call to hls_nal_unit()Anton Khirnov2015-07-121-0/+5
| | | | | | | Also, make hls_nal_unit() work only on the provided NAL unit, without requiring a whole decoding context. This will allow splitting this code for reuse by the parser.
* hevc: remove HEVCContext usage from hevc_psAnton Khirnov2015-07-121-9/+18
| | | | | | Factor out the parameter sets into a separate struct and use it instead. This will allow us to reuse this code in the parser.
* lavc: add Intel libmfx-based HEVC encoderAnton Khirnov2015-07-081-0/+3
|
* hevc: split bitstream unescaping to a separate fileAnton Khirnov2015-07-081-0/+6
| | | | It will be useful in the QSV HEVC encoder.
* hevc_ps: split the code for parsing the SPS and exporting it into the contextAnton Khirnov2015-07-081-2/+15
| | | | | This will be useful in the later commits, where we want to parse an SPS without having a whole decoding context.
* hevc: make the crop sizes unsignedAnton Khirnov2015-03-211-4/+4
|
* hevc: add hwaccel hooksHendrik Leppkes2015-01-271-0/+3
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: store the short term rps flag and size in the contextHendrik Leppkes2015-01-271-0/+2
| | | | | | For future use by hardware accelerators. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: store the escaped/raw bitstream in HEVCNALHendrik Leppkes2015-01-271-0/+3
| | | | | | Hardware Accelerators require access to the escaped bitstream. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: do not store rqt_root_cbf in the contextAnton Khirnov2014-11-171-2/+0
| | | | It does not need to be accessed outside of hls_coding_unit().
* hevc: do not store pcm_flag in the contextAnton Khirnov2014-11-171-2/+0
| | | | It does not need to be accessed outside of hls_coding_unit().
* hevc: use intreadwriteChristophe Gisquet2014-08-121-1/+1
| | | | | | When dealing with MVs, both components may be processed at a time. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: deobfuscate slice/tile boundary handling for DBFAnton Khirnov2014-08-091-5/+8
| | | | | Use named constants instead of magic numbers, avoid using variables with inverse meaning from what their name implies.
* hevc: eliminate the last element from TransformTreeAnton Khirnov2014-07-281-5/+0
| | | | Replace it by passing an additional parameter to transform_unit()
* hevc: eliminate unnecessary cbf_c{b,r} arraysAnton Khirnov2014-07-281-3/+0
| | | | | They are replaced by passing additional parameters to the transform functions.
* hevc: do not store the transform inter_split flag in the contextAnton Khirnov2014-07-281-3/+0
| | | | It does not need to be preserved.
* hevc: eliminate an unnecessary arrayAnton Khirnov2014-07-281-1/+0
| | | | We do not need to store the value of the split flag.
* hevc: parse display orientation SEI messageVittorio Giovara2014-07-091-0/+5
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* hevc: remove unused array min_cb_addr_zsGildas Cocherel2014-06-261-1/+0
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* dsputil: Split bswap*_buf() off into a separate contextDiego Biurrun2014-06-221-2/+2
|
* hevc: templatize intra_predAnton Khirnov2014-05-191-2/+1
|
* hevc: make pps/sps ids unsigned where necessaryVittorio Giovara2014-03-091-1/+1
| | | | | Fixes integer overflow and out of array accesses. Found-by: Mateusz j00ru Jurczyk and Gynvael Coldwind
* hevc: check that the VCL NAL types are the same for all slice segments of a ↵Anton Khirnov2014-02-041-0/+2
| | | | | | | | | | frame Fixes possible invalid memory access for mismatching skipped/non-skipped slice segments. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Sample-Id: 00001533-google
* hevc: Prevent some integer overflowsLuca Barbato2014-01-211-2/+2
| | | | | | | | 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-4/+4
| | | | | | | | | | 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: Fix modulo operationsMichael Niedermayer2014-01-211-0/+3
| | | | | | | Keep qp fields within the range. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* hevc: fix decoding of one PU wide filesGuillaume Martres2014-01-091-2/+4
| | | | | | | For those the block size may be larger than the source linesize (if the edges are not allocated). Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: move DSP declarations from hevc.h into hevcdsp.hGuillaume Martres2013-12-221-81/+1
| | | | 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-0/+1
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: refactor Profile Tier LevelGildas Cocherel2013-12-201-11/+14
| | | | | | Also store a few PTL flags which were skipped before Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: store the VPS list as an AVBufferRef, just like the others *PSGildas Cocherel2013-12-111-1/+1
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: parse frame packing arrangement SEI messages and save relevant ↵Vittorio Giovara2013-12-091-0/+6
| | | | stereo3d information
* Add HEVC decoderGuillaume Martres2013-10-311-0/+1066
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