• Matthew Fearnley's avatar
    libavcodec/zmbvenc: Add support for RGB formats · 03213706
    Matthew Fearnley authored
    This consists mostly of the following changes:
    - add newly supported pixel formats (RGB555LE, RGB565LE, BGR0)
    - select the ZMBV format (c->fmt) and bytes per pixel (c->bypp) based on
      avctx->pix_fmt
    - multiply widths/x-values by c->bypp, in places where bytes, not pixels, are
      expected
    - disable palette-writing code for non-palette pix_fmts
    - make a note about histogram[]'s datatype (it could need increasing if
      ZMBV_BLOCK is increased)
    - adjust the c->score_tab length to take up to (and including) 4 times the
      number of pixels in a block
    - initialise c->score_tab up to c->bypp * the number of pixels
    
    Note: the ZmbvFormat enum allows for additional bit depths:
    - 1,2,4-bit (palette)
    - 24-bit (RGB)
    
    At time of writing the specifics of these (e.g. channel order, bit alignment)
    are not currently defined, and DOSBox only implements support for 8/15/16/32
    bpp.
    One might expect the 24-bit format - if implemented - to be BGR24, to have the
    same channel order as BGR0.
    However, the decoder in zmbv.c has been guessed to use RGB24, so I have chosen
    to not contradict this, and omitted specific support for this format.
    03213706
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
ffbuild Loading commit data...
fftools Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL.md Loading commit data...
LICENSE.md Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
RELEASE Loading commit data...
configure Loading commit data...