summaryrefslogtreecommitdiff
path: root/libavcodec/h264.h
Commit message (Collapse)AuthorAge
* lavc/h2645_parse: add h264_nal_unit_name for h264 NAL type.Jun Zhao2018-05-16
| | | | Signed-off-by: Jun Zhao <mypopydev@gmail.com>
* h264: Add stream constraint values to the common headerMark Thompson2017-10-17
| | | | | | With comments describing the derivation of each value. (cherry picked from commit aaf441465080b9bc57f5ca8dea656f9b2c5dc821)
* Merge commit '5c2fb561d94fc51d76ab21d6f7cc5b6cc3aa599c'James Almer2016-08-01
|\ | | | | | | | | | | | | | | | | | | | | | | | | * commit '5c2fb561d94fc51d76ab21d6f7cc5b6cc3aa599c': h264: add H264_ prefix to the NAL unit types Conflicts: libavcodec/h264_parse.c libavcodec/h264_parser.c libavcodec/h264_slice.c libavcodec/h264dec.c Merged-by: James Almer <jamrial@gmail.com>
| * h264: add H264_ prefix to the NAL unit typesAnton Khirnov2016-06-21
| | | | | | | | | | This will prevent conflicts e.g. in code that deals with both h264 and hevc.
* | Merge commit 'f638b67e5790735f34620bf82025c9b9d6fc7216'James Almer2016-08-01
|\| | | | | | | | | | | | | | | | | | | | | | | * commit 'f638b67e5790735f34620bf82025c9b9d6fc7216': h264: move the parameter set definitions to a new header file Conflicts: libavcodec/h264_parse.h libavcodec/h264_ps.c libavcodec/h264dec.h Merged-by: James Almer <jamrial@gmail.com>
| * h264: move the parameter set definitions to a new header fileAnton Khirnov2016-06-21
| | | | | | | | | | The PS parsing code is independent from the decoder, so it makes more sense for it to have its own separate header.
* | Merge commit '251cbb44003caf179fb17afbb8a6c56643c2a646'Clément Bœsch2016-07-29
|\| | | | | | | | | | | | | * commit '251cbb44003caf179fb17afbb8a6c56643c2a646': h264: create a new header for common h264 definitions Merged-by: Clément Bœsch <u@pkh.me>
| * h264: create a new header for common h264 definitionsAnton Khirnov2016-06-21
|/ | | | | | 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-21
| | | | This is more consistent with the naming of other decoders.
* h264: drop unused NAL_FF_IGNOREAnton Khirnov2016-06-21
|
* h264: store {curr,max}_pic_num in the per-slice contextAnton Khirnov2016-06-21
| | | | | | | While the value of those variables will be constant for the whole frame, they are only used in two functions called from slice header decoding. Moving them to the per-slice context allows us to make the H264Context passed to slice_header_parse() constant.
* h264: decode the poc values from the slice header into the per-slice contextAnton Khirnov2016-06-21
| | | | | Copy them into the decoder-global context in field_start(). This avoids modifying the decoder-global context during bitstream parsing.
* h264: pass a H2645NAL to slice header decodingAnton Khirnov2016-06-21
| | | | | | Replace the decoder-global nal_unit_type/nal_ref_idc variables with the per-NAL ones. The decoder-global ones still cannot be removed because they are used by hwaccels.
* h264: factor out setting the parameter sets for a frameAnton Khirnov2016-06-12
|
* h264: pass just the PPS to get_chroma_qp()Anton Khirnov2016-06-12
| | | | | It does not need the whole context. This will simplify the following commit.
* h264: factor starting a new field out of parsing the slice headerAnton Khirnov2016-06-12
|
* h264: postpone generating the implicit MMCOsAnton Khirnov2016-06-12
| | | | | | Do it right before the MMCOs are applied to the DPB. This will allow moving the frame_start() call out of the slice header parsing, since generating the implicit MMCOs needs to be done after frame_start().
* h264: decode the MMCOs into per-slice contextsAnton Khirnov2016-06-12
| | | | | | They are stored in the slice header, so technically they are per-slice (though they must be the same in every slice). This will simplify the following commits.
* h264: rename mmco_index to nb_mmcoAnton Khirnov2016-06-12
| | | | | The variable stores the number of mmco entries, so the current name is misleading.
* h264: move initializing the slice start out of h264_slice_header_parse()Anton Khirnov2016-06-12
|
* h264: split reading the ref list modifications and actually building the ref ↵Anton Khirnov2016-06-12
| | | | | | | | list This will allow postponing the reference list construction (and by consequence some other functions, like frame_start) until the whole slice header has been parsed.
* h264: call ff_h264_fill_mbaff_ref_list() when constructing the normal ref listAnton Khirnov2016-06-12
| | | | There is no real reason to call it separately.
* h264: drop unused H264Context.gbAnton Khirnov2016-06-09
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* cosmetics: Fix spelling mistakesVittorio Giovara2016-05-04
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* h264: eliminate max_contextsAnton Khirnov2016-04-24
| | | | It is always equal to nb_slice_ctx.
* h264: remove an artificial restriction on the number of slice threadsAnton Khirnov2016-04-24
| | | | | This limit is now unnecessary, we can easily support an arbitrary number of threads.
* h264: make slice threading work with deblocking_filter=1Anton Khirnov2016-04-24
| | | | | | | | | | | | In such a case, decode the MBs in parallel without the loop filter, then execute the filter serially. The ref2frm array was previously moved to H264SliceContext. That was incorrect, since it applies to all the slices and should properly be in H264Context (it did not actually break decoding, since this distinction only becomes relevant with slice threading and deblocking_filter=1, which was not implemented before this commit). The ref2frm array is thus moved back to H264Context.
* h264: remove H264Context.pict_typeAnton Khirnov2016-04-24
| | | | | It is not used for anything internally, just exported in the output frames. So remove the indirection and set it directly in frame_start().
* h264: drop a pointless indirectionAnton Khirnov2016-04-24
|
* h264: remove unused H264SliceContext.rbsp_bufferAnton Khirnov2016-04-24
|
* h264: merge ff_h264_free_context() into h264_decode_end()Anton Khirnov2016-04-24
| | | | It is no longer called from outside the h264 decoder.
* h264: eliminate low_delayAnton Khirnov2016-04-24
| | | | | | It is always unconditionally initialized in decode_postinit() and then immediately used in one place further below. All the other places where it is accessed are just useless fluff.
* h264_refs: remove an unused parameter from ff_h264_fill_mbaff_ref_list()Anton Khirnov2016-04-24
|
* h264_refs: make the H264Context const where possibleAnton Khirnov2016-04-24
|
* h264_parser: remove the remaining dependencies on the h264 decoderAnton Khirnov2016-04-24
|
* h264: decouple extradata parsing from the decoderAnton Khirnov2016-04-24
| | | | This will allow decoupling the parser from the decoder.
* h264: decouple h264_sei from the h264 decoderAnton Khirnov2016-04-24
| | | | | Make the SEI parsing independent of the H264Context, to allow decoupling the parser from the decoder.
* h264: factor out calculating the POC count into a separate fileAnton Khirnov2016-04-24
| | | | This will allow decoupling the parser from the decoder.
* h264: decouple h264_ps from the h264 decoderAnton Khirnov2016-04-24
| | | | | | | | | Make the SPS/PPS parsing independent of the H264Context, to allow decoupling the parser from the decoder. The change is modelled after the one done earlier for HEVC. Move the dequant buffers to the PPS to avoid complex checks whether they changed and an expensive copy for frame threads.
* h264: factor out parsing the reference count into a separate fileAnton Khirnov2016-04-24
| | | | This will allow decoupling the parser from the decoder.
* h264_parser: switch to h2645_parse for NAL unescapingAnton Khirnov2016-04-24
| | | | Remove now unused ff_h264_decode_nal().
* h264: Add missing ff_ prefix to internally visible h264_init_dequant_tables()Diego Biurrun2016-03-30
|
* h264: switch to h2645_parse for NAL parsingAnton Khirnov2016-03-28
|
* svq3: drop the build dependency on the h264 decoderAnton Khirnov2016-03-28
|
* h264: move ff_h264_check_intra[4x4]_pred_mode() to h264_parseAnton Khirnov2016-03-28
| | | | It is shared with svq3.
* h264: factor out pred weight table parsing into a separate fileAnton Khirnov2016-03-28
| | | | This will allow decoupling the parser from the decoder.
* h264: Add an AVClass pointer to H264ContextMichael Niedermayer2016-02-22
| | | | | | | Sample-Id: asan_heap-uaf_3660f67_757_cov_1257014655_Hi422FR1_SONY_A.jsv Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* h264: eliminate default_ref_listAnton Khirnov2015-12-06
| | | | | | | | | | | | | According to the spec, the reference list for a slice should be constructed by first generating an initial (what we now call "default") reference list and then optionally applying modifications to it. Our code has an optimization where the initial reference list is constructed for the first inter slice and then rebuilt for other slices if needed. This, however, adds complexity to the code, requires an extra 2.5kB array in the codec context and there is no reason to think that it has any positive effect on performance. Therefore, simplify the code by generating the reference list from scratch for each slice.
* h264: Run VLC init under pthread_onceDerek Buitenhuis2015-10-14
| | | | | | | This makes the h.264 decoder threadsafe to initialize. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* h264: Add support for Closed Caption exportKieran Kunhya2015-07-17
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>