summaryrefslogtreecommitdiffstats
path: root/libavcodec/h264dec.h
Commit message (Collapse)AuthorAgeFilesLines
* h264dec: use a large enough field for reference list modification valuesAnton Khirnov2017-08-181-1/+1
| | | | | | | pic_num can be at most 17-bit, so uint8_t is not sufficient. Found-By: Bradley Sepos <bradley@bradleysepos.com> CC: libav-stable@libav.org
* h264dec: track the last seen value of x264_buildAnton Khirnov2017-07-261-0/+1
| | | | | | | | | | Do not use the one in the SEI directly as that is reset at certain points. Inspired by patches from Michael Niedermayer <michaelni@gmx.at> and Anton Mitrofanov <BugMaster@narod.ru>. CC: libav-stable@libav.org
* h264dec: export cropping information instead of handling it internallyAnton Khirnov2017-01-121-0/+5
|
* h264dec: be more explicit in handling container croppingAnton Khirnov2017-01-121-0/+5
| | | | | | | | | | | | | The current condition can trigger in cases where it shouldn't, with unexpected results. Make sure that: - container cropping is really based on the original dimensions from the caller - those dimenions are discarded on size change The code is still quite hacky and eventually should be deprecated and removed, with the decision about which cropping is used delegated to the caller.
* h264dec: make ff_h264_decode_init() staticAnton Khirnov2017-01-091-1/+0
| | | | It is not called from outside h264dec.c anymore.
* h264dec: make sure to only end a field if it has been startedAnton Khirnov2016-12-191-0/+5
| | | | | | | | Calling ff_h264_field_end() when the per-field state is not properly initialized leads to all kinds of undefined behaviour. CC: libav-stable@libav.org Bug-Id: 977 978 992
* h264: fix decoding multiple fields per packet with slice threadsAnton Khirnov2016-07-151-3/+9
| | | | | | | | | | | | | Since we only know whether a NAL unit corresponds to a new field after parsing the slice header, this requires reorganizing the calls to slice parsing, per-slice/field/frame init and actual decoding. In the previous code, the function for slice header decoding also immediately started a new field/frame as necessary, so any slices already queued for decoding would no longer be decodable. After this patch, we first parse the slice header, and if we determine that a new field needs to be started we decode all the queued slices.
* h264: eliminate decode_postinit()Anton Khirnov2016-07-151-1/+2
| | | | | | | | This function's purpose is not very well defined. Currently it does two (only marginally related) things: selecting the next output frame and calling ff_thread_finish_setup() for frame threading. The first of those more properly belongs under field_start(), while the second can be called directly from decode_nal_units().
* h264: fix the check for mixed IDR/non-IDR slicesAnton Khirnov2016-06-211-0/+5
|
* h264: do not pass H264Context to h264_slice_header_parse()Anton Khirnov2016-06-211-3/+3
| | | | | This should make it more clear that this function does not need any decoder-global state other than the parameter sets.
* h264: move the parameter set definitions to a new header fileAnton Khirnov2016-06-211-121/+1
| | | | | The PS parsing code is independent from the decoder, so it makes more sense for it to have its own separate header.
* h264: create a new header for common h264 definitionsAnton Khirnov2016-06-211-18/+0
| | | | | | Move the NAL unit types into it. This will allow to stop including the whole decoder-specific h264dec.h in some code that is unrelated to the decoder and only needs some enum values.
* h264: rename h264.[ch] to h264dec.[ch]Anton Khirnov2016-06-211-0/+938
This is more consistent with the naming of other decoders.
OpenPOWER on IntegriCloud