summaryrefslogtreecommitdiff
path: root/libavcodec/hevc.c
Commit message (Collapse)AuthorAge
* lavc: use get_bitsz to simplify the codeAndreas Cadhalpun2016-01-03
| | | | | Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
* Merge commit '2c6811397bdf13d43ca206e48d6d6da9c2cd47c6'Hendrik Leppkes2016-01-01
|\ | | | | | | | | | | | | * commit '2c6811397bdf13d43ca206e48d6d6da9c2cd47c6': lavc: add profiles to AVCodecDescriptor Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * lavc: add profiles to AVCodecDescriptorAnton Khirnov2015-12-12
| | | | | | | | | | The profiles are a property of the codec, so it makes sense to export them through AVCodecDescriptors, not just the codec implementations.
| * hevcdsp: add x86 SIMD for MCAnton Khirnov2015-12-05
| |
| * hevc: change the stride of the MC buffer to be in bytes instead of elementsAnton Khirnov2015-12-05
| | | | | | | | | | | | Currently, the frame stride is passed in bytes, while the MC buffer size is in int16_t elements, This can be confusing, so pass both strides in bytes.
| * hevcdsp: split the pred functions by widthAnton Khirnov2015-12-05
| | | | | | | | This should allow for more efficient SIMD.
| * hevcdsp: split the epel functions by widthAnton Khirnov2015-12-05
| | | | | | | | This should allow for more efficient SIMD.
| * hevcdsp: split the qpel functions by width instead of by the subpixel fractionAnton Khirnov2015-12-05
| | | | | | | | | | | | | | This should allow for more efficient SIMD. Keep the C versions as they are now, to allow the compiler to inline the interpolation coefficients.
| * cabac: Make CABAC states hardcodedAnton Khirnov2015-10-08
| | | | | | | | | | | | | | There is not much reason to generate such a small table at runtime. Signed-off-by: Derek Buitenhuis <derekb@vimeo.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * hevc: Simplify logical checkVittorio Giovara2015-10-04
| | | | | | | | | | | | The intended meaning is "if this block is the first block in a slice then its left boundary is a slice boundary". Silence a logical-not-parentheses warning from gcc.
* | avcodec/hevc: Fix integer overflow of entry_point_offsetMichael Niedermayer2015-12-05
| | | | | | | | | | | | | | | | Fixes out of array read Fixes: d41d8cd98f00b204e9800998ecf8427e/signal_sigsegv_321165b_7641_077dfcd8cbc80b1c0b470c8554cd6ffb.bit Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec: use AV_OPT_TYPE_BOOL in a bunch of placesClément Bœsch2015-12-04
| |
* | avcodec/hevc: Check max ctb addresses for WPPMichael Niedermayer2015-11-28
| | | | | | | | | | | | | | | | Fixes out of array read Fixes: 2f95ddd996db8a6281d2e18c184595a7/asan_heap-oob_192fe91_3330_58e4441181e30a66c19f743dcb392347.bit Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/hevc: allocate entries unconditionallyMichael Niedermayer2015-11-27
| | | | | | | | | | | | | | | | Fixes out of array access Fixes: 08664a2a7921ef48172f26495c7455be/asan_heap-oob_23036c6_3301_523388ef84285a0270caf67a43247b59.bit Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/hevc: Check entry_point_offsetsMichael Niedermayer2015-11-27
| | | | | | | | | | | | | | | | Fixes out of array read Fixes: 007c4a36608ebdf27ee260ad60a81184/asan_heap-oob_32076b4_2243_116b1cb29d91cc4974d6680e3d10bd91.bit Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | hevc: Fix a53 caption extractionWill Kelleher2015-11-12
| | | | | | | | | | | | | | | | | | | | | | Just realized my previous patch doesn't work quite right. I uploaded a better sample file that actually has visible captions to /incoming/hevc_cc.ts. I tested with that file doing hevc->x264 and it works. This is basically an exact copy of the existing h264 logic. Signed-off-by: Will Kelleher <wkelleher@gogoair.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | hevc: extract SEI caption dataWill Kelleher2015-11-07
| | | | | | | | | | Signed-off-by: Will Kelleher <wkelleher@gogoair.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | all: remove some casts of function pointer to void *Ganesh Ajjanagadde2015-10-24
| | | | | | | | | | | | | | | | | | | | These casts are unnecessary, and may safely be removed. Found by enabling -Wpedantic on clang 3.7. Tested with FATE. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
* | cabac: Make cabac starts hardcodedAnton Khirnov2015-10-10
| | | | | | | | | | | | There's not much reason to generate such a small table at runtime. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | hevc: fix wpp threading deadlock.Ronald S. Bultje2015-09-21
| | | | | | | | Fixes ticket 4258.
* | hevc: properly handle no_rasl_output_flag when removing pictures from the DPBHendrik Leppkes2015-09-20
| | | | | | | | | | | | | | Fixes ticket #4185. Reviewed-By: Mickael Raulet <Mickael.Raulet@insa-rennes.fr> Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
* | Merge commit '2268db2cd052674fde55c7d48b7a5098ce89b4ba'Hendrik Leppkes2015-09-08
|\| | | | | | | | | | | | | * commit '2268db2cd052674fde55c7d48b7a5098ce89b4ba': lavu: Drop the {minus,plus}1 suffix from AVComponentDescriptor fields Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * lavu: Drop the {minus,plus}1 suffix from AVComponentDescriptor fieldsVittorio Giovara2015-09-07
| | | | | | | | | | | | The new fields can be accessed directly and are more intelligible. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
| * hevcdsp: fix a function nameAnton Khirnov2015-08-21
| | | | | | | | | | put_weighted_pred_avg should be put_unweighted_pred_avg, there is no weighting there.
* | vaapi: Add hevc hwaccel supportTimo Rothenpieler2015-08-27
| | | | | | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* | Merge commit 'a1926a29fb4325afa46842883f197c74d4535c36'Hendrik Leppkes2015-08-24
|\| | | | | | | | | | | | | * commit 'a1926a29fb4325afa46842883f197c74d4535c36': hevc: avoid invalid shifts of negative values Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * hevc: avoid invalid shifts of negative valuesAnton Khirnov2015-08-21
| |
* | lavc: propagate hwaccel errorswm42015-08-06
| | | | | | | | | | | | | | | | At least the new videotoolbox decoder does not actually set a frame if end_frame fails. This causes the API to return success and signals that a picture was decoded, even though AVFrame->data[0] is NULL. Fix this by propagating end_frame errors.
* | Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'Michael Niedermayer2015-07-27
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'def97856de6021965db86c25a732d78689bd6bb0': lavc: AV-prefix all codec capabilities Conflicts: cmdutils.c ffmpeg.c ffplay.c libavcodec/8svx.c libavcodec/aacenc.c libavcodec/ac3dec.c libavcodec/adpcm.c libavcodec/alac.c libavcodec/atrac3plusdec.c libavcodec/bink.c libavcodec/dnxhddec.c libavcodec/dvdec.c libavcodec/dvenc.c libavcodec/ffv1dec.c libavcodec/ffv1enc.c libavcodec/fic.c libavcodec/flacdec.c libavcodec/flacenc.c libavcodec/flvdec.c libavcodec/fraps.c libavcodec/frwu.c libavcodec/gifdec.c libavcodec/h261dec.c libavcodec/hevc.c libavcodec/iff.c libavcodec/imc.c libavcodec/libopenjpegdec.c libavcodec/libvo-aacenc.c libavcodec/libvorbisenc.c libavcodec/libvpxdec.c libavcodec/libvpxenc.c libavcodec/libx264.c libavcodec/mjpegbdec.c libavcodec/mjpegdec.c libavcodec/mpegaudiodec_float.c libavcodec/msmpeg4dec.c libavcodec/mxpegdec.c libavcodec/nvenc_h264.c libavcodec/nvenc_hevc.c libavcodec/pngdec.c libavcodec/qpeg.c libavcodec/ra288.c libavcodec/rv10.c libavcodec/s302m.c libavcodec/sp5xdec.c libavcodec/takdec.c libavcodec/tiff.c libavcodec/tta.c libavcodec/utils.c libavcodec/v210dec.c libavcodec/vp6.c libavcodec/vp9.c libavcodec/wavpack.c libavcodec/yop.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * lavc: AV-prefix all codec capabilitiesVittorio Giovara2015-07-27
| | | | | | | | | | | | Express bitfields more simply. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
| * hevc_parser: fix standalone build with the hevc decoder disabledAnton Khirnov2015-07-13
| | | | | | | | | | | | The parser depends on hevc_ps, which in turn needs some data tables. Found-by: James Almer <jamrial@gmail.com>
* | Merge commit '077b55943330150db0eafd36bbee614697cabd98'Michael Niedermayer2015-07-13
|\| | | | | | | | | | | | | * commit '077b55943330150db0eafd36bbee614697cabd98': hevc: handle a NULL sps in set_sps() properly Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * hevc: handle a NULL sps in set_sps() properlyAnton Khirnov2015-07-12
| | | | | | | | | | This can happen in update_thread_context(), when the previous frame was corrupted.
* | Merge commit '18156b53f9b642b71c182c5c9818175a61572d2b'Michael Niedermayer2015-07-13
|\| | | | | | | | | | | | | * commit '18156b53f9b642b71c182c5c9818175a61572d2b': hevc: do not pass an entire HEVCContext into export_stream_params() Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * hevc: do not pass an entire HEVCContext into export_stream_params()Anton Khirnov2015-07-12
| | | | | | | | It only needs the parameter sets.
* | avcodec/hevc: Simplify skipped_bytes_pos code furtherMichael Niedermayer2015-07-13
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/hevc: Move skipped_bytes_pos_nal to HEVCNAL, simplify codeMichael Niedermayer2015-07-13
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/hevc: Move skipped_bytes_pos_size_nal into HAVCNALMichael Niedermayer2015-07-13
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/hevc: Remove skipped_bytes_nal, simplify codeMichael Niedermayer2015-07-13
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit '7f78155dc6b65be55efb5309b6dd2bb33925a8c4'Michael Niedermayer2015-07-12
|\| | | | | | | | | | | | | * commit '7f78155dc6b65be55efb5309b6dd2bb33925a8c4': hevc: improve a comment Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * hevc: improve a commentAnton Khirnov2015-07-12
| | | | | | | | That loop does the actual full decoding, so 'parse' can be misleading.
* | Merge commit 'd82e1adc2019135a2fc45372e0ed0b5ef107cdd0'Michael Niedermayer2015-07-12
|\| | | | | | | | | | | | | | | | | | | | | | | * commit 'd82e1adc2019135a2fc45372e0ed0b5ef107cdd0': hevc: move splitting the packet into NALUs into a separate function Conflicts: libavcodec/hevc.c libavcodec/hevc.h libavcodec/hevc_parse.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * hevc: move splitting the packet into NALUs into a separate functionAnton Khirnov2015-07-12
| | | | | | | | | | This function is independent of the decoding context, so we'll be able to use it in the parser.
* | Merge commit 'ae05b4865514fd71b5e9431e93aa0d03d7ba7751'Michael Niedermayer2015-07-12
|\| | | | | | | | | | | | | | | | | | | * commit 'ae05b4865514fd71b5e9431e93aa0d03d7ba7751': hevc: eliminate the second call to hls_nal_unit() Conflicts: libavcodec/hevc.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * hevc: eliminate the second call to hls_nal_unit()Anton Khirnov2015-07-12
| | | | | | | | | | | | | | 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.
* | Merge commit 'd7bebe4805193783f0b6f292f9127a75709fb7d9'Michael Niedermayer2015-07-12
|\| | | | | | | | | | | | | * commit 'd7bebe4805193783f0b6f292f9127a75709fb7d9': hevc: skip invalid/ignored NALUs when splitting the packet Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * hevc: skip invalid/ignored NALUs when splitting the packetAnton Khirnov2015-07-12
| | | | | | | | | | There is no need to wait until actually decoding the NALU. This will allow to get rid of the second hls_nal_unit() call later.
* | Merge commit 'b11acd57326db6c2cc1475dd0bea2a06fbc85aa2'Michael Niedermayer2015-07-12
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'b11acd57326db6c2cc1475dd0bea2a06fbc85aa2': hevc: remove HEVCContext usage from hevc_ps Conflicts: libavcodec/hevc.c libavcodec/hevc_cabac.c libavcodec/hevc_filter.c libavcodec/hevc_mvs.c libavcodec/hevc_ps.c libavcodec/hevc_refs.c libavcodec/hevcpred_template.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * hevc: remove HEVCContext usage from hevc_psAnton Khirnov2015-07-12
| | | | | | | | | | | | 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: check slice address lengthAndreas Cadhalpun2015-07-12
| | | | | | | | | | | | | | It is used as get_bits argument and reading 0 bits doesn't make sense. Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>