diff options
author | Matt Ebb <matt@mke3.net> | 2010-01-26 05:49:30 +0300 |
---|---|---|
committer | Matt Ebb <matt@mke3.net> | 2010-01-26 05:49:30 +0300 |
commit | e6a23762da3f6b88da21669b7ae30c834ace2f55 (patch) | |
tree | 1c55bb97fbebe2755d22a7ccc0a484d323ed785e /source/blender/imbuf/intern/anim.c | |
parent | ba2257b57e56cc410288756de491969f4e207985 (diff) |
Fix [#20821] COLOR MANAGEMENT: Corrupts motion picture files
Wasn't tagging movie formats with profiles properly.
Diffstat (limited to 'source/blender/imbuf/intern/anim.c')
-rw-r--r-- | source/blender/imbuf/intern/anim.c | 15 |
1 files changed, 12 insertions, 3 deletions
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 |