Commit 4ebfcd62 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '6c1df1f2'

* commit '6c1df1f2':
  sgi: encode images with 4 channels at 8 and 16 bits

Conflicts:
	Changelog
	libavcodec/sgienc.c

See: 21a10061Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 23290c86 6c1df1f2
......@@ -397,7 +397,7 @@ version 0.10:
- ffwavesynth decoder
- aviocat tool
- ffeval tool
- support decoding 4-channel SGI images
- support encoding and decoding 4-channel SGI images
version 0.9:
......
......@@ -50,7 +50,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
const AVFrame * const p = frame;
uint8_t *offsettab, *lengthtab, *in_buf, *encode_buf, *buf;
int x, y, z, length, tablesize, ret;
unsigned int width, height, depth, dimension, bytes_per_channel, pixmax, put_be;
unsigned int width, height, depth, dimension;
unsigned int bytes_per_channel, pixmax, put_be;
unsigned char *end_buf;
avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
......@@ -183,7 +184,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt,
for (y = 0; y < height; y++) {
for (x = 0; x < width * depth; x += depth)
if (bytes_per_channel == 1) {
bytestream_put_byte(&buf, in_buf[x]);
bytestream_put_byte(&buf, in_buf[x]);
} else {
if (put_be) {
bytestream_put_be16(&buf, ((uint16_t *)in_buf)[x]);
......@@ -223,7 +224,7 @@ AVCodec ff_sgi_encoder = {
AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA,
AV_PIX_FMT_RGB48LE, AV_PIX_FMT_RGB48BE,
AV_PIX_FMT_RGBA64LE, AV_PIX_FMT_RGBA64BE,
AV_PIX_FMT_GRAY16LE, AV_PIX_FMT_GRAY16BE,
AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE
AV_PIX_FMT_GRAY16LE, AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_GRAY8,
AV_PIX_FMT_NONE
},
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment