From b4634a006cbff0408ce6fec0850b325eb9c51986 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Thu, 19 Jan 2012 23:02:27 +0100 Subject: [PATCH] Simplify targa decoding on big endian. --- libavcodec/targa.c | 22 +++++----------------- libavcodec/version.h | 2 +- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/libavcodec/targa.c b/libavcodec/targa.c index 57a4fee22b..b1bcb97e04 100644 --- a/libavcodec/targa.c +++ b/libavcodec/targa.c @@ -70,7 +70,7 @@ static int targa_decode_rle(AVCodecContext *avctx, TargaContext *s, const uint8_ *dst = *src; break; case 2: - *((uint16_t*)dst) = AV_RL16(src); + AV_WN16A(dst, AV_RN16A(src)); break; case 3: dst[0] = src[0]; @@ -78,7 +78,7 @@ static int targa_decode_rle(AVCodecContext *avctx, TargaContext *s, const uint8_ dst[2] = src[2]; break; case 4: - *((uint32_t*)dst) = AV_RL32(src); + AV_WN32A(dst, AV_RN32A(src)); break; } dst += depth; @@ -142,16 +142,16 @@ static int decode_frame(AVCodecContext *avctx, avctx->pix_fmt = ((compr & (~TGA_RLE)) == TGA_BW) ? PIX_FMT_GRAY8 : PIX_FMT_PAL8; break; case 15: - avctx->pix_fmt = PIX_FMT_RGB555; + avctx->pix_fmt = PIX_FMT_RGB555LE; break; case 16: - avctx->pix_fmt = PIX_FMT_RGB555; + avctx->pix_fmt = PIX_FMT_RGB555LE; break; case 24: avctx->pix_fmt = PIX_FMT_BGR24; break; case 32: - avctx->pix_fmt = PIX_FMT_RGB32; + avctx->pix_fmt = PIX_FMT_BGRA; break; default: av_log(avctx, AV_LOG_ERROR, "Bit depth %i is not supported\n", s->bpp); @@ -233,18 +233,6 @@ static int decode_frame(AVCodecContext *avctx, size_t img_size = s->width * ((s->bpp + 1) >> 3); CHECK_BUFFER_SIZE(buf, buf_end, img_size, "image data"); for(y = 0; y < s->height; y++){ -#if HAVE_BIGENDIAN - int x; - if((s->bpp + 1) >> 3 == 2){ - uint16_t *dst16 = (uint16_t*)dst; - for(x = 0; x < s->width; x++) - dst16[x] = AV_RL16(buf + x * 2); - }else if((s->bpp + 1) >> 3 == 4){ - uint32_t *dst32 = (uint32_t*)dst; - for(x = 0; x < s->width; x++) - dst32[x] = AV_RL32(buf + x * 4); - }else -#endif memcpy(dst, buf, img_size); dst += stride; diff --git a/libavcodec/version.h b/libavcodec/version.h index 24de77c416..e0e50ea6b5 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -22,7 +22,7 @@ #define LIBAVCODEC_VERSION_MAJOR 53 #define LIBAVCODEC_VERSION_MINOR 57 -#define LIBAVCODEC_VERSION_MICRO 100 +#define LIBAVCODEC_VERSION_MICRO 101 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \