diff options
author | Peter Schlaile <peter@schlaile.de> | 2008-01-20 21:55:56 +0300 |
---|---|---|
committer | Peter Schlaile <peter@schlaile.de> | 2008-01-20 21:55:56 +0300 |
commit | 053dca1fa954d29251dbe841d287305ec81f4d01 (patch) | |
tree | 1248335ae974cf009c6d55ed20d6987f9b1f81fd /source/blender/imbuf/intern/imageprocess.c | |
parent | f41798987123a7c4fa3dde8e24d568be07f6e1a0 (diff) |
== Sequencer / FFMPEG ==
This fixes:
[#7989] Sequence editor preview and anim render output broken on Linux PPC
and also optimizes RGBA -> ABGR conversion function a little bit.
(Fixing also a crash, if there is no ibuf->rect available...)
Diffstat (limited to 'source/blender/imbuf/intern/imageprocess.c')
-rw-r--r-- | source/blender/imbuf/intern/imageprocess.c | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/source/blender/imbuf/intern/imageprocess.c b/source/blender/imbuf/intern/imageprocess.c index 54e0ec94672..aa09fc3ee38 100644 --- a/source/blender/imbuf/intern/imageprocess.c +++ b/source/blender/imbuf/intern/imageprocess.c @@ -51,22 +51,28 @@ I stole it from util.h in the plugins api */ /* Only this one is used liberally here, and in imbuf */ void IMB_convert_rgba_to_abgr(struct ImBuf *ibuf) { - int size, do_float=0; + int size; unsigned char rt, *cp = (unsigned char *)ibuf->rect; float rtf, *cpf = ibuf->rect_float; - - if (ibuf->rect_float) do_float = 1; - size = ibuf->x * ibuf->y; - while(size-- > 0) { - rt= cp[0]; - cp[0]= cp[3]; - cp[3]= rt; - rt= cp[1]; - cp[1]= cp[2]; - cp[2]= rt; - cp+= 4; - if (do_float) { + if (ibuf->rect) { + size = ibuf->x * ibuf->y; + + while(size-- > 0) { + rt= cp[0]; + cp[0]= cp[3]; + cp[3]= rt; + rt= cp[1]; + cp[1]= cp[2]; + cp[2]= rt; + cp+= 4; + } + } + + if (ibuf->rect_float) { + size = ibuf->x * ibuf->y; + + while(size-- > 0) { rtf= cpf[0]; cpf[0]= cpf[3]; cpf[3]= rtf; |