svn merge ^/trunk/blender -r42778:42839
[blender.git] / source / blender / blenloader / intern / readfile.c
index 1c554cdcf9ab054a2dce326ea838bd40959a1041..9695b90593bc70b8cbed403272361b86bf3f3a55 100644 (file)
 #include "BKE_utildefines.h" // SWITCH_INT DATA ENDB DNA1 O_BINARY GLOB USER TEST REND
 #include "BKE_sound.h"
 
+#include "IMB_imbuf.h"  // for proxy / timecode versioning stuff
+
 #include "NOD_socket.h"
 
 //XXX #include "BIF_butspace.h" // badlevel, for do_versions, patching event codes
@@ -10771,8 +10773,11 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                void *olddata = ob->data;
                                ob->data = me;
 
-                               if(me && me->id.lib==NULL && me->mr && me->mr->level_count > 1) /* XXX - library meshes crash on loading most yoFrankie levels, the multires pointer gets invalid -  Campbell */
+                               /* XXX - library meshes crash on loading most yoFrankie levels,
+                                * the multires pointer gets invalid -  Campbell */
+                               if(me && me->id.lib==NULL && me->mr && me->mr->level_count > 1) {
                                        multires_load_old(ob, me);
+                               }
 
                                ob->data = olddata;
                        }
@@ -12670,10 +12675,12 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                        clip->aspy= 1.0f;
                                }
 
-                               /* XXX: a bit hacky, probably include imbuf and use real constants are nicer */
-                               clip->proxy.build_tc_flag= 7;
+                               clip->proxy.build_tc_flag= IMB_TC_RECORD_RUN |
+                                                          IMB_TC_FREE_RUN |
+                                                          IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN;
+
                                if(clip->proxy.build_size_flag==0)
-                                       clip->proxy.build_size_flag= 1;
+                                       clip->proxy.build_size_flag= IMB_PROXY_25;
 
                                if(clip->proxy.quality==0)
                                        clip->proxy.quality= 90;
@@ -12813,6 +12820,12 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                        scene->gm.exitkey = 218; // Blender key code for ESC
                        }
                }
+               {
+                       MovieClip *clip;
+                       for(clip= main->movieclip.first; clip; clip= clip->id.next) {
+                               clip->proxy.build_tc_flag|= IMB_TC_RECORD_RUN_NO_GAPS;
+                       }
+               }
        }
 
        /* WATCH IT!!!: pointers from libdata have not been converted yet here! */
@@ -14343,7 +14356,8 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
 
                                        expand_main(fd, mainptr);
                                        
-                                       /* dang FileData... now new libraries need to be appended to original filedata, it is not a good replacement for the old global (ton) */
+                                       /* dang FileData... now new libraries need to be appended to original filedata,
+                                        * it is not a good replacement for the old global (ton) */
                                        while( fd->mainlist.first ) {
                                                Main *mp= fd->mainlist.first;
                                                BLI_remlink(&fd->mainlist, mp);
@@ -14365,8 +14379,13 @@ static void read_libraries(FileData *basefd, ListBase *mainlist)
                                ID *idn= id->next;
                                if(id->flag & LIB_READ) {
                                        BLI_remlink(lbarray[a], id);
-                                       BKE_reportf(basefd->reports, RPT_ERROR, "LIB ERROR: %s:'%s' unread libblock missing from '%s'\n", BKE_idcode_to_name(GS(id->name)), id->name+2, mainptr->curlib->filepath);
-                                       if(!G.background && basefd->reports)printf("LIB ERROR: %s:'%s' unread libblock missing from '%s'\n", BKE_idcode_to_name(GS(id->name)), id->name+2, mainptr->curlib->filepath);
+                                       BKE_reportf(basefd->reports, RPT_ERROR,
+                                                   "LIB ERROR: %s:'%s' unread libblock missing from '%s'\n",
+                                                   BKE_idcode_to_name(GS(id->name)), id->name+2, mainptr->curlib->filepath);
+                                       if (!G.background && basefd->reports) {
+                                               printf("LIB ERROR: %s:'%s' unread libblock missing from '%s'\n",
+                                                      BKE_idcode_to_name(GS(id->name)), id->name+2, mainptr->curlib->filepath);
+                                       }
                                        change_idid_adr(mainlist, basefd, id, NULL);
 
                                        MEM_freeN(id);