+++ /dev/null
-#include<stdio.h>
-#include<stdarg.h>
-#include<time.h>
-
-#include "tdb.h"
-#include "s.C"
-
-void write_pbm(uint8_t *tp, int w, int h, const char *fmt, ...)
-{
- va_list ap; va_start(ap, fmt);
- char fn[256]; vsnprintf(fn, sizeof(fn), fmt, ap);
- va_end(ap);
- FILE *fp = !strcmp(fn,"-") ? stdout : fopen(fn,"w");
- if( fp ) {
- fprintf(fp,"P5\n%d %d\n255\n",w,h);
- fwrite(tp,w,h,fp);
- fclose(fp);
- }
-}
-
-int main(int ac, char **av)
-{
- int ret; setbuf(stdout,0);
- theDb db;
- db.open(av[1]);
- //db.access(av[1], 34543, 0);
- if( !db.opened() || db.error() ) exit(1);
-
- if( !(ret=db.clip_set.FindId(atoi(av[2]))) ) {
- int cid = db.clip_set.id();
-// printf("clip_set %d, frames %d", cid, db.clip_set.Frames());
-// printf(" prefix %d/suffix %d\n", db.clip_set.Prefix_size(),db.clip_set.Suffix_size());
- TimelineLoc::ikey_Sequences ikey(db.timeline,cid,0);
- if( (ret=ikey.Locate()) || (int)db.timeline.Clip_id() != cid ) {
- printf("missed seq for clip_set %d\n",cid);
- exit(1);
- }
- const char *apath = db.clip_set._Asset_path();
- const char *cp = strrchr(apath,'/');
- if( cp ) apath = cp+1;
- int fid = -1, n = 0;
- TimelineLoc::rkey_Sequences rkey(db.timeline);
- do {
- if( (int)db.timeline.Clip_id() != cid ) break;
- //if( fid == (int)db.timeline.Frame_id() ) continue;
- int seq = db.timeline.Sequence_no();
- fid = db.timeline.Frame_id();
- if( (ret=db.video_frame.FindId(fid)) ) {
- printf("missed frame %d(%d) in clip_set %d\n", seq,fid,cid);
- }
- printf("%4d %4d %6d %f %f %f %f %f\n", n, seq, db.video_frame.id(),
- db.video_frame.Frame_mean(), db.video_frame.Frame_std_dev(),
- db.video_frame.Frame_cx(), db.video_frame.Frame_cy(),
- db.video_frame.Frame_moment());
- if( ac > 3 ) {
- int w = 80, h = 45;
- uint8_t *dat = db.video_frame._Frame_data();
- write_pbm(dat,w,h,"%s/c%04df%03d.pbm",av[3],cid,n);
- }
- ++n;
- } while( !(ret=rkey.Next()) );
- }
-
- db.close();
- return 0;
-}
-