mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-30 23:10:32 +00:00
Add support for SGI images without RLE compression.
patch by Anne-Laure de Smit, annelaure.desmit gmail com Originally committed as revision 20104 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
5200b90147
commit
2aa6e87a97
@ -83,7 +83,7 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf,
|
||||
|
||||
/* Encode header. */
|
||||
bytestream_put_be16(&buf, SGI_MAGIC);
|
||||
bytestream_put_byte(&buf, 1); /* RLE */
|
||||
bytestream_put_byte(&buf, avctx->coder_type != FF_CODER_TYPE_RAW); /* RLE 1 - VERBATIM 0*/
|
||||
bytestream_put_byte(&buf, 1); /* bytes_per_channel */
|
||||
bytestream_put_be16(&buf, dimension);
|
||||
bytestream_put_be16(&buf, width);
|
||||
@ -106,6 +106,7 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf,
|
||||
buf += 404;
|
||||
offsettab = buf;
|
||||
|
||||
if (avctx->coder_type != FF_CODER_TYPE_RAW) {
|
||||
/* Skip RLE offset table. */
|
||||
buf += tablesize;
|
||||
lengthtab = buf;
|
||||
@ -139,6 +140,19 @@ static int encode_frame(AVCodecContext *avctx, unsigned char *buf,
|
||||
}
|
||||
|
||||
av_free(encode_buf);
|
||||
} else {
|
||||
for (z = 0; z < depth; z++) {
|
||||
in_buf = p->data[0] + p->linesize[0] * (height - 1) + z;
|
||||
|
||||
for (y = 0; y < height; y++) {
|
||||
for (x = 0; x < width * depth; x += depth)
|
||||
bytestream_put_byte(&buf, in_buf[x]);
|
||||
|
||||
in_buf -= p->linesize[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* total length */
|
||||
return buf - orig_buf;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user