diff options
author | Ton Roosendaal <ton@blender.org> | 2009-01-04 17:14:06 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-01-04 17:14:06 +0300 |
commit | f7cb86df3a9ceccc4d649e42735732a608169157 (patch) | |
tree | 558a9ba43708a2213b1afa8f46d79f5daa140bc6 /source/blender/quicktime/apple/quicktime_export.c | |
parent | 74f9e98c828c17910405092785633373d4ae88e8 (diff) |
2.5
Think global, act local!
The old favorite G.scene gone! Man... that took almost 2 days.
Also removed G.curscreen and G.edbo.
Not everything could get solved; here's some notes.
- modifiers now store current scene in ModifierData. This is not
meant for permanent, but it can probably stick there until we
cleaned the anim system and depsgraph to cope better with
timing issues.
- Game engine G.scene should become an argument for staring it.
Didn't solve this yet.
- Texture nodes should get scene cfra, but the current implementation
is too tightly wrapped to do it easily.
Diffstat (limited to 'source/blender/quicktime/apple/quicktime_export.c')
-rw-r--r-- | source/blender/quicktime/apple/quicktime_export.c | 65 |
1 files changed, 33 insertions, 32 deletions
diff --git a/source/blender/quicktime/apple/quicktime_export.c b/source/blender/quicktime/apple/quicktime_export.c index ca025a0b8a3..c863d6be429 100644 --- a/source/blender/quicktime/apple/quicktime_export.c +++ b/source/blender/quicktime/apple/quicktime_export.c @@ -76,7 +76,7 @@ static void QT_DoAddVideoSamplesToMedia (int frame, int *pixels, int rectx, int static void QT_EndAddVideoSamplesToMedia (void); static void QT_CreateMyVideoTrack (int rectx, int recty); static void QT_EndCreateMyVideoTrack (void); -static void check_renderbutton_framerate(void); +static void check_renderbutton_framerate(struct RenderData *rd); typedef struct QuicktimeExport { @@ -120,7 +120,7 @@ static void CheckError(OSErr err, char *msg) } -static OSErr QT_SaveCodecSettingsToScene(void) +static OSErr QT_SaveCodecSettingsToScene(RenderData *rd) { QTAtomContainer myContainer = NULL; ComponentResult myErr = noErr; @@ -130,13 +130,13 @@ static OSErr QT_SaveCodecSettingsToScene(void) CodecInfo ci; char str[255]; - QuicktimeCodecData *qcd = G.scene->r.qtcodecdata; + QuicktimeCodecData *qcd = rd->qtcodecdata; // check if current scene already has qtcodec settings, and clear them if (qcd) { free_qtcodecdata(qcd); } else { - qcd = G.scene->r.qtcodecdata = MEM_callocN(sizeof(QuicktimeCodecData), "QuicktimeCodecData"); + qcd = rd->qtcodecdata = MEM_callocN(sizeof(QuicktimeCodecData), "QuicktimeCodecData"); } // obtain all current codec settings @@ -181,14 +181,14 @@ bail: } -static OSErr QT_GetCodecSettingsFromScene(void) +static OSErr QT_GetCodecSettingsFromScene(RenderData *rd) { Handle myHandle = NULL; ComponentResult myErr = noErr; // CodecInfo ci; // char str[255]; - QuicktimeCodecData *qcd = G.scene->r.qtcodecdata; + QuicktimeCodecData *qcd = rd->qtcodecdata; // if there is codecdata in the blendfile, convert it to a Quicktime handle if (qcd) { @@ -421,18 +421,18 @@ static void QT_EndAddVideoSamplesToMedia (void) } -void makeqtstring (char *string) { +void makeqtstring (RenderData *rd, char *string) { char txt[64]; if (string==0) return; - strcpy(string, G.scene->r.pic); + strcpy(string, rd->pic); BLI_convertstringcode(string, G.sce); BLI_make_existing_file(string); if (BLI_strcasecmp(string + strlen(string) - 4, ".mov")) { - sprintf(txt, "%04d_%04d.mov", (G.scene->r.sfra) , (G.scene->r.efra) ); + sprintf(txt, "%04d_%04d.mov", (rd->sfra) , (rd->efra) ); strcat(string, txt); } } @@ -461,18 +461,18 @@ void start_qt(struct RenderData *rd, int rectx, int recty) { qtdata = MEM_callocN(sizeof(QuicktimeComponentData), "QuicktimeCodecDataExt"); if(rd->qtcodecdata == NULL && rd->qtcodecdata->cdParms == NULL) { - get_qtcodec_settings(); + get_qtcodec_settings(rd); } else { qtdata->theComponent = OpenDefaultComponent(StandardCompressionType, StandardCompressionSubType); - QT_GetCodecSettingsFromScene(); - check_renderbutton_framerate(); + QT_GetCodecSettingsFromScene(rd); + check_renderbutton_framerate(rd); } if (G.afbreek != 1) { sframe = (rd->sfra); - makeqtstring(name); + makeqtstring(rd, name); #ifdef __APPLE__ sprintf(theFullPath, "%s", name); @@ -563,19 +563,20 @@ void free_qtcomponentdata(void) { } -static void check_renderbutton_framerate(void) { +static void check_renderbutton_framerate(RenderData *rd) +{ // to keep float framerates consistent between the codec dialog and frs/sec button. OSErr err; err = SCGetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); CheckError(err, "SCGetInfo fr error"); - if( (G.scene->r.frs_sec == 24 || G.scene->r.frs_sec == 30 || G.scene->r.frs_sec == 60) && + if( (rd->frs_sec == 24 || rd->frs_sec == 30 || rd->frs_sec == 60) && (qtdata->gTemporalSettings.frameRate == 1571553 || qtdata->gTemporalSettings.frameRate == 1964113 || qtdata->gTemporalSettings.frameRate == 3928227)) {;} else qtdata->gTemporalSettings.frameRate = - (G.scene->r.frs_sec << 16) / G.scene->r.frs_sec_base ; + (rd->frs_sec << 16) / rd->frs_sec_base ; err = SCSetInfo(qtdata->theComponent, scTemporalSettingsType, &qtdata->gTemporalSettings); CheckError( err, "SCSetInfo error" ); @@ -596,7 +597,7 @@ static void check_renderbutton_framerate(void) { } -int get_qtcodec_settings(void) +int get_qtcodec_settings(RenderData *rd) { OSErr err = noErr; @@ -611,9 +612,9 @@ int get_qtcodec_settings(void) qtdata->theComponent = OpenDefaultComponent(StandardCompressionType, StandardCompressionSubType); // get previous selected codecsetting, if any - if(G.scene->r.qtcodecdata && G.scene->r.qtcodecdata->cdParms) { - QT_GetCodecSettingsFromScene(); - check_renderbutton_framerate(); + if(rd->qtcodecdata && rd->qtcodecdata->cdParms) { + QT_GetCodecSettingsFromScene(rd); + check_renderbutton_framerate(rd); } else { // configure the standard image compression dialog box // set some default settings @@ -631,7 +632,7 @@ int get_qtcodec_settings(void) CheckError(err, "SCSetInfo3 error"); } - check_renderbutton_framerate(); + check_renderbutton_framerate(rd); // put up the dialog box err = SCRequestSequenceSettings(qtdata->theComponent); @@ -646,27 +647,27 @@ int get_qtcodec_settings(void) SCGetInfo(qtdata->theComponent, scSpatialSettingsType, &qtdata->gSpatialSettings); SCGetInfo(qtdata->theComponent, scDataRateSettingsType, &qtdata->aDataRateSetting); - QT_SaveCodecSettingsToScene(); + QT_SaveCodecSettingsToScene(rd); // framerate jugglin' if(qtdata->gTemporalSettings.frameRate == 1571553) { // 23.98 fps qtdata->kVideoTimeScale = 24000; qtdata->duration = 1001; - G.scene->r.frs_sec = 24; - G.scene->r.frs_sec_base = 1.001; + rd->frs_sec = 24; + rd->frs_sec_base = 1.001; } else if (qtdata->gTemporalSettings.frameRate == 1964113) { // 29.97 fps qtdata->kVideoTimeScale = 30000; qtdata->duration = 1001; - G.scene->r.frs_sec = 30; - G.scene->r.frs_sec_base = 1.001; + rd->frs_sec = 30; + rd->frs_sec_base = 1.001; } else if (qtdata->gTemporalSettings.frameRate == 3928227) { // 59.94 fps qtdata->kVideoTimeScale = 60000; qtdata->duration = 1001; - G.scene->r.frs_sec = 60; - G.scene->r.frs_sec_base = 1.001; + rd->frs_sec = 60; + rd->frs_sec_base = 1.001; } else { double fps = qtdata->gTemporalSettings.frameRate; @@ -674,12 +675,12 @@ int get_qtcodec_settings(void) qtdata->duration = qtdata->kVideoTimeScale / (qtdata->gTemporalSettings.frameRate / 65536); if ((qtdata->gTemporalSettings.frameRate & 0xffff) == 0) { - G.scene->r.frs_sec = fps / 65536; - G.scene->r.frs_sec_base = 1; + rd->frs_sec = fps / 65536; + rd->frs_sec_base = 1; } else { /* we do our very best... */ - G.scene->r.frs_sec = (fps * 10000 / 65536); - G.scene->r.frs_sec_base = 10000; + rd->frs_sec = (fps * 10000 / 65536); + rd->frs_sec_base = 10000; } } |