From 6a6cf2f7e76792d326ec686d997f06cf2d04081c Mon Sep 17 00:00:00 2001 From: thilo Date: Mon, 31 Jul 2006 15:32:59 +0000 Subject: Another patch to make uncompressed AVI write in RGB24 format by anonymous virtualdub sympathiser. git-svn-id: svn://svn.icculus.org/quake3/trunk@825 edf5b092-35ff-0310-97b2-ce42778d08ea --- code/client/cl_avi.c | 4 ++-- code/renderer/tr_init.c | 15 +++++++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/code/client/cl_avi.c b/code/client/cl_avi.c index 0be5fa5..463f873 100644 --- a/code/client/cl_avi.c +++ b/code/client/cl_avi.c @@ -248,7 +248,7 @@ void CL_WriteAVIHeader( void ) WRITE_4BYTES( afd.width ); //biWidth WRITE_4BYTES( afd.height ); //biHeight WRITE_2BYTES( 1 ); //biPlanes - WRITE_2BYTES( 32 ); //biBitCount + WRITE_2BYTES( 24 ); //biBitCount if( afd.motionJpeg ) { //biCompression WRITE_STRING( "MJPG" ); @@ -257,7 +257,7 @@ void CL_WriteAVIHeader( void ) } else { WRITE_4BYTES( 0 ); // BI_RGB WRITE_4BYTES( afd.width * - afd.height*4 ); //biSizeImage + afd.height*3 ); //biSizeImage } WRITE_4BYTES( 0 ); //biXPelsPetMeter diff --git a/code/renderer/tr_init.c b/code/renderer/tr_init.c index 87f47f1..347e7a7 100644 --- a/code/renderer/tr_init.c +++ b/code/renderer/tr_init.c @@ -715,7 +715,6 @@ const void *RB_TakeVideoFrameCmd( const void *data ) const videoFrameCommand_t *cmd; int frameSize; int i; - char swapper; cmd = (const videoFrameCommand_t *)data; @@ -734,16 +733,16 @@ const void *RB_TakeVideoFrameCmd( const void *data ) } else { - frameSize = cmd->width * cmd->height * 4; + frameSize = cmd->width * cmd->height; - for( i = 0; i < frameSize; i = i + 4) // Swap R and B + for( i = 0; i < frameSize; i++) // Pack to 24bpp and swap R and B { - swapper = cmd->captureBuffer[ i ]; - cmd->captureBuffer[ i ] = cmd->captureBuffer[ i + 2 ]; - cmd->captureBuffer[ i + 2 ] = swapper; - + cmd->encodeBuffer[ i*3 ] = cmd->captureBuffer[ i*4 + 2 ]; + cmd->encodeBuffer[ i*3 + 1 ] = cmd->captureBuffer[ i*4 + 1 ]; + cmd->encodeBuffer[ i*3 + 2 ] = cmd->captureBuffer[ i*4 ]; } - ri.CL_WriteAVIVideoFrame( cmd->captureBuffer, frameSize ); + + ri.CL_WriteAVIVideoFrame( cmd->encodeBuffer, frameSize * 3 ); } return (const void *)(cmd + 1); -- cgit v1.2.3