From e6a23762da3f6b88da21669b7ae30c834ace2f55 Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Tue, 26 Jan 2010 02:49:30 +0000 Subject: Fix [#20821] COLOR MANAGEMENT: Corrupts motion picture files Wasn't tagging movie formats with profiles properly. --- source/blender/imbuf/intern/anim.c | 15 ++++++++++++--- source/blender/imbuf/intern/anim5.c | 2 ++ 2 files changed, 14 insertions(+), 3 deletions(-) (limited to 'source/blender/imbuf/intern') diff --git a/source/blender/imbuf/intern/anim.c b/source/blender/imbuf/intern/anim.c index 1aaba620f3a..effc91739c0 100644 --- a/source/blender/imbuf/intern/anim.c +++ b/source/blender/imbuf/intern/anim.c @@ -504,6 +504,8 @@ static ImBuf * avi_fetchibuf (struct anim *anim, int position) { MEM_freeN (tmp); } + ibuf->profile = IB_PROFILE_SRGB; + return ibuf; } @@ -881,6 +883,8 @@ static ImBuf * ffmpeg_fetchibuf(struct anim * anim, int position) { IMB_filtery(ibuf); } + ibuf->profile = IB_PROFILE_SRGB; + return(ibuf); } @@ -1069,6 +1073,7 @@ struct ImBuf * IMB_anim_absolute(struct anim * anim, int position) { if (nextanim5(anim)) return (0); } ibuf = anim5_fetchibuf(anim); + ibuf->profile = IB_PROFILE_SRGB; break; case ANIM_SEQUENCE: pic = an_stringdec(anim->first, head, tail, &digits); @@ -1089,22 +1094,26 @@ struct ImBuf * IMB_anim_absolute(struct anim * anim, int position) { if (ibuf) { anim->curposition = position; IMB_convert_rgba_to_abgr(ibuf); + ibuf->profile = IB_PROFILE_SRGB; } break; case ANIM_AVI: ibuf = avi_fetchibuf(anim, position); - if (ibuf) anim->curposition = position; + if (ibuf) + anim->curposition = position; break; #ifdef WITH_QUICKTIME case ANIM_QTIME: ibuf = qtime_fetchibuf(anim, position); - if (ibuf) anim->curposition = position; + if (ibuf) + anim->curposition = position; break; #endif #ifdef WITH_FFMPEG case ANIM_FFMPEG: ibuf = ffmpeg_fetchibuf(anim, position); - if (ibuf) anim->curposition = position; + if (ibuf) + anim->curposition = position; filter_y = 0; /* done internally */ break; #endif diff --git a/source/blender/imbuf/intern/anim5.c b/source/blender/imbuf/intern/anim5.c index 43a6b0d2c5d..7aaaee36e9a 100644 --- a/source/blender/imbuf/intern/anim5.c +++ b/source/blender/imbuf/intern/anim5.c @@ -532,6 +532,8 @@ struct ImBuf * anim5_fetchibuf(struct anim * anim) { ibuf = IMB_dupImBuf(anim->ibuf1); planes_to_rect(ibuf, anim->ib_flags); + ibuf->profile = IB_PROFILE_SRGB; + return(ibuf); } -- cgit v1.2.3