From 3ad8a81af639f34947a70a67233e83ca5779ee57 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Tue, 24 Mar 2009 15:19:50 -0500 Subject: [PATCH] Use RGB555LE/RGB565LE pixfmts instead of byte swapping in bmpenc --- libavcodec/bmpenc.c | 15 ++++----------- 1 files changed, 4 insertions(+), 11 deletions(-) diff --git a/libavcodec/bmpenc.c b/libavcodec/bmpenc.c index 578813a..02c10ff 100644 --- a/libavcodec/bmpenc.c +++ b/libavcodec/bmpenc.c @@ -52,10 +52,10 @@ static int bmp_encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_s case PIX_FMT_BGR24: bit_count = 24; break; - case PIX_FMT_RGB555: + case PIX_FMT_RGB555LE: bit_count = 16; break; - case PIX_FMT_RGB565: + case PIX_FMT_RGB565LE: bit_count = 16; compression = BMP_BITFIELDS; pal = rgb565_masks; // abuse pal to hold color masks @@ -115,14 +115,7 @@ static int bmp_encode_frame(AVCodecContext *avctx, unsigned char *buf, int buf_s ptr = p->data[0] + (avctx->height - 1) * p->linesize[0]; buf = buf0 + hsize; for(i = 0; i < avctx->height; i++) { - if (bit_count == 16) { - const uint16_t *src = (const uint16_t *) ptr; - uint16_t *dst = (uint16_t *) buf; - for(n = 0; n < avctx->width; n++) - AV_WL16(dst + n, src[n]); - } else { - memcpy(buf, ptr, n_bytes_per_row); - } + memcpy(buf, ptr, n_bytes_per_row); buf += n_bytes_per_row; memset(buf, 0, pad_bytes_per_row); buf += pad_bytes_per_row; @@ -141,7 +134,7 @@ AVCodec bmp_encoder = { NULL, //encode_end, .pix_fmts = (enum PixelFormat[]){ PIX_FMT_BGR24, - PIX_FMT_RGB555, PIX_FMT_RGB565, + PIX_FMT_RGB555LE, PIX_FMT_RGB565LE, 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}, -- 1.6.2