summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* h264: factor out setting frame properties / side dataAnton Khirnov2016-06-21
| | | | | | Right now this code is mixed with selecting the next output frame. Move it to a separate function called from h264_field_start(), which is a more appropriate place for this.
* h264: drop unused NAL_FF_IGNOREAnton Khirnov2016-06-21
|
* h264: move a per-field block from decode_slice_header() to field_start()Anton Khirnov2016-06-21
| | | | This is a more appropriate place for it.
* h264: only allow ending a field/starting a new one before finish_setup()Anton Khirnov2016-06-21
| | | | | Doing this after ff_thread_finish_setup() is called is invalid and can conflict with reads from the other thread.
* 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: set mb_aff_frame in frame_start()Anton Khirnov2016-06-21
| | | | | Avoid unnecessary modification of the decoder-global state in per-slice code.
* h264: move the block starting a new field out of slice_header_parse()Anton Khirnov2016-06-21
| | | | | | | | | There is no bitstream parsing in that block and messing with decoder-global state is not something that belongs into header parsing. Nothing else in this function depends on the value of current_slice, except for two validity checks. Those checks are also moved out of slice_header_parse().
* 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.
* fate: Add TrueMotion 2 RT testsVittorio Giovara2016-06-20
|
* fate: Move Duck Truemotion 1 and 2 tests to vpx.makVittorio Giovara2016-06-20
|
* Add TrueMotion 2.0 Real Time decoderPaul B Mahol2016-06-20
| | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* fate: Add tests for MagicYUVVittorio Giovara2016-06-20
|
* Add MagicYUV decoderPaul B Mahol2016-06-20
| | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* ffv1: Error out on unsupported formatJerome Martinez2016-06-18
| | | | Transparency is supported only by YUV and within specific bit depths.
* checkasm: Add tests for h264 idctMartin Storsjö2016-06-17
| | | | | | | The tests are inspired by similar tests for vp9 by Ronald Bultje. Signed-off-by: Martin Storsjö <martin@martin.st>
* mov: Support prores with multiple stsdVittorio Giovara2016-06-17
| | | | | | This function needs to return false, or data in the additional tables will be skipped, and the decoder will not be able to decode frames associated with them.
* mov: Implement support for multiple sample description tablesVittorio Giovara2016-06-17
| | | | | | | | | | | | | | | | Store data from each stsd in a separate extradata buffer, keep track of the stsc index for read and seek operations, switch buffers when the index differs. Decoder is notified with an AV_PKT_DATA_NEW_EXTRADATA packet side data. Since H264 supports this notification, and can be reset midstream, enable this feature only for multiple avcC's. All other stsd types (such as hvc1 and hev1) need decoder-side changes, so they are left disabled for now. This is implemented only in non-fragmented MOVs. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* h264: Support AV_PKT_DATA_NEW_EXTRADATAVittorio Giovara2016-06-17
|
* lavc: Document AV_PKT_DATA_NEW_EXTRADATAVittorio Giovara2016-06-17
|
* x86: Add missing movsxd for the int stride parameterMartin Storsjö2016-06-17
| | | | Signed-off-by: Martin Storsjö <martin@martin.st>
* avdevice: Ignore timefilter test programDiego Biurrun2016-06-14
|
* LICENSE: Fix silly typoDiego Biurrun2016-06-14
|
* h264: Drop unused function check_opcodes()Diego Biurrun2016-06-14
|
* avpacket: Error out when creating 0-sized side dataVittorio Giovara2016-06-13
| | | | | | | | This mimics the behaviour of other av_*_new_side_data(). This is not caught by the malloc check, since padding is always added to the allocated size. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* pixdesc: Use C99 array to list color properties namesVittorio Giovara2016-06-13
|
* h264: Fix decoding delay for Intra only streamsAnton Mitrofanov2016-06-12
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavc: add H.264 MVC profilesAnton Khirnov2016-06-12
|
* 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: merge the two reinit blocks in slice_header_parse()Anton Khirnov2016-06-12
| | | | | | | | | The only difference is that the first of them contains a ff_h264_flush_change() call. While that is not necessary in the second block, it should cause no problems either. Reduce the verbosity of the reinit log message from info to verbose, since now it will be displayed during every decode session.
* 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: move calculating the POC out of h264_slice_header_parse()Anton Khirnov2016-06-12
| | | | | | This function does not do any bitstream parsing and it depends on the current frame being allocated, so this will allow the frame_start() to be moved out eventually.
* h264: move building the reference list out of h264_slice_header_parse()Anton Khirnov2016-06-12
| | | | | This does not do any bitstream parsing and will allow moving out other code in later commits.
* h264: move initing the implicit pred weight table out of ↵Anton Khirnov2016-06-12
| | | | | | | h264_slice_header_parse() It depends on the reference list, so this will allow moving out the reference list construction and consequently other code it depends on.
* 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: move initialising the implicit pred weight table for MBAFFAnton Khirnov2016-06-12
| | | | Do it where the normal implicit table is initialised.
* 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: move initialising the explicit pred weight table for MBAFFAnton Khirnov2016-06-12
| | | | | | | Currently it's done in the code that initialises the ref list for MBAFF, which is not a logical place for it. Move it to the function that parses the pred table from the bitstream, which is analogous to what is done for the implicit weight table as well.
* h264: drop an outdated commentAnton Khirnov2016-06-12
|
* h264: move direct mode inits out of h264_slice_header_parse()Anton Khirnov2016-06-12
| | | | | This code does not do any bitstream parsing, it just initializes some internal state.
* h264: start splitting decode_slice_header()Anton Khirnov2016-06-12
| | | | | | | | | That function is currently very long and entangles bitstream parsing and decoder configuration. This makes the code much harder to read than necessary. Begin splitting the code that configures the decoder state based on the slice header information from the parsing of the slice header.
* vaapi_h265: cu_qp_delta should not be used in constant-QP modeMark Thompson2016-06-09
|
* vaapi_h264: Add source version identifier as unregistered SEIMark Thompson2016-06-09
| | | | | Contains the libavcodec version, the VAAPI version and the libva driver vendor string.
* vaapi_h264: Add support for SEI messagesMark Thompson2016-06-09
| | | | | Send buffering_period and pic_timing messages when in modes targetting bitrate. Also adds NAL HRD parameters to VUI.
* vaapi_encode: Add support for writing arbitrary additional packed headersMark Thompson2016-06-09
|