Anton Khirnov
95eb35f305
h264: move the ref lists variables into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
56febc993b
h264: move the slice type variables into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
92c6c2a605
h264: split weighted pred-related vars into per-slice context
2015-03-21 11:27:09 +01:00
Michael Niedermayer
ecfd48dc06
avcodec/h264: Move COPY_PICTURE() to h264.h so it can be used from other parts of the h264 decoder
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-08 02:27:27 +01:00
Michael Niedermayer
e09ad5bd0d
avcodec/h264_refs: set last_pic_for_ec only if it has not been set previously
...
This ensures we do not loose the frame in case or multiple clears
Fixes out of array read
Fixes: asan_heap-oob_2fa47ea_2100_cov_1278768963_ff_add_pixels_clamped_mmx.m2ts
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-05 14:57:42 +01:00
Michael Niedermayer
855463c007
avcodec/h264: Keep a reference to the last picture for EC
...
This and the next commit improve error concealment for
green-block-artifacts-from-canon-100-hs.MOV
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-01-11 17:30:02 +01:00
Michael Niedermayer
60dbed6067
Merge commit '4b1f5e5090abed6c618c8ba380cd7d28d140f867'
...
* commit '4b1f5e5090abed6c618c8ba380cd7d28d140f867':
cosmetics: Write NULL pointer inequality checks more compactly
Conflicts:
libavcodec/dvdsubdec.c
libavcodec/h263dec.c
libavcodec/libxvid.c
libavcodec/rv10.c
libavcodec/utils.c
libavformat/format.c
libavformat/matroskadec.c
libavformat/segment.c
libavutil/opt.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 21:26:12 +02:00
Michael Niedermayer
fb33bff990
Merge commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39'
...
* commit 'f929ab0569ff31ed5a59b0b0adb7ce09df3fca39':
cosmetics: Write NULL pointer equality checks more compactly
Conflicts:
cmdutils.c
ffmpeg_opt.c
ffplay.c
libavcodec/dvbsub.c
libavcodec/dvdsubdec.c
libavcodec/dvdsubenc.c
libavcodec/dxa.c
libavcodec/libxvid_rc.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/rv10.c
libavcodec/tiffenc.c
libavcodec/utils.c
libavcodec/vc1dec.c
libavcodec/zmbv.c
libavdevice/v4l2.c
libavformat/matroskadec.c
libavformat/movenc.c
libavformat/sdp.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-15 21:00:50 +02:00
Gabriel Dume
4b1f5e5090
cosmetics: Write NULL pointer inequality checks more compactly
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-15 05:34:13 -07:00
Gabriel Dume
f929ab0569
cosmetics: Write NULL pointer equality checks more compactly
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-08-15 03:18:18 -07:00
Michael Niedermayer
19c9d1e8e7
avcodec/h264: in the absence of recovery points, be more tolerant on accepting plain I frames
...
Fixes: Ticket3652
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-04 04:25:14 +02:00
Michael Niedermayer
45ba9d8545
Merge commit 'cba4e6062a02d5bf684e13a770be88aa1fec717e'
...
* commit 'cba4e6062a02d5bf684e13a770be88aa1fec717e':
More correct printf format specifiers
Conflicts:
libavcodec/h264_ps.c
libavcodec/h264_refs.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 02:54:09 +02:00
Diego Biurrun
cba4e6062a
More correct printf format specifiers
...
This avoids compiler warnings about argument and specifier type mismatch.
2014-04-02 00:27:22 +02:00
Michael Niedermayer
9517900bef
Merge commit 'e0c16e4e3259cf50b5bac4c23bb6e517f397c74b'
...
* commit 'e0c16e4e3259cf50b5bac4c23bb6e517f397c74b':
mpegvideo: move mpegvideo formats-related defines to mpegutils.h
Conflicts:
libavcodec/h264_cabac.c
libavcodec/h264_cavlc.c
libavcodec/h264_mvpred.h
libavcodec/svq1enc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 12:36:48 +01:00
Michael Niedermayer
c237e88d51
Merge commit '9b749c8274f6b6f35dde2cf29b99fa4f719abf87'
...
* commit '9b749c8274f6b6f35dde2cf29b99fa4f719abf87':
h264: move relevant fields from Picture to H264Picture
Conflicts:
libavcodec/h264.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-17 05:51:27 +01:00
Vittorio Giovara
e0c16e4e32
mpegvideo: move mpegvideo formats-related defines to mpegutils.h
2014-03-16 23:04:41 +01:00
Vittorio Giovara
9b749c8274
h264: move relevant fields from Picture to H264Picture
2014-03-16 23:01:00 +01:00
Michael Niedermayer
5aab33dea3
Merge commit 'f4bd9fe326ad1315a74206939ae56df93b940a09'
...
* commit 'f4bd9fe326ad1315a74206939ae56df93b940a09':
h264: fix clang warning about uninitialized variable
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 05:03:59 +01:00
Michael Niedermayer
153b870d1e
Merge commit '17a63ff0cd187b9e50e4a47862750295976853b1'
...
* commit '17a63ff0cd187b9e50e4a47862750295976853b1':
h264: update flag name in ff_h264_decode_ref_pic_list_reordering()
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 05:02:58 +01:00
Vittorio Giovara
f4bd9fe326
h264: fix clang warning about uninitialized variable
2014-02-28 18:15:15 +01:00
Vittorio Giovara
17a63ff0cd
h264: update flag name in ff_h264_decode_ref_pic_list_reordering()
...
This is the name used in the specifications.
2014-02-28 18:14:34 +01:00
Michael Niedermayer
649686d89b
avcodec/h264_refs: remove lost frames instead of disfavoring them
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 11:16:23 +01:00
Michael Niedermayer
b5005def8a
avcodec/h264: avoid using lost frames as references
...
Fixes Ticket3386
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-27 03:26:03 +01:00
Michael Niedermayer
5cbd7ce016
Merge commit 'f8c507f44b4c994895fc7ad954f009f61de69b1c'
...
* commit 'f8c507f44b4c994895fc7ad954f009f61de69b1c':
h264: Refactor ff_h264_decode_ref_pic_list_reordering
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-14 13:24:30 +01:00
Luca Barbato
f8c507f44b
h264: Refactor ff_h264_decode_ref_pic_list_reordering
...
In preparation for MVC support.
2014-02-13 23:34:50 +01:00
Michael Niedermayer
59fb3c4be8
Merge commit '98cc9efc5f6b4dc847ed3b9b60b1c3bcd14e6791'
...
* commit '98cc9efc5f6b4dc847ed3b9b60b1c3bcd14e6791':
h264: prevent two matching fields from being both a short/long ref combination
See: 92002db3eb437414281ad4fb6e84e34862f7fc92
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-18 22:41:49 +01:00
Anton Khirnov
98cc9efc5f
h264: prevent two matching fields from being both a short/long ref combination
...
Fixes possible access to freed memory.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:42:39 +01:00
Michael Niedermayer
e3d7a3978b
avcodec/h264_refs: improve key frame detection heuristic
...
Fixes Ticket3186
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 02:36:58 +01:00
Michael Niedermayer
ab6ea7a819
avcodec/h264_refs: split conditions of if() up for better readability
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-12-02 02:12:39 +01:00
Michael Niedermayer
0a5ca63c24
Merge commit '4d388c0cd05dd4de545e8ea333ab4de7d67ad12d'
...
* commit '4d388c0cd05dd4de545e8ea333ab4de7d67ad12d':
h264_refs: make sure not to write over the bounds of the default ref list
Conflicts:
libavcodec/h264_refs.c
This condition should be impossible and was checked for by asserts.
the asserts are moved up in this merge to gurantee that no out of array
access can happen even if the state is "impossible".
Also if such impossible states could somehow be created, that should
be dealt with and not silently ignored.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-28 10:45:53 +01:00
Anton Khirnov
4d388c0cd0
h264_refs: make sure not to write over the bounds of the default ref list
...
Fixes invalid writes.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2013-11-27 22:24:40 +01:00
Michael Niedermayer
56e122787e
Merge commit 'a553c6a347d3d28d7ee44c3df3d5c4ee780dba23'
...
* commit 'a553c6a347d3d28d7ee44c3df3d5c4ee780dba23':
lavc: use buf[0] instead of data[0] in checks whether a frame is allocated
Conflicts:
libavcodec/h264_refs.c
libavcodec/mpegvideo.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 03:56:53 +01:00
Anton Khirnov
a553c6a347
lavc: use buf[0] instead of data[0] in checks whether a frame is allocated
...
data[0] may be NULL for valid frames with hwaccel pixel formats.
2013-11-18 18:09:48 +01:00
Michael Niedermayer
8183e33225
h264_refs: use named constant for setting frame_recovered
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-02 09:31:12 +01:00
Michael Niedermayer
78265fcfee
Merge commit '28096e0a806e57376541e6222d315619906e3c55'
...
* commit '28096e0a806e57376541e6222d315619906e3c55':
h264: wait for initial complete frame before outputing frames
Conflicts:
doc/APIchanges
libavcodec/h264.c
libavcodec/mpegvideo.h
libavutil/frame.h
libavutil/version.h
See: a64b028aeb6579636e578ceb73f69b468bddb2f0 (as well as various later commits)
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-01 12:59:08 +01:00
Michael Niedermayer
08a8976196
avcodec/h264: reduce noisiness of "mmco: unref short failure"
...
Do not consider it an error if we have no frames and should discard one.
This condition can easily happen when decoding is started from an I frame
Fixes Ticket2811
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-25 20:03:29 +02:00
Michael Niedermayer
5ac6b6028f
avcodec/h264_refs: modify key frame detection heuristic to detect more cases
...
Fixes Ticket2968
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-10 00:07:26 +02:00
Michael Niedermayer
58e12732db
Merge commit '2a61592573d725956a4377641344afe263382648'
...
* commit '2a61592573d725956a4377641344afe263382648':
avcodec: Remove some commented-out debug cruft
Conflicts:
libavcodec/h264_cabac.c
libavcodec/h264_cavlc.c
libavcodec/h264_loopfilter.c
libavcodec/h264_mvpred.h
libavcodec/mjpegdec.c
libavcodec/mjpegenc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-08-21 11:18:43 +02:00
Diego Biurrun
2a61592573
avcodec: Remove some commented-out debug cruft
2013-08-20 19:59:50 +02:00
Michael Niedermayer
c40f51e15b
h264: Always decode MMCOs into temprary array
...
When decoding succeeded the array is copied into the permanent one.
This prevents inconsistencies
Fixes assertion failure
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-04 20:23:05 +02:00
Michael Niedermayer
65af5e815a
Merge commit '1b6f84a98665a15130e969fd6b460a05d50090c1'
...
* commit '1b6f84a98665a15130e969fd6b460a05d50090c1':
h264_refs: Do not print check_opcodes() return value
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-04-28 13:40:47 +02:00
Diego Biurrun
1b6f84a986
h264_refs: Do not print check_opcodes() return value
...
The return value provides no useful information and removing the printing
avoids the following warning:
libavcodec/h264_refs.c:788:15: warning: 'i' may be used uninitialized in this function [-Wuninitialized]
2013-04-27 19:13:45 +02:00
Michael Niedermayer
34ea5f418e
h264_refs: check for multiple mismatching long term ref assignments
...
Fixes failure of the assert added a few hours ago.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-31 00:18:23 +01:00
Michael Niedermayer
3f2ce24f59
h264_refs: assert that the references are not deallocated
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-30 20:28:00 +01:00
Michael Niedermayer
fbb6741a84
h264_refs: assert that long ref fields have not been inserted multiple times
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-30 20:28:00 +01:00
Michael Niedermayer
92002db3eb
h264_refs: Check for attempts to assign pictures to short & long.
...
Fixes null pointer dereference
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-28 21:09:47 +01:00
Michael Niedermayer
bf4d0f8328
Merge commit '7fa00653a550c0d24b3951c0f9fed6350ecf5ce4'
...
* commit '7fa00653a550c0d24b3951c0f9fed6350ecf5ce4':
h264: add a parameter to the FIELD_PICTURE macro.
h264: add a parameter to the FRAME_MBAFF macro.
Conflicts:
libavcodec/h264.c
libavcodec/h264_loopfilter.c
libavcodec/h264_refs.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-21 12:50:18 +01:00
Anton Khirnov
7fa00653a5
h264: add a parameter to the FIELD_PICTURE macro.
...
This way it does not look like a constant.
2013-03-21 10:20:44 +01:00
Michael Niedermayer
fa7031ad37
h264_refs: fix typo in refs fallback check
...
Fixes regression since 01a0283
Fixes Ticket2371
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-17 14:21:46 +01:00
Michael Niedermayer
87d263a122
Merge commit 'c2597c5a0a08526493abb9bc9544b61a290fe20f'
...
* commit 'c2597c5a0a08526493abb9bc9544b61a290fe20f':
h264_refs: cosmetics, reformat
Conflicts:
libavcodec/h264_refs.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-13 13:28:29 +01:00