Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Haarsma <phaseIV@zonnet.nl>2005-01-12 14:03:25 +0300
committerRob Haarsma <phaseIV@zonnet.nl>2005-01-12 14:03:25 +0300
commit309792d20684cc13de87612e1a595cb86a16a9ef (patch)
tree91fd09c860492b2896f1f4e69d1fd94fc94aa030 /source/blender/quicktime
parent180b8f48ce6a0e1d059fbb8fea026dbc87793bd1 (diff)
RGBA Quicktime movies give codec compression crashes on OSX.
Reverting Quicktime export to ARGB for both OSX and Windows to keep some consistency on Blender's output.
Diffstat (limited to 'source/blender/quicktime')
-rw-r--r--source/blender/quicktime/apple/quicktime_export.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c
index 09dea4973dc..cdc62ed2895 100644
--- a/source/blender/quicktime/apple/quicktime_export.c
+++ b/source/blender/quicktime/apple/quicktime_export.c
@@ -309,7 +309,7 @@ static void QT_StartAddVideoSamplesToMedia (const Rect *trackFrame)
qtexport->ibuf = IMB_allocImBuf (R.rectx, R.recty, 32, IB_rect, 0);
err = NewGWorldFromPtr( &qtexport->theGWorld,
- k32RGBAPixelFormat,
+ k32ARGBPixelFormat,
trackFrame,
NULL, NULL, 0,
(unsigned char *)qtexport->ibuf->rect,
@@ -335,9 +335,7 @@ static void QT_DoAddVideoSamplesToMedia (int frame)
OSErr err = noErr;
Rect imageRect;
-#ifdef __APPLE__
register int index;
-#endif
register int boxsize;
register uint32_t *readPos;
register uint32_t *changePos;
@@ -358,10 +356,14 @@ static void QT_DoAddVideoSamplesToMedia (int frame)
//parse render bitmap into Quicktime's GWorld
#ifdef __APPLE__
for( index = 0; index < boxsize; index++, changePos++, readPos++ )
- *( changePos ) = *( readPos );
+ *( changePos ) = ( ( *readPos & 0xFFFFFFFF ) >> 8 ) |
+ ( ( *readPos << 24 ) & 0xFF );
#endif
+
#ifdef _WIN32
- memcpy(changePos, readPos, boxsize*4);
+ for( index = 0; index < boxsize; index++, changePos++, readPos++ )
+ *( changePos ) = ( ( *readPos & 0xFFFFFFFF ) << 8 ) |
+ ( ( *readPos >> 24 ) & 0xFF );
#endif
err = SCCompressSequenceFrame(qtdata->theComponent,
qtexport->thePixMap,