summaryrefslogtreecommitdiff
path: root/libavcodec/h264.c
Commit message (Collapse)AuthorAge
* h264: initialize H264Context.avctx in init_thread_copyAnton Khirnov2015-02-21
| | | | | This prevents using a wrong (first thread's) AVCodecContext if decoding a frame in the first pass over all threads fails.
* h264: Do not share rbsp_buffer across threadsMichael Niedermayer2015-01-28
| | | | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org> CC: libav-stable@libav.org
* h264: drop any pretense of support for data partitioningAnton Khirnov2015-01-27
| | | | | | | | | | It does not work correctly and apparently never did. There is no indication that this (mis)feature is ever used in the wild or even that any software other than the reference supports it. Since the code that attempts to support it adds some nontrivial complexity and has resulted in several bugs in the past, it is better to just drop it.
* h264: do not reset the ref lists in flush_change()Anton Khirnov2015-01-27
| | | | | They are always constructed anew when needed, so there is no need to reset them explicitly.
* h264: move parser-only variables to their own contextAnton Khirnov2015-01-27
|
* error_resilience: move the MECmpContext initialization into ER codeAnton Khirnov2015-01-27
| | | | | | | Currently, it needs to be initialized by the ER caller (which is currently either a mpegvideo decoder or h264dec). However, since none of those decoders use MECmpContext for anything except ER, it makes more sense to handle it purely inside ER.
* h264: simplify code in flush_dpb()Anton Khirnov2015-01-27
| | | | | There is no point in clearing reference explicitly, since that will be done as a part of ff_h264_unref_picture() right below.
* h264: restore a block mistakenly removed in e10fd08aAnton Khirnov2014-12-27
| | | | | CC: libav-stable@libav.org Bug-ID: 781
* h264: proper cleanup in ff_h264_alloc_tables() if DPB alloc failsMichael Niedermayer2014-12-03
| | | | CC: libav-devel@libav.org
* h264: Fix memory leak on ff_h264_decode_init() failureDale Curtis2014-12-03
| | | | CC: libav-devel@libav.org
* display: fix order of operandsVittorio Giovara2014-11-13
| | | | | CC: libav-stable@libav.org Bug-Id: CID 1238828 / CID 1238832
* lavc: deprecate the use of AVCodecContext.time_base for decodingAnton Khirnov2014-10-15
| | | | | | | | | | | When decoding, this field holds the inverse of the framerate that can be written in the headers for some codecs. Using a field called 'time_base' for this is very misleading, as there are no timestamps associated with it. Furthermore, this field is used for a very different purpose during encoding. Add a new field, called 'framerate', to replace the use of time_base for decoding.
* h264: reset ret to avoid propagating minor failuresMichael Niedermayer2014-09-29
| | | | | | | | Unbreak 772d150a6e82542c06b0c251e73dd299d98d1027. CC: libav-stable@libav.org Bug-Id: 750 / 905753 Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* cosmetics: Write NULL pointer equality checks more compactlyGabriel Dume2014-08-15
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* h264: fix interpretation of interleved stereo modesFelix Abecassis2014-08-07
| | | | | | Column and row frame packing arrangements were inverted. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* dsputil: Split motion estimation compare bits off into their own contextDiego Biurrun2014-07-17
|
* h264: K&R formatting cosmeticsLuca Barbato2014-07-17
| | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de> Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* h264: parse display orientation SEI messageVittorio Giovara2014-07-09
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* h264: error out from decode_nal_units() when AV_EF_EXPLODE is setVittorio Giovara2014-06-23
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* h264: Refactor decode_nal_unitsLuca Barbato2014-04-06
|
* h264: Split h264 slice decoding from nal decodingLuca Barbato2014-03-23
|
* h264: move macroblock decoding into its own fileVittorio Giovara2014-03-23
|
* h264 does not depend on mpegvideo any moreVittorio Giovara2014-03-16
|
* mpegvideo: move mpegvideo formats-related defines to mpegutils.hVittorio Giovara2014-03-16
|
* h264: Remove MotionEstContext and move the relevant fields to H264ContextVittorio Giovara2014-03-16
| | | | Unused buffers scratchpad and temp have been dropped too.
* h264: Replace mpegvideo-specific MAX_THREADS by private defineVittorio Giovara2014-03-16
|
* h264: Replace mpegvideo-specific MAX_PICTURE_COUNT by private defineVittorio Giovara2014-03-16
|
* h264: move relevant fields from Picture to H264PictureVittorio Giovara2014-03-16
|
* er: move relevant fields from Picture to ERPictureVittorio Giovara2014-03-16
| | | | | | | This is done to disentangle ER from mpegvideo. In order to use a classic Picture, callers can use ff_mpeg_set_erpic() or use a custom function to set the fields. Please note that buffers need to be allocated before calling ff_er_frame_end().
* h264: directly use frames in ff_h264_draw_horiz_band()Vittorio Giovara2014-03-16
|
* Give IDCT matrix transpose macro a more descriptive nameDiego Biurrun2014-02-27
| | | | This also avoids a macro name clash and related warning on ARM.
* h264: Fix a typo from the previous commitLuca Barbato2014-02-22
| | | | | | f777504f640260337974848c7d5d7a3f064bbb45 changed a - in + CC: libav-stable@libav.org
* h264: Lower bound check for slice offsetsVittorio Giovara2014-02-20
| | | | | | | | | | And use the value from the specification. Sample-Id: 00000451-google Found-by: Mateusz j00ru Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* h264: informative error reporting in decode_slice_header()Luca Barbato2014-02-18
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* h264: fix slice_type value reported in decode_slice_header()Luca Barbato2014-02-18
| | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* h264: drop outdated commentsVittorio Giovara2014-02-14
|
* h264: store current_sps_id inside the current spsVittorio Giovara2014-02-14
| | | | In preparation for MVC support.
* h264: print values in case of errorVittorio Giovara2014-02-14
| | | | Also make error style consistent and drop redundant information.
* h264: make context_count unsignedJanne Grunau2014-02-12
| | | | | Removes the bogus but scary looking warning 'libavcodec/h264.c:4529:49: warning: array subscript is below array bounds [-Warray-bounds]'.
* h264: reset data partitioning at the beginning of each decode callAnton Khirnov2014-02-04
| | | | | | | | | Prevents using GetBitContexts with data from previous calls. Fixes access to freed memory. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org
* avutil: remove timer.h include from internal.hJanne Grunau2014-01-25
| | | | Added libavutil/timer.h include to all files with {START,STOP}_TIMER.
* h264: skip chroma edges at the picture boundary while deblocking 4:4:4Janne Grunau2014-01-22
| | | | | | | | | This handles macroblock edges for the chroma components in the same way as for the luma compoment for 4:4:4 streams. The Spec explicitly states that the deblocking filter is not applied to edges at the boundary of the picture. Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* h264: check that an IDR NAL only contains I slicesAnton Khirnov2014-01-18
| | | | | Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org
* h264: reset ref count if decoding the slice header failsAnton Khirnov2014-01-18
| | | | | | | | | Otherwise the ER code might try to use some already freed references. Fixes possible access to freed memory. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org
* h264: do not call field_end if we do not have a current pictureAnton Khirnov2014-01-18
| | | | | | | Fixes invalid reads. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org
* h264: limit allowed pred modes in ff_h264_check_intra_pred_mode() to 3Anton Khirnov2014-01-18
| | | | | | | | | | Higher modes are not allowed for 16x16/chroma, which is what this function is used for. Otherwise this function would return 0 (vertical prediction) for invalid higher modes, which could result in invalid reads. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org
* h264: reset first_field if frame_start() fails for missing refsAnton Khirnov2014-01-18
| | | | | | | | | | In this case we may not have a current frame, while first_field being set implies we do. Fixes invalid reads. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org
* h264: check that execute_decode_slices() is not called too many timesAnton Khirnov2014-01-06
| | | | | | | Fixes invalid reads. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org
* h264: reject mismatching luma/chroma bit depths during sps parsingAnton Khirnov2014-01-06
| | | | | | | | | | There is no point in delaying the check and it avoids bugs with a half-initialized context. Fixes invalid reads. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org
* h264: rebuild the default ref list if the reference count changesAnton Khirnov2014-01-06
| | | | | | | Fixes possible access to freed memory. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org