Anton Khirnov
ad786dd450
h264: remove a now redundant error check
...
It was only relevant when data partitioning was in use.
10 years ago
Michael Niedermayer
b37c3396cd
avcodec/h264: Add ff_ prefix to the shared h264_init_dequant_tables() function
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
c23a0e77dd
avcodec/h264: Only reinit quant tables if a new PPS is allowed
...
Fixes null pointer dereference
Fixes: signal_sigsegv_3042097_3007_cov_1741463594_non_monotone_timestamps1.mkv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Anton Khirnov
0dea4c77cc
h264: only ref cur_pic in update_thread_context if it is initialized
...
It may be empty if the previous thread's decode call did not contain a
valid frame.
10 years ago
Peter Meerwald
9abc80f1ed
libavcodec: Make use of av_clip functions
...
Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
10 years ago
Michael Niedermayer
de6df46120
avcodec/h264: Setup decoder to have matching reference to the EC code
...
Also move EC ref initialization to where the EC code is called.
Fixes out of array read
Fixes: asan_heap-uaf_143f420_142_20110805_112659_ch0.mkv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
2fd9ce92af
avcodec/h264_slice: assert that reinit does not occur after the first slice
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
38d5241b7f
avcodec/h264_slice: ignore SAR changes in slices after the first
...
Fixes race condition and null pointer dereference
Fixes: signal_sigsegv_1472ac3_468_cov_2915641226_CABACI3_Sony_B.jsv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
f111831ed6
avcodec/h264_slice: Check picture structure before setting the related fields
...
This might fix a hypothetical race condition
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
f906982c94
avcodec/h264_slice: Do not change frame_num after the first slice
...
Fixes potential race condition
Fixes: signal_sigsegv_1472ac3_468_cov_2915641226_CABACI3_Sony_B.jsv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
6fafc62b0b
avcodec/h264: Be more strict on rejecting pps/sps changes
...
Fixes race condition
Fixes: signal_sigsegv_1472ac3_468_cov_2915641226_CABACI3_Sony_B.jsv
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Anton Khirnov
167e004e1a
h264: drop any pretense of support for data partitioning
...
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.
10 years ago
Anton Khirnov
cf1e0786ed
error_resilience: move the MECmpContext initialization into ER code
...
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.
10 years ago
Michael Niedermayer
ecd39520b8
avcodec/h264: Partially decode and display single fields try #2
...
This like the previous attempt does not fully correctly decode this
type of non standard H.264, but it now works fully automatic
requiring no manual filters or flags to be used
See Ticket2254
Reviewed-by: Kieran Kunhya <kierank@obe.tv>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
wm4
e0e33ebe6b
h264: unref leaking error recovery picture
...
This leaked a frame on each avcodec_flush_buffers() call, if frame
threading was enabled. It caused severe memory usage in player if you
were seeking a lot.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
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>
10 years ago
Rémi Denis-Courmont
ebd5320afd
vdpau: add support for 4:2:2 and 4:4:4 chroma sampling
...
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
10 years ago
Rémi Denis-Courmont
4cfbeef31d
h264: factor hwaccel pixel formats list
...
This is to avoid proliferation of similar tables in following changes.
Signed-off-by: Rémi Denis-Courmont <remi@remlab.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
10 years ago
Vittorio Giovara
d75190aa93
mpegvideo: move REBASE_PICTURE where it is used
...
Drop an unused #undef from h264 decoder.
10 years ago
Michael Niedermayer
547fce9585
avcodec/h264_slice: Clear table pointers to avoid stale pointers
...
Might fix Ticket3889
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Michael Niedermayer
09450c5509
avcodec/h264: fix time_base and framerate
...
They are not just inverses of each other.
This should restore behavior to before the introduction of framerate
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
10 years ago
Anton Khirnov
7ea1b3472a
lavc: deprecate the use of AVCodecContext.time_base for decoding
...
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.
10 years ago
Rémi Denis-Courmont
ce42316321
h264: Always invoke the get_format() callback
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
10 years ago
Vittorio Giovara
e87f5e4e5f
h264: fully check cropping amount from sps
...
Even if sps.crop is true, the cropping amount may be zero.
Fixes a sample with a valid but broken container cropping.
11 years ago
Carl Eugen Hoyos
cc0acdbd68
lavc/h264_slice: Add a missing newline to an error message.
11 years ago
Michael Niedermayer
1fa35e4352
avcodec/h264_slice: More complete cleanup in h264_slice_header_init()
...
Fixes null pointer dereference
Fixes Ticket3873
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago
Diego Biurrun
835f798c7d
mpegvideo: cosmetics: Lowercase ugly uppercase MPV_ function name prefixes
11 years ago
Diego Biurrun
2d60444331
dsputil: Split motion estimation compare bits off into their own context
11 years ago
Luca Barbato
2db953f846
h264: K&R formatting cosmetics
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
11 years ago
Justin Ruggles
9e500efdbe
Add av_image_check_sar() and use it to validate SAR
11 years ago
Stefano Sabatini
d381109ce8
lavc/h264_slice: clarify informational message in case of disabled slice multi-threaded decoding
...
Also suggest what can be done to workaround the limitation.
11 years ago
Michael Niedermayer
5bf5e6b1c0
avcodec/h264: Use named identifier for single thread fall-back return from ff_h264_decode_slice_header()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago
Michael Niedermayer
7eae8cd870
avcodec/h264: fix frame skip code
...
Fixes Ticket3475
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago
Michael Niedermayer
9025072e6c
avcodec/h264_slice: support skipping loop filtering for non key frames
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago
Michael Niedermayer
9140d37af2
avcodec/h264: use the correct level for droping non intra frames
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago
Michael Niedermayer
0f45e643cc
avcodec/h264_slice: fix macro ()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago
Anton Khirnov
67afcefb35
lavc: Add new VDA hwaccel
...
It leverages the new hwaccel 1.2 features:
- get_buffer2 is never called
- the internal context is automatically initialized/deinitialized
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
11 years ago
Anton Khirnov
a871ef0cc9
hwaccel: Rename priv_data_size to frame_priv_data_size
...
This describes more accurately what this field is for.
11 years ago
Anton Khirnov
5c1d7246cd
lavc: set AVCodecContext.hwaccel in ff_get_format()
...
This way each decoder does not have to do the same thing manually.
11 years ago
Anton Khirnov
632ad2248e
lavc: Add an internal wrapper around get_format()
...
It will be useful in the following commits.
11 years ago
Michael Niedermayer
7ef01a7878
avcodec/h264: mark recovery_cnt==0 frames as keyframes
...
Fixes Ticket3063
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago
Anton Khirnov
9d76dd952f
h264: drop commented out cruft
11 years ago
Carl Eugen Hoyos
ced0d6c14d
Use correct msvc type specifiers for ptrdiff_t and size_t.
...
The Windows runtime aborts if it finds %t or %z.
Fixes ticket #3472 .
Reviewed-by: Ronald Bultje
11 years ago
Janne Grunau
34c5a6660a
h264: codec reinit: remove statements without effect
...
avctx->coded_{height,width} will always equal h->{height,width} since
init_dimensions() does that explicitly, Size changes are detected by
changes in mb_{height,width} earlier and propagated through the
needs_reinit variable.
11 years ago
Michael Niedermayer
8710ee11d7
avcodec/h264: clear cur_pic structure instead of duplicating it in ff_h264_update_thread_context()
...
Fixes crash
Found-by: iive
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago
Michael Niedermayer
bce2abc936
avcodec/h264: use ff_h264_set_erpic() instead of memset
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago
Luca Barbato
f51d0f39c0
h264: Split h264 slice decoding from nal decoding
11 years ago
Vittorio Giovara
e9a77f4bc0
h264: move macroblock decoding into its own file
11 years ago
Yogender Kumar Gupta
6f7ca1f55b
avcodec/h264: fix Lossless Decoding (Profile 244) for 8x8 Intra Prediction
...
This is limited to the case where x264_build = -1, to not break x264 decoding
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago
Michael Niedermayer
6102dda1d7
avcodec/h264: h264_set_erpic() clear destination
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11 years ago