[FFmpeg-devel,0/7] Port cache bitstream reader to 32bits, and improve

Message ID 20200414102503.7858-1-christophe.gisquet@gmail.com
Headers show


Christophe Gisquet April 14, 2020, 10:24 a.m. UTC
This patch series gathers all changes affecting the cached reader and
the file get_bits.h.
The largest consists in modifying the cached reader so that the cache
can be selected to be (native) 32 bits large. Then, due to some corner
cases from various codecs, reducing some reads or fixing functions that
can not guarantee the usual number of bits, are needed.

Note: the MVHA sample was generated using the pattern generation from
VirtualDub2 (Tools->Create test video->zone plates) and the MVHA codec,
and is 235186 bytes.

Christophe Gisquet (7):
  fate: add a MVHA test
  get_bits: support 32bits cache
  get_xbits: request fewer bits
  get_bits: replace index by an incremented pointer
  get_bits: improve and fix get_bits_long for 32b
  get_bits: change refill to RAD pattern
  get_bits: use immediate in skip_remaining

 libavcodec/get_bits.h   | 193 +++++++++++++++++++++++++++-------------
 libavcodec/mvha.c       |   2 +-
 libavcodec/utvideodec.c |   2 +-
 tests/fate/video.mak    |   3 +
 tests/ref/fate/mvha     |   6 ++
 5 files changed, 143 insertions(+), 63 deletions(-)
 create mode 100644 tests/ref/fate/mvha