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:
authorJens Ole Wund <bjornmose@gmx.net>2006-01-29 20:46:19 +0300
committerJens Ole Wund <bjornmose@gmx.net>2006-01-29 20:46:19 +0300
commiteee7393e1cb3d39c54e00631c6b2ca0f8f337625 (patch)
treee0075c4e38b8d727ff169a5f5b55afad43f46a12 /source/blender
parenta4f05a17c31892f5a5afcae747c6338a6033948d (diff)
1. making RenderData, xrect, yrect parameters in AviCodec calls
2. fixing MSVC6 projects to build
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/intern/writeavi.c11
-rw-r--r--source/blender/include/BIF_writeavicodec.h4
-rw-r--r--source/blender/src/writeavicodec.c56
3 files changed, 36 insertions, 35 deletions
diff --git a/source/blender/blenkernel/intern/writeavi.c b/source/blender/blenkernel/intern/writeavi.c
index d754a694d5d..eb559df89e7 100644
--- a/source/blender/blenkernel/intern/writeavi.c
+++ b/source/blender/blenkernel/intern/writeavi.c
@@ -44,7 +44,6 @@
#include "BKE_global.h"
#include "BKE_writeavi.h"
-
#include "AVI_avi.h"
@@ -54,6 +53,10 @@
#include "quicktime_export.h"
#endif
+#if defined(_WIN32) && !defined(FREE_WINDOWS)
+#include "BIF_writeavicodec.h"
+#endif
+
bMovieHandle *BKE_get_movie_handle(int imtype)
{
static bMovieHandle mh;
@@ -70,8 +73,10 @@ bMovieHandle *BKE_get_movie_handle(int imtype)
}
#endif
#if defined(_WIN32) && !defined(FREE_WINDOWS)
- if (imtype == R_AVICODEC) {
-
+ if (imtype == R_AVICODEC) {
+ mh.start_movie= start_avi_codec;
+ mh.append_movie= append_avi_codec;
+ mh.end_movie= end_avi_codec;
}
#endif
#ifdef WITH_QUICKTIME
diff --git a/source/blender/include/BIF_writeavicodec.h b/source/blender/include/BIF_writeavicodec.h
index ff347fe494c..5b8ccdce4e2 100644
--- a/source/blender/include/BIF_writeavicodec.h
+++ b/source/blender/include/BIF_writeavicodec.h
@@ -35,8 +35,8 @@
#ifdef _WIN32
-void start_avi_codec(void);
-void append_avi_codec(int frame);
+void start_avi_codec(RenderData *rd,int rectx, int recty );
+void append_avi_codec(int frame,int *pixels,int rectx, int recty);
void end_avi_codec(void);
int get_avicodec_settings(void);
diff --git a/source/blender/src/writeavicodec.c b/source/blender/src/writeavicodec.c
index 83b0f466049..2e84840beea 100644
--- a/source/blender/src/writeavicodec.c
+++ b/source/blender/src/writeavicodec.c
@@ -33,6 +33,10 @@
*
*/
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
#if defined(_WIN32) && !defined(FREE_WINDOWS)
#define INC_OLE2
@@ -50,6 +54,7 @@
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "DNA_userdef_types.h"
+#include "DNA_scene_types.h"
#include "BKE_global.h"
#include "BKE_scene.h"
@@ -68,12 +73,11 @@ static int avifileinitdone = 0;
static PAVISTREAM psUncompressed = NULL, psCompressed = NULL;
// function definitions
-static void init_bmi(BITMAPINFOHEADER *bmi);
-static void opts_to_acd(struct AviCodecData *acd);
-static void acd_to_opts(struct AviCodecData *acd);
+static void init_bmi(BITMAPINFOHEADER *bmi,int rectx, int recty );
+static void opts_to_acd(AviCodecData *acd);
+static void acd_to_opts(AviCodecData *acd);
static void free_opts_data();
-static int open_avi_codec_file(char * name);
-extern struct Render R;
+static int open_avi_codec_file(char * name,RenderData *rd,int rectx, int recty );
///////////////////////////////////////////////////////////////////////////
//
@@ -492,19 +496,19 @@ HRESULT STDMETHODCALLTYPE AVIBallDelete (PAVISTREAM ps, LONG lStart, LONG
//////////////////////////////////////
-static void init_bmi(BITMAPINFOHEADER *bmi)
+static void init_bmi(BITMAPINFOHEADER *bmi,int rectx, int recty )
{
memset(bmi, 0, sizeof(BITMAPINFOHEADER));
bmi->biSize = sizeof(BITMAPINFOHEADER);
- bmi->biWidth = R.rectx;
- bmi->biHeight = R.recty;
+ bmi->biWidth = rectx;
+ bmi->biHeight = recty;
bmi->biPlanes = 1;
bmi->biBitCount = 24;
bmi->biSizeImage = bmi->biWidth * bmi->biHeight * sizeof(RGBTRIPLE);
}
-static void opts_to_acd(struct AviCodecData *acd)
+static void opts_to_acd(AviCodecData *acd)
{
HIC hic;
ICINFO icinfo;
@@ -543,7 +547,7 @@ static void opts_to_acd(struct AviCodecData *acd)
}
-static void acd_to_opts(struct AviCodecData *acd)
+static void acd_to_opts(AviCodecData *acd)
{
memset(&opts, 0, sizeof(opts));
if (acd) {
@@ -581,7 +585,7 @@ static void free_opts_data()
}
}
-static int open_avi_codec_file(char * name)
+static int open_avi_codec_file(char * name,RenderData *rd,int rectx, int recty )
{
HRESULT hr;
WORD wVer;
@@ -606,7 +610,7 @@ static int open_avi_codec_file(char * name)
ret_val = 1;
} else {
// initialize the BITMAPINFOHEADER
- init_bmi(&bmi);
+ init_bmi(&bmi,rectx,recty);
// and associate a stream with the input images
memset(&strhdr, 0, sizeof(strhdr));
strhdr.fccType = streamtypeVIDEO; // stream type
@@ -614,7 +618,7 @@ static int open_avi_codec_file(char * name)
strhdr.fccHandler = G.scene->r.avicodecdata->fccHandler;
}
strhdr.dwScale = 1;
- strhdr.dwRate = R.r.frs_sec;
+ strhdr.dwRate = rd->frs_sec;
strhdr.dwSuggestedBufferSize = bmi.biSizeImage;
SetRect(&strhdr.rcFrame, 0, 0, // rectangle for stream
(int) bmi.biWidth,
@@ -640,7 +644,6 @@ static int open_avi_codec_file(char * name)
void end_avi_codec(void)
{
-#if 0
free_opts_data();
if (psUncompressed) {
@@ -662,19 +665,17 @@ void end_avi_codec(void)
AVIFileExit();
avifileinitdone--;
}
-#endif
}
-void start_avi_codec(void)
+void start_avi_codec(RenderData *rd,int rectx, int recty )
{
-#if 0
HRESULT hr;
BITMAPINFOHEADER bmi;
char name[2048];
char bakname[2048];
- makeavistring(name);
+ makeavistring(rd,name);
sframe = (G.scene->r.sfra);
strcpy(bakname, name);
@@ -685,9 +686,9 @@ void start_avi_codec(void)
}
// initialize the BITMAPINFOHEADER
- init_bmi(&bmi);
+ init_bmi(&bmi,rectx,recty);
- if (open_avi_codec_file(name)) {
+ if (open_avi_codec_file(name,rd,rectx,recty)) {
error("Can not open file %s", name);
G.afbreek = 1;
} else {
@@ -728,13 +729,11 @@ void start_avi_codec(void)
BLI_move(bakname, name);
}
}
-#endif
}
-void append_avi_codec(int frame)
+void append_avi_codec(int frame,int *pixels,int rectx, int recty)
{
-#if 0
HRESULT hr;
BITMAPINFOHEADER bmi;
RGBTRIPLE *buffer, *to;
@@ -743,14 +742,14 @@ void append_avi_codec(int frame)
if (psCompressed) {
// initialize the BITMAPINFOHEADER
- init_bmi(&bmi);
+ init_bmi(&bmi, rectx, recty);
// copy pixels
buffer = MEM_mallocN(bmi.biSizeImage, "append_win_avi");
to = buffer;
- from = (unsigned char *) R.rectot;
- for (y = R.recty; y > 0 ; y--) {
- for (x = R.rectx; x > 0 ; x--) {
+ from = (unsigned char *) pixels;
+ for (y = recty; y > 0 ; y--) {
+ for (x = rectx; x > 0 ; x--) {
to->rgbtRed = from[0];
to->rgbtGreen = from[1];
to->rgbtBlue = from[2];
@@ -776,13 +775,11 @@ void append_avi_codec(int frame)
printf ("added frame %3d (frame %3d in avi): ", frame, frame-sframe);
}
}
-#endif
}
int get_avicodec_settings(void)
{
-#if 0
int ret_val = 0;
AVICOMPRESSOPTIONS *aopts[1] = {&opts};
AviCodecData *acd = G.scene->r.avicodecdata;
@@ -825,7 +822,6 @@ int get_avicodec_settings(void)
}
return(ret_val);
-#endif
}
#endif // _WIN32