X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.0%2Fdb%2Futils%2Fcpdb.C;fp=cinelerra-5.0%2Fdb%2Futils%2Fcpdb.C;h=0000000000000000000000000000000000000000;hb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;hp=8e966e18373143754f1ea192877a56cd17a610f0;hpb=52fcc46226f9df46f9ce9d0566dc568455a7db0b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.0/db/utils/cpdb.C b/cinelerra-5.0/db/utils/cpdb.C deleted file mode 100644 index 8e966e18..00000000 --- a/cinelerra-5.0/db/utils/cpdb.C +++ /dev/null @@ -1,94 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "../s.C" - -using namespace std; - -// c++ -ggdb cpydb.C - -double -runtime(struct timeval *st) -{ - struct timeval tv; - gettimeofday(&tv,0); - double dt = (tv.tv_sec - st->tv_sec) + - (tv.tv_usec - st->tv_usec) / 1000000.; - return dt; -} - -int del_clip_set(theDb *db, int clip_id) -{ -printf("del clip %d\n",clip_id); - if( db->clip_set.FindId(clip_id) ) return 1; - db->clip_set.Destruct(); - db->clip_set.Deallocate(); - - if( Clip_viewsLoc::ikey_Clip_access(db->clip_views,clip_id).Find() ) return 1; - db->clip_views.Destruct(); - db->clip_views.Deallocate(); - - while( !TimelineLoc::ikey_Sequences(db->timeline,clip_id,0).Locate() ) { - if( clip_id != (int)db->timeline.Clip_id() ) break; - int frame_id = db->timeline.Frame_id(); - db->timeline.Destruct(); - db->timeline.Deallocate(); - if( !TimelineLoc::ikey_Timelines(db->timeline, frame_id).Locate() && - frame_id == (int)db->timeline.Frame_id() ) continue; - if( db->video_frame.FindId(frame_id) ) continue; - db->video_frame.Destruct(); - db->video_frame.Deallocate(); - } - return 0; -} - - -int main(int ac, char **av) -{ - setbuf(stdout,0); - setbuf(stderr,0); - - theDb idb; - Db odb; - if( ac < 3 ) { printf("usage: %s in.db out.db\n",av[0]); exit(1); } - const char *ifn = av[1]; - if( idb.open(ifn) ) { perror(ifn); exit(1); } - const char *ofn = av[2]; - remove(ofn); - int ofd = open(ofn,O_RDWR+O_CREAT+O_TRUNC,0666); - if( ofd < 0 ) { perror(ofn); return 1; } - if( odb.make(ofd) ) { perror(ofn); exit(1); } - struct timeval st; - gettimeofday(&st,0); - -#if 1 - int next_id = 0; - while( !idb.clip_set.LocateId(Db::keyGE,next_id) ) { - next_id = idb.clip_set.id() + 1; - if( Clip_viewsLoc::ikey_Clip_access(idb.clip_views,idb.clip_set.id()).Find() ) { - printf("clip %d, missed\n", idb.clip_set.id()); continue; - } - time_t t = (time_t) idb.clip_views.Access_time(); - long dt = st.tv_sec - t; - // 3 weeks + access count days - if( dt < 3*7*24*60*60 + idb.clip_views.Access_count()*24*60*60 ) - continue; - del_clip_set(&idb, idb.clip_set.id()); - } -#endif - - odb.copy(&idb,idb.objects); - odb.commit(1); - odb.commit(1); - odb.close(); - idb.close(); - - double secs = runtime(&st); - printf("%f secs\n",secs); - return 0; -} -