libavcodec/zmbvenc: Add support for RGB formats
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.
Showing
Please
register
or
sign in
to comment