mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-27 05:00:37 +00:00
bmpenc: support for PIX_FMT_RGB444
This commit is contained in:
parent
a6839c4e60
commit
047a28f759
@ -28,6 +28,7 @@
|
||||
|
||||
static const uint32_t monoblack_pal[] = { 0x000000, 0xFFFFFF };
|
||||
static const uint32_t rgb565_masks[] = { 0xF800, 0x07E0, 0x001F };
|
||||
static const uint32_t rgb444_masks[] = { 0x0F00, 0x00F0, 0x000F };
|
||||
|
||||
static av_cold int bmp_encode_init(AVCodecContext *avctx){
|
||||
BMPContext *s = avctx->priv_data;
|
||||
@ -40,9 +41,8 @@ static av_cold int bmp_encode_init(AVCodecContext *avctx){
|
||||
avctx->bits_per_coded_sample = 24;
|
||||
break;
|
||||
case PIX_FMT_RGB555:
|
||||
avctx->bits_per_coded_sample = 16;
|
||||
break;
|
||||
case PIX_FMT_RGB565:
|
||||
case PIX_FMT_RGB444:
|
||||
avctx->bits_per_coded_sample = 16;
|
||||
break;
|
||||
case PIX_FMT_RGB8:
|
||||
@ -79,6 +79,11 @@ static int bmp_encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_s
|
||||
p->pict_type= AV_PICTURE_TYPE_I;
|
||||
p->key_frame= 1;
|
||||
switch (avctx->pix_fmt) {
|
||||
case PIX_FMT_RGB444:
|
||||
compression = BMP_BITFIELDS;
|
||||
pal = rgb444_masks; // abuse pal to hold color masks
|
||||
pal_entries = 3;
|
||||
break;
|
||||
case PIX_FMT_RGB565:
|
||||
compression = BMP_BITFIELDS;
|
||||
pal = rgb565_masks; // abuse pal to hold color masks
|
||||
@ -163,7 +168,7 @@ AVCodec ff_bmp_encoder = {
|
||||
.encode = bmp_encode_frame,
|
||||
.pix_fmts = (const enum PixelFormat[]){
|
||||
PIX_FMT_BGR24,
|
||||
PIX_FMT_RGB555, PIX_FMT_RGB565,
|
||||
PIX_FMT_RGB555, PIX_FMT_RGB444, PIX_FMT_RGB565,
|
||||
PIX_FMT_RGB8, PIX_FMT_BGR8, PIX_FMT_RGB4_BYTE, PIX_FMT_BGR4_BYTE, PIX_FMT_GRAY8, PIX_FMT_PAL8,
|
||||
PIX_FMT_MONOBLACK,
|
||||
PIX_FMT_NONE},
|
||||
|
Loading…
Reference in New Issue
Block a user