Added Record run no gaps timecode for movie clips.
authorSergey Sharybin <sergey.vfx@gmail.com>
Wed, 21 Dec 2011 11:01:08 +0000 (11:01 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Wed, 21 Dec 2011 11:01:08 +0000 (11:01 +0000)
Also get rid of hardcoded constants in readfile and use constants from ImBuf headers.

source/blender/blenkernel/intern/movieclip.c
source/blender/blenloader/CMakeLists.txt
source/blender/blenloader/SConscript
source/blender/blenloader/intern/readfile.c
source/blender/makesrna/intern/rna_movieclip.c

index 75d8ec5..736c889 100644 (file)
@@ -372,7 +372,10 @@ static MovieClip *movieclip_alloc(const char *name)
        BKE_tracking_init_settings(&clip->tracking);
 
        clip->proxy.build_size_flag= IMB_PROXY_25;
-       clip->proxy.build_tc_flag= IMB_TC_RECORD_RUN|IMB_TC_FREE_RUN|IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN;
+       clip->proxy.build_tc_flag= IMB_TC_RECORD_RUN |
+                                  IMB_TC_FREE_RUN |
+                                  IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN |
+                                  IMB_TC_RECORD_RUN_NO_GAPS;
        clip->proxy.quality= 90;
 
        return clip;
index 9cf7217..35271f7 100644 (file)
@@ -32,6 +32,7 @@ set(INC
        ../nodes
        ../render/extern/include
        ../../../intern/guardedalloc
+       ../imbuf
 )
 
 set(INC_SYS
index d5d2df3..0333eab 100644 (file)
@@ -5,7 +5,7 @@ sources = env.Glob('intern/*.c')
 
 incs = '. #/intern/guardedalloc ../blenlib ../blenkernel'
 incs += ' ../makesdna ../editors/include'
-incs += ' ../render/extern/include ../makesrna ../nodes'
+incs += ' ../render/extern/include ../makesrna ../nodes ../imbuf'
 
 incs += ' ' + env['BF_ZLIB_INC']
 
index 593b526..bf40a3e 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
@@ -12588,10 +12590,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;
@@ -12731,6 +12735,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! */
index 3b1ac8f..fbc6a01 100644 (file)
@@ -78,6 +78,7 @@ static void rna_def_movieclip_proxy(BlenderRNA *brna)
                {IMB_TC_RECORD_RUN, "RECORD_RUN", 0, "Record Run", "Use images in the order they are recorded"},
                {IMB_TC_FREE_RUN, "FREE_RUN", 0, "Free Run", "Use global timestamp written by recording device"},
                {IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN, "FREE_RUN_REC_DATE", 0, "Free Run (rec date)", "Interpolate a global timestamp using the record date and time written by recording device"},
+               {IMB_TC_RECORD_RUN_NO_GAPS, "FREE_RUN_NO_GAPS", 0, "Free Run No Gaps", "Record run, but ignore timecode, changes in framerate or dropouts"},
                {0, NULL, 0, NULL, NULL}};
 
        srna = RNA_def_struct(brna, "MovieClipProxy", NULL);