Greetings,
I'd like to introduce a new bitstream reader I wrote. The advantages of the new 
bitreader are:
 * it is easier to use:
 for example there is just one function to read 0-32 bits instead of
 3 of them in the get_bits.h
 * it is more consistent and easier to follow (macros are not needed anymore)
 * it is better documented
 * it is faster for some decoders (no speed loss when not faster)
 * it could be made a public header.

This work has been sponsored by Luminem.it and it follows the ideas suggested 
by Niels Möller in his email from
the time when he was working on DCA XLL extention 
(https://www.mail-archive.com/libav-devel%40libav.org/msg57746.html).

This patchset does some preparation, adds the new bitreader and converts a few 
decoders to use it. The following patchets
will subsequently convert all remaning decoders and demuxers that uses 
get_bits.h to the new bitreader and original get_bits.h
will be removed in the end of the last patchset.


Alexandra Hájková (12):
  remove unnecessary get_bits.h and add missing headers where needed
  attributes: add av_unlikely macro
  move VLC and RL_VLC_ELEM structures definition from get_bits.h
  add the new bitstream reader
  cllc: convert to the new bitstream reader
  rl: use vlc.h directly instead of including get_bits.h
  bitstream.c: use vlc.h header instead of get_bits.h
  huffman: include vlc.h instead of get_bits.h
  eamad: convert to the new bitstream reader
  dnxhd: convert to the new bitstream reader
  mdec, eatqi, mpeg12: convert to the new bitstream reader
  mpeg12dec: convert to the new bitstream reader

 libavcodec/adpcmenc.c        |   1 -
 libavcodec/bitstream.c       |   2 +-
 libavcodec/bitstream.h       | 475 +++++++++++++++++++++++++++++++++++++++++++
 libavcodec/cabac.c           |   1 -
 libavcodec/cllc.c            |  63 +++---
 libavcodec/dnxhddec.c        |  39 ++--
 libavcodec/eamad.c           |  42 ++--
 libavcodec/eatqi.c           |   8 +-
 libavcodec/ffv1enc.c         |   1 -
 libavcodec/get_bits.h        |  42 +---
 libavcodec/huffman.c         |   4 +-
 libavcodec/huffman.h         |   2 +-
 libavcodec/iff.c             |   1 -
 libavcodec/mdec.c            |  32 ++-
 libavcodec/mpeg12.c          |  28 +--
 libavcodec/mpeg12.h          |  11 +-
 libavcodec/mpeg12dec.c       | 414 +++++++++++++++++--------------------
 libavcodec/mpeg12vlc.h       |   2 +-
 libavcodec/mpegvideo.h       |   3 +
 libavcodec/rl.c              |   1 +
 libavcodec/rl.h              |   2 +-
 libavcodec/vlc.h             |  62 ++++++
 libavcodec/yop.c             |   4 +-
 libavformat/mpc.c            |   1 -
 libavformat/oggparseogm.c    |   1 -
 libavformat/oggparsespeex.c  |   1 -
 libavformat/oggparsevorbis.c |   1 -
 libavformat/tta.c            |   2 +-
 libavutil/attributes.h       |   6 +
 29 files changed, 835 insertions(+), 417 deletions(-)
 create mode 100644 libavcodec/bitstream.h
 create mode 100644 libavcodec/vlc.h

-- 
2.1.4

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to