[SCM] libav/experimental: Add support for SGI images without RLE compression. patch by Anne-Laure de Smit, annelaure.desmit gmail com

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:52:15 UTC 2013


The following commit has been merged in the experimental branch:
commit 2aa6e87a9714c2275203b531dc51c74addecc66c
Author: Anne-Laure de Smit <annelaure.desmit at gmail.com>
Date:   Wed Sep 30 21:23:47 2009 +0000

    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

diff --git a/libavcodec/sgienc.c b/libavcodec/sgienc.c
index a206ae5..37bba97 100644
--- a/libavcodec/sgienc.c
+++ b/libavcodec/sgienc.c
@@ -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;
 }

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list