Vittorio Giovara
6a85dfc830
lavc: Replace av_dlog and tprintf with internal macros
2015-04-19 12:41:59 +01:00
Anton Khirnov
b53569e068
h264_cabac: remove now unnecessary H264Context function parameters
2015-03-21 11:27:16 +01:00
Anton Khirnov
ba7e165b86
h264_cabac: constify all uses of H264Context
...
All the variables modified by this code are either per-MB arrays or have
been moved to the per-slice context
2015-03-21 11:27:15 +01:00
Anton Khirnov
e9b2383bf8
h264: move mb_mbaff into the per-slice context
2015-03-21 11:27:15 +01:00
Anton Khirnov
bc98e8c0e0
h264: move mb_field_decoding_flag into the per-slice context
2015-03-21 11:27:15 +01:00
Anton Khirnov
d4d9068cdf
h264: move mb_{x,y} into the per-slice context
2015-03-21 11:27:14 +01:00
Anton Khirnov
0edbe6faa7
h264: move mb_xy into the per-slice context
2015-03-21 11:27:14 +01:00
Anton Khirnov
a9b201cacf
h264: move cabac_init_idc into the per-slice context
2015-03-21 11:27:14 +01:00
Anton Khirnov
bd3e460b73
h264: move direct_cache into the per-slice context
2015-03-21 11:27:14 +01:00
Anton Khirnov
6479c79f55
h264: move mvd_cache into the per-slice context
2015-03-21 11:27:14 +01:00
Anton Khirnov
5c8280c307
h264: move last_qscale_diff into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
e7226984ac
h264: move [{top,left}_]cbp into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
30da98adbd
h264: move cabac[_state] into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
bf03a878a7
h264: move mb[_{padding,luma_dc}] into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
b063582e0c
h264: move intra_pcm_ptr into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
95eb35f305
h264: move the ref lists variables into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
ed451a08a4
h264: move sub_mb_type 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
99a35d1ccb
h264: move neighbor_transform_size into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
e6287f077c
h264: move {mv,ref}_cache into the per-slice context
2015-03-21 11:27:13 +01:00
Anton Khirnov
f69574cf7a
h264: move non_zero_count_cache into the per-slice context
2015-03-21 11:27:12 +01:00
Anton Khirnov
64c81b2cd0
h264: move *_samples_available into the per-slice context
2015-03-21 11:27:12 +01:00
Anton Khirnov
7d8154edd5
h264: move intra4x4_pred_mode[_cache] into the per-slice context
2015-03-21 11:27:12 +01:00
Anton Khirnov
8b00f4df20
h264: move some neighbour information into the per-slice context
2015-03-21 11:27:12 +01:00
Anton Khirnov
4bd5ac200d
h264: move {chroma,intra16x16}_pred_mode into the per-slice context
2015-03-21 11:27:12 +01:00
Anton Khirnov
5355ed6b20
h264: move {prev,next}_mb_skipped into the per-slice context
2015-03-21 11:27:12 +01:00
Anton Khirnov
d231e84b06
h264: move the quantizers into the per-slice context
2015-03-21 11:27:12 +01:00
Michael Niedermayer
def69553e7
h264_cabac: Break infinite loops
...
This fixes out of array reads and/or infinite loops.
30 is the maximum number of bits that can be read into
coeff_abs below.
CC: libav-stable@libav.org
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Martin Storsjö <martin@martin.st>
2015-01-15 10:17:01 +02:00
Vittorio Giovara
277ff7f5dc
lavu: move internal define to the only places where it is used
2014-11-24 01:30:14 +00:00
Michael Niedermayer
4cb9f1a774
h264_cabac: fix one fill_rectangle() indentation level
...
Bug-Id: CID 1087088
2014-11-11 11:49:54 +01:00
Diego Biurrun
2143948381
Drop unnecessary av_unused attributes.
2014-09-05 13:55:04 +02:00
Vittorio Giovara
e0c16e4e32
mpegvideo: move mpegvideo formats-related defines to mpegutils.h
2014-03-16 23:04:41 +01:00
Janne Grunau
fb0c9d41d6
avutil: remove timer.h include from internal.h
...
Added libavutil/timer.h include to all files with {START,STOP}_TIMER.
2014-01-25 21:50:20 +01:00
Diego Biurrun
ff9d57e7df
h264_cabac: Mark functions calling decode_cabac_residual_internal as noinline
...
This ensures that decode_cabac_residual_internal actually does get inlined,
which it otherwise does not, even though it is marked as always_inline.
2013-08-24 16:14:15 +02:00
Diego Biurrun
2a61592573
avcodec: Remove some commented-out debug cruft
2013-08-20 19:59:50 +02:00
Anton Khirnov
23e85be58f
h264: add a parameter to the CHROMA444 macro.
...
This way it does not look like a constant.
2013-03-21 10:21:02 +01:00
Anton Khirnov
e962bd08ee
h264: add a parameter to the CHROMA422 macro.
...
This way it does not look like a constant.
2013-03-21 10:20:58 +01:00
Anton Khirnov
6d2b6f21eb
h264: add a parameter to the CABAC macro.
...
This way it does not look like a constant.
2013-03-21 10:20:52 +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
Anton Khirnov
7bece9b22f
h264: add a parameter to the FRAME_MBAFF macro.
...
This way it does not look like a constant.
2013-03-21 10:20:39 +01:00
Anton Khirnov
da6be8fcec
h264: add a parameter to the MB_FIELD macro.
...
This way it does not look like a constant.
2013-03-21 10:20:35 +01:00
Anton Khirnov
82313eaa34
h264: add a parameter to the MB_MBAFF macro.
...
This way it does not look like a constant.
2013-03-21 10:20:30 +01:00
Anton Khirnov
759001c534
lavc decoders: work with refcounted frames.
2013-03-08 07:38:30 +01:00
Diego Biurrun
c242bbd8b6
Remove unnecessary dsputil.h #includes
2013-02-26 00:51:34 +01:00
Ronald S. Bultje
7ebfb466ae
h264: Don't store intra pcm samples in h->mb
...
Instead, keep them in the bitstream buffer until we read them verbatim,
this saves a memcpy() and a subsequent clearing of the target buffer.
decode_cabac+decode_mb for a sample file (CAPM3_Sony_D.jsv) goes from
6121.4 to 6095.5 cycles, i.e. 26 cycles faster.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-02-19 22:34:14 +02:00
Anton Khirnov
2c54155407
h264: deMpegEncContextize
...
Most of the changes are just trivial are just trivial replacements of
fields from MpegEncContext with equivalent fields in H264Context.
Everything in h264* other than h264.c are those trivial changes.
The nontrivial parts are:
1) extracting a simplified version of the frame management code from
mpegvideo.c. We don't need last/next_picture anymore, since h264 uses
its own more complex system already and those were set only to appease
the mpegvideo parts.
2) some tables that need to be allocated/freed in appropriate places.
3) hwaccels -- mostly trivial replacements.
for dxva, the draw_horiz_band() call is moved from
ff_dxva2_common_end_frame() to per-codec end_frame() callbacks,
because it's now different for h264 and MpegEncContext-based
decoders.
4) svq3 -- it does not use h264 complex reference system, so I just
added some very simplistic frame management instead and dropped the
use of ff_h264_frame_start(). Because of this I also had to move some
initialization code to svq3.
Additional fixes for chroma format and bit depth changes by
Janne Grunau <janne-libav@jannau.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-02-15 16:35:16 +01:00
Diego Biurrun
88bd7fdc82
Drop DCTELEM typedef
...
It does not help as an abstraction and adds dsputil dependencies.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2013-01-22 18:32:56 -08:00
Ronald S. Bultje
f6f7d15041
h264: don't touch H264Context->ref_count[] during MB decoding
...
The variable is copied to subsequent threads at the same time, so this
may cause wrong ref_count[] values to be copied to subsequent threads.
This bug was found using TSAN.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-10-05 02:49:45 +02:00
Diego Biurrun
1218777ffd
avcodec: Convert some commented-out printf/av_log instances to av_dlog
2012-10-01 10:24:28 +02:00
Diego Biurrun
6f6b0311a3
avcodec: Drop some silly commented-out av_log() invocations
2012-10-01 10:24:28 +02:00