fixed a (wn32 avi) codec issue when adding an Empty scene.
added ttc and otc to the list of font extensions.
This commit is contained in:
@@ -157,6 +157,11 @@ Scene *add_scene(char *name)
|
||||
sce->r.freqplay= 60;
|
||||
sce->r.depth= 32;
|
||||
|
||||
if (sce->r.avicodecdata) {
|
||||
printf("this is not good\n");
|
||||
}
|
||||
// sce->r.imtype= R_TARGA;
|
||||
|
||||
sce->r.stereomode = 1; // no stereo
|
||||
|
||||
strcpy(sce->r.backbuf, "//backbuf");
|
||||
|
@@ -40,7 +40,5 @@ void append_avi_codec(int frame);
|
||||
void end_avi_codec(void);
|
||||
int get_avicodec_settings(void);
|
||||
|
||||
extern int have_avicodec;
|
||||
extern char avicdname[128];
|
||||
#endif
|
||||
|
||||
|
@@ -77,6 +77,8 @@ typedef struct AviCodecData {
|
||||
unsigned int dwFlags; /* flags... see below */
|
||||
unsigned int dwInterleaveEvery; /* for non-video streams only */
|
||||
unsigned int pad;
|
||||
|
||||
char avicodecname[128];
|
||||
} AviCodecData;
|
||||
|
||||
typedef struct RenderData {
|
||||
|
@@ -6600,10 +6600,10 @@ void renderbuts(void)
|
||||
#endif /* WITH_QUICKTIME */
|
||||
} else {
|
||||
#ifdef _WIN32
|
||||
if(!have_avicodec)
|
||||
if(G.scene->r.avicodecdata->avicodecname[0] == NULL)
|
||||
uiDefBut(block, LABEL, 0, "Codec: not set.", 892,yofs+42,225,20, 0, 0, 0, 0, 0, "");
|
||||
else
|
||||
uiDefBut(block, LABEL, 0, avicdname, 892,yofs+42,225,20, 0, 0, 0, 0, 0, "");
|
||||
uiDefBut(block, LABEL, 0, G.scene->r.avicodecdata->avicodecname, 892,yofs+42,225,20, 0, 0, 0, 0, 0, "");
|
||||
#endif
|
||||
uiDefBut(block, BUT,B_SELECTCODEC, "Set codec", 892,yofs,112,20, 0, 0, 0, 0, 0, "Set codec settings for AVI");
|
||||
}
|
||||
|
@@ -516,7 +516,9 @@ void test_flags_file(SpaceFile *sfile)
|
||||
if(BLI_testextensie(file->relname, ".py")) {
|
||||
file->flags |= PYSCRIPTFILE;
|
||||
} else if( BLI_testextensie(file->relname, ".ttf")
|
||||
|| BLI_testextensie(file->relname, ".ttc")
|
||||
|| BLI_testextensie(file->relname, ".pfb")
|
||||
|| BLI_testextensie(file->relname, ".otf")
|
||||
|| BLI_testextensie(file->relname, ".otc")) {
|
||||
file->flags |= FTFONTFILE;
|
||||
} else if (G.have_quicktime){
|
||||
|
@@ -2111,7 +2111,6 @@ Scene *copy_scene(Scene *sce, int level)
|
||||
scen->r.avicodecdata->lpFormat = MEM_dupallocN(scen->r.avicodecdata->lpFormat);
|
||||
|
||||
scen->r.avicodecdata->lpParms = MEM_dupallocN(scen->r.avicodecdata->lpParms);
|
||||
|
||||
}
|
||||
|
||||
return scen;
|
||||
@@ -2204,6 +2203,13 @@ void do_info_buttons(unsigned short event)
|
||||
if(nr==1) {
|
||||
sce= add_scene(G.scene->id.name+2);
|
||||
sce->r= G.scene->r;
|
||||
#ifdef _WIN32
|
||||
if (sce->r.avicodecdata) {
|
||||
sce->r.avicodecdata = MEM_dupallocN(G.scene->r.avicodecdata);
|
||||
sce->r.avicodecdata->lpFormat = MEM_dupallocN(G.scene->r.avicodecdata->lpFormat);
|
||||
sce->r.avicodecdata->lpParms = MEM_dupallocN(G.scene->r.avicodecdata->lpParms);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else sce= copy_scene(G.scene, nr-2);
|
||||
|
||||
|
@@ -64,8 +64,6 @@
|
||||
// the output video stream
|
||||
|
||||
AVICOMPRESSOPTIONS opts;
|
||||
char avicdname[128];
|
||||
int have_avicodec= 0;
|
||||
|
||||
static int sframe;
|
||||
static PAVIFILE pfile = NULL;
|
||||
@@ -510,6 +508,9 @@ static void init_bmi(BITMAPINFOHEADER *bmi)
|
||||
|
||||
static void opts_to_acd(AviCodecData *acd)
|
||||
{
|
||||
HIC hic;
|
||||
ICINFO icinfo;
|
||||
|
||||
acd->fccType = opts.fccType;
|
||||
acd->fccHandler = opts.fccHandler;
|
||||
acd->dwKeyFrameEvery = opts.dwKeyFrameEvery;
|
||||
@@ -529,6 +530,18 @@ static void opts_to_acd(AviCodecData *acd)
|
||||
acd->lpParms = MEM_mallocN(opts.cbParms, "avi.lpParms");
|
||||
memcpy(acd->lpParms, opts.lpParms, opts.cbParms);
|
||||
}
|
||||
|
||||
if ((hic=ICOpen(ICTYPE_VIDEO,acd->fccHandler,ICMODE_QUERY))!=NULL) {
|
||||
icinfo.dwSize=sizeof(ICINFO);
|
||||
if (ICGetInfo(hic,&icinfo,sizeof(ICINFO))) {
|
||||
WideCharToMultiByte(CP_ACP,0,icinfo.szDescription,-1,acd->avicodecname,128,NULL,NULL);
|
||||
} else
|
||||
sprintf(acd->avicodecname, "undefined");
|
||||
if (ICClose(hic)!=ICERR_OK)
|
||||
;// return 0;
|
||||
} else {
|
||||
sprintf(acd->avicodecname, "Full Frames (Uncompressed)"); //heh, nasty
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -769,8 +782,6 @@ int get_avicodec_settings(void)
|
||||
AVICOMPRESSOPTIONS *aopts[1] = {&opts};
|
||||
AviCodecData *acd = G.scene->r.avicodecdata;
|
||||
static PAVISTREAM psdummy;
|
||||
HIC hic;
|
||||
ICINFO icinfo;
|
||||
|
||||
acd_to_opts(G.scene->r.avicodecdata);
|
||||
|
||||
@@ -788,20 +799,6 @@ int get_avicodec_settings(void)
|
||||
{
|
||||
ret_val = 1;
|
||||
} else {
|
||||
have_avicodec = 1;
|
||||
|
||||
if ((hic=ICOpen(ICTYPE_VIDEO,opts.fccHandler,ICMODE_QUERY))!=NULL) {
|
||||
icinfo.dwSize=sizeof(ICINFO);
|
||||
if (ICGetInfo(hic,&icinfo,sizeof(ICINFO))) {
|
||||
WideCharToMultiByte(CP_ACP,0,icinfo.szDescription,-1,avicdname,128,NULL,NULL);
|
||||
} else
|
||||
sprintf(avicdname, "undefined");
|
||||
if (ICClose(hic)!=ICERR_OK)
|
||||
return 0;
|
||||
} else {
|
||||
sprintf(avicdname, "Full Frames (Uncompressed)"); //heh, nasty
|
||||
}
|
||||
|
||||
if (acd) {
|
||||
free_avicodecdata(acd);
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user