version update
[goodguy/cinelerra.git] / cinelerra-5.1 / db / utils / frame_clips.C
1
2 #include<stdio.h>
3 #include<stdarg.h>
4 #include<time.h>
5
6 #include "tdb.h"
7 #include "s.C"
8
9 int main(int ac, char **av)
10 {
11   setbuf(stdout,0);
12   theDb db;
13   db.open(av[1]);
14   //db.access(av[1], 34543, 0);
15   if( !db.opened() || db.error() ) exit(1);
16   if( ac > 2 ) {
17     unsigned int fid = atoi(av[2]);
18     if( TimelineLoc::ikey_Timelines(db.timeline, fid).Locate() ) {
19       printf(" find timeline frame_id(%u) failed\n", fid);
20       return 1;
21     }
22
23     while( db.timeline.Frame_id()==fid ) {
24       int cid = db.timeline.Clip_id();
25       printf(" %d",cid);
26       if( TimelineLoc::rkey_Timelines(db.timeline).Next() ) break;
27     }
28     printf("\n");
29   }
30   else {
31     if( !db.video_frame.FirstId() ) do {
32       unsigned int fid = db.video_frame.id();
33       printf("%u",fid);
34       if( TimelineLoc::ikey_Timelines(db.timeline, fid).Locate() ) {
35         printf(" find timeline frame_id(%u) failed\n", fid);
36         continue;
37       }
38       while( db.timeline.Frame_id()==fid ) {
39         int cid = db.timeline.Clip_id();
40         printf(" %d",cid);
41         if( TimelineLoc::rkey_Timelines(db.timeline).Next() ) break;
42       }
43       printf("\n");
44     } while( !db.video_frame.NextId() );
45   }
46
47   db.close();
48   return 0;
49 }
50