summaryrefslogtreecommitdiff
path: root/libavcodec/hevc.c
Commit message (Collapse)AuthorAge
* lavc: deprecate the use of AVCodecContext.time_base for decodingAnton Khirnov2014-10-15
| | | | | | | | | | | When decoding, this field holds the inverse of the framerate that can be written in the headers for some codecs. Using a field called 'time_base' for this is very misleading, as there are no timestamps associated with it. Furthermore, this field is used for a very different purpose during encoding. Add a new field, called 'framerate', to replace the use of time_base for decoding.
* hevc: use intreadwriteChristophe Gisquet2014-08-12
| | | | | | When dealing with MVs, both components may be processed at a time. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: reorder loopsChristophe Gisquet2014-08-12
| | | | | | iterate over memory in a more continuous order Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: deobfuscate slice/tile boundary handling for DBFAnton Khirnov2014-08-09
| | | | | Use named constants instead of magic numbers, avoid using variables with inverse meaning from what their name implies.
* hevc: calculate the dbf strength in hls_pcm_sample() only if dbf is enabledAnton Khirnov2014-08-09
|
* hevc: eliminate the last element from TransformTreeAnton Khirnov2014-07-28
| | | | Replace it by passing an additional parameter to transform_unit()
* hevc: eliminate unnecessary cbf_c{b,r} arraysAnton Khirnov2014-07-28
| | | | | 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-28
| | | | It does not need to be preserved.
* hevc: simplify splitting the transform tree blocksAnton Khirnov2014-07-28
|
* hevc: eliminate an unnecessary arrayAnton Khirnov2014-07-28
| | | | We do not need to store the value of the split flag.
* hevc: implement pic_output_flag handlingGildas Cocherel2014-07-11
| | | | | | Sample-Id: OPFLAG_B_Qualcomm_1.bit, OPFLAG_C_Qualcomm_1.bit Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: set the keyframe flag on output framesMickaël Raulet2014-07-11
| | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: Replace nal type chek with equivalent IS_IRAP macroMickaël Raulet2014-07-11
| | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: parse display orientation SEI messageVittorio Giovara2014-07-09
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* hevc: Use the local context variable when neededLuca Barbato2014-07-02
|
* dsputil: Split bswap*_buf() off into a separate contextDiego Biurrun2014-06-22
|
* Add av_image_check_sar() and use it to validate SARJustin Ruggles2014-06-20
|
* hevc: templatize intra_predAnton Khirnov2014-05-19
|
* hevc: Do not turn 32bit timebases into negative numbersMichael Niedermayer2014-03-09
| | | | Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
* hevc: use av_mallocz() for allocating tab_ipmMichael Niedermayer2014-03-09
| | | | | Fixes use of uninitialized memory and out of stack array read. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
* hevc: Always consider VLC NALU type mismatch fatalLuca Barbato2014-02-19
| | | | | | Sample-Id: 00001667-google Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* hevc: check that the VCL NAL types are the same for all slice segments of a ↵Anton Khirnov2014-02-04
| | | | | | | | | | 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: Reject impossible slice segmentLuca Barbato2014-02-01
| | | | | | | | | A dependent slice cannot have address 0. Prevent an out of array bound load in ff_hevc_cabac_init(). Sample-Id: 00001406-google Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* hevc: Bound check cu_qp_deltaLuca Barbato2014-01-21
| | | | | The T-REC-H.265-2013044 page 91 states it has to be in the range [-(26 + s->sps->qp_bd_offset / 2), (25 + s->sps->qp_bd_offset / 2)].
* hevc: Bound check slice_qpLuca Barbato2014-01-21
| | | | | | | | | The T-REC-H.265-2013044 page 79 states it has to be in the range [-s->sps->qp_bd_offset, 51]. Sample-Id: 00001386-google Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* hevc: Prevent some integer overflowsLuca Barbato2014-01-21
| | | | | | | | 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: Fix modulo operationsMichael Niedermayer2014-01-21
| | | | | | | 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-09
| | | | | | | 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: support luma bit depth != chroma bit depth for PCM coding unitsMickaël Raulet2013-12-20
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: store profile and level in AVCodecContextGildas Cocherel2013-12-20
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavc: add HEVC profiles namesGildas Cocherel2013-12-20
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: set time_base when possibleGuillaume Martres2013-12-11
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: store the VPS list as an AVBufferRef, just like the others *PSGildas Cocherel2013-12-11
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: do not dereference pointer before NULL check in verify_md5()Michael Niedermayer2013-12-11
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: parse frame packing arrangement SEI messages and save relevant ↵Vittorio Giovara2013-12-09
| | | | stereo3d information
* lavc: Edge emulation with dst/src linesizeRonald S. Bultje2013-11-15
| | | | | | Allow supporting files for which the image stride is smaller than the maximum block size + number of subpel mc taps, e.g. a 64x64 VP9 file or a 16x16 VP8 file with -fflags +emu_edge.
* hevc: Use parsed VUI colorimetry in avcodecJan Ekström2013-11-04
| | | | | | Also limit the parsed VUI values to known valid ones. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* Add HEVC decoderGuillaume Martres2013-10-31
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>