summaryrefslogtreecommitdiff
path: root/libavcodec/hevc.c
Commit message (Collapse)AuthorAge
* Mark read-only tables as staticDiego Biurrun2016-05-05
|
* h2645_parse: add support for parsing h264Anton Khirnov2016-03-28
|
* h2645_parse: add a function for uninitializing the packetAnton Khirnov2016-03-28
|
* hevc_parse: rename into h2645_parseAnton Khirnov2016-03-28
| | | | This code will be shared with h264.
* vdpau: Support for VDPAU accelerated HEVC decodingPhilip Langdale2016-02-13
| | | | | Signed-off-by: Rémi Denis-Courmont <remi@remlab.net> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* hevc: Track long and short term RPS size for VDPAUPhilip Langdale2016-02-13
| | | | | | | | | | | | | | | | 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>
* 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.
* 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.
* hevc: avoid invalid shifts of negative valuesAnton Khirnov2015-08-21
|
* 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>
* 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.
* hevc: do not pass an entire HEVCContext into export_stream_params()Anton Khirnov2015-07-12
| | | | It only needs the parameter sets.
* hevc: improve a commentAnton Khirnov2015-07-12
| | | | That loop does the actual full decoding, so 'parse' can be misleading.
* 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.
* 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.
* 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.
* 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>
* hevc: split bitstream unescaping to a separate fileAnton Khirnov2015-07-08
| | | | 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-08
| | | | | This will be useful in the later commits, where we want to parse an SPS without having a whole decoding context.
* hevc: Fix HWACCEL_MAX for D3D11Michael Niedermayer2015-06-01
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* D3D11va: add a Direct3D11 video decoder similar to DXVA2Steve Lhomme2015-05-25
| | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* hevc: make avcodec_decode_video2() fail if get_format() failswm42015-05-19
| | | | | | | | | | | | Personally, I need the decoder to back out if get_format() returns no usable pixel format. This didn't work because the error code was not propagated down the call chain. This in turn happened because the variable declaration removed in this patch shadowed the variable, whose value is returned at the end of the function. Consequently, failures of decode_nal_unit() were ignored in this place. Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* hevc: export stream parameters from extradataAnton Khirnov2015-04-03
| | | | | This allows the callers to have a hint of the probable stream parameters without actually decoding anything.
* hevc: split out setting AVCodecContext parametersAnton Khirnov2015-04-03
| | | | | | Additionally always set the software pixel format, so it's available even if ff_get_format() is not called later. This will be useful for exporting stream parameters from init().
* hevc: Use generic av_clip function, not C implementationPeter Meerwald2015-02-13
| | | | | | | | | hevc seems to be the only place where the C implementation of the av_clip function is explicitly selected, precluding platform-specific optimizations Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* Add DXVA2 HEVC HWAccelHendrik Leppkes2015-01-27
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: reindent after previous commitHendrik Leppkes2015-01-27
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: add hwaccel hooksHendrik Leppkes2015-01-27
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: store the short term rps flag and size in the contextHendrik Leppkes2015-01-27
| | | | | | For future use by hardware accelerators. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: store the escaped/raw bitstream in HEVCNALHendrik Leppkes2015-01-27
| | | | | | Hardware Accelerators require access to the escaped bitstream. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: pass the full HEVCNAL struct to decode_nal_unitHendrik Leppkes2015-01-27
| | | | | | | This enables decode_nal_unit to access additional fields added in subsequent commits. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* hevc: unref the current frame if frame_start() failsAnton Khirnov2015-01-27
| | | | Prevents DPB from filling up with damaged input.
* hevc: always clip luma_log2_weight_denomVittorio Giovara2014-12-15
| | | | | | | Its value shall be between 0 and 7 according to the specifications. CC: libav-stable@libav.org Bug-Id: CID 1257502
* hevc: Spin the mv_mpv_mode calls in a stand alone functionLuca Barbato2014-11-21
| | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* hevc: remove superfluous assignments and checksAnton Khirnov2014-11-17
|
* hevc: eliminate an unneeded intermediate variableAnton Khirnov2014-11-17
|
* hevc: reduce variable scopeAnton Khirnov2014-11-17
| | | | | Also, collapse the array into a scalar, since only one value is needed at a time.
* hevc: further reduce code duplication in hls_prediction_unit()Anton Khirnov2014-11-17
|
* hevc: reduce code duplication in hls_prediction_unit()Anton Khirnov2014-11-17
|
* hevc: remove an unused function parameterAnton Khirnov2014-11-17
|