diff options
author | Ronald S. Bultje <rsbultje@gmail.com> | 2013-02-17 14:52:24 -0800 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-02-18 01:21:23 +0100 |
commit | c63f9fb37a7b7da03bed6d79115f7f2e36607808 (patch) | |
tree | f405ac2af54069fd224ea5a06c071a023869efff /libavcodec/h264.h | |
parent | 54b2bddd22fb32a67038848b8d2394bee671b143 (diff) | |
download | ffmpeg-c63f9fb37a7b7da03bed6d79115f7f2e36607808.tar.gz |
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: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/h264.h')
-rw-r--r-- | libavcodec/h264.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h index 024b24a76d..29965e5c88 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -420,6 +420,7 @@ typedef struct H264Context { GetBitContext *intra_gb_ptr; GetBitContext *inter_gb_ptr; + const uint8_t *intra_pcm_ptr; DECLARE_ALIGNED(16, int16_t, mb)[16 * 48 * 2]; ///< as a dct coeffecient is int32_t in high depth, we need to reserve twice the space. DECLARE_ALIGNED(16, int16_t, mb_luma_dc)[3][16 * 2]; int16_t mb_padding[256 * 2]; ///< as mb is addressed by scantable[i] and scantable is uint8_t we can either check that i is not too large or ensure that there is some unused stuff after mb |