X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.0%2Fcinelerra%2Fcommercials.h;fp=cinelerra-5.0%2Fcinelerra%2Fcommercials.h;h=0000000000000000000000000000000000000000;hb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;hp=466347608007ecad261ccdb0d853c61c43d62f3d;hpb=52fcc46226f9df46f9ce9d0566dc568455a7db0b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.0/cinelerra/commercials.h b/cinelerra-5.0/cinelerra/commercials.h deleted file mode 100644 index 46634760..00000000 --- a/cinelerra-5.0/cinelerra/commercials.h +++ /dev/null @@ -1,204 +0,0 @@ -#ifndef _COMMERCIALS_H_ -#define _COMMERCIALS_H_ - -#include "arraylist.h" -#include "asset.inc" -#include "bcprogress.h" -#include "bcwindow.h" -#include "commercials.inc" -#include "condition.inc" -#include "edit.inc" -#include "edits.inc" -#include "file.inc" -#include "garbage.h" -#include "linklist.h" -#include "mediadb.h" -#include "mwindow.inc" -#include "thread.h" -#include "track.inc" -#include "vframe.inc" -#include "filexml.inc" - - -class Commercials : public Garbage -{ - MediaDb *mdb; - int armed; - int clip_id; - double *clip_weights; - int64_t frame_start, frame_total; - double frame_period; - ArrayList weights; - ArrayList offsets; - ArrayList tracks; - File *scan_file; - - ScanStatus *scan_status; - int update_cut_info(int trk, double position); - int update_caption(int trk, int edt, const char *path); - int update_status(int clip, double start, double end); - - int new_clip(const char *title, int frames, double framerate); - Clips *find_clips(int pid); - int put_weight(VFrame *frame, int no); - int put_frame(VFrame *frame, int no, int group, double offset); - int skim_weights(int track, double position, double iframerate, int iframes); - double abs_err(Snip *snip, double *ap, int j, int len, double iframerate); - double abs_err(double *ap, int len, double iframerate); - int skim_weight(int track); - static int skim_weight(void *vp, int track); -public: - MWindow *mwindow; - int cancelled, muted; - - int newDb(); - void closeDb(); - int openDb(); - int resetDb(); - void commitDb(); - void undoDb(); - int transaction() { return mdb->transaction(); } - int attachDb(int rw=0); - int detachDb(); - - int put_clip(File *file, int track, double position, double length); - int get_frame(File *file, int pid, double position, - uint8_t *tp, int mw, int mh, int ww, int hh); - static double frame_weight(uint8_t *tdat, int rowsz, int width, int height); - int skim_frame(Snips *snips, uint8_t *dat, double position); - int verify_snip(Snip *snip, double weight, double position); - int mute_audio(Clip *clip); - int unmute_audio(); - int test_clip(int clip_id, int track, double position, double &pos); - int verify_clip(int clip_id, int track, double position, double &pos); - int write_ads(const char *filename); - int read_ads(const char *filename); - void dump_ads(); - int verify_edit(Track *track, Edit *edit, double start, double end); - Edit * cut_edit(Track *track, Edit *edit, int64_t clip_start, int64_t clip_end); - int scan_audio(int vstream, double start, double end); - int scan_media(); - int scan_video(); - int scan_asset(Asset *asset, Track *vtrack, Edit *edit); - int scan_clips(Track *vtrack, Edit *edit); - int get_image(int id, uint8_t *dat, int &w, int &h); - int get_clip_seq_no(int clip_id, int &seq_no, double &offset, int &frame_id); - MediaDb *media_db() { return mdb; } - - Commercials(MWindow *mwindow); - ~Commercials(); -}; - -class ScanStatusBar : public BC_ProgressBar -{ - int tick, limit; -public: - int update(int64_t position) { - if( --tick >= 0 ) return 0; - tick = limit; - return BC_ProgressBar::update(position); - } - int update_length(int64_t length) { - tick = limit = length / 100; - return BC_ProgressBar::update_length(length); - } - ScanStatusBar(int x, int y, int w, int64_t length, int do_text = 1) : - BC_ProgressBar(x, y, w, length, do_text) { - tick = limit = length / 100; - } - ~ScanStatusBar() {} -}; - -class ScanStatusGUI : public BC_Window -{ - ScanStatus *sswindow; - int nbars, nlines; - BC_Title **texts; - ScanStatusBar **bars; - friend class ScanStatus; -public: - ScanStatusGUI(ScanStatus *sswindow, int x, int y, int nlines, int nbars); - ~ScanStatusGUI(); - - int create_objects(const char *text); -}; - -class ScanStatus : public Thread -{ - int &status; - void stop(); - void run(); -public: - Commercials *commercials; - ScanStatusGUI *gui; - - ScanStatus(Commercials *commercials, int x, int y, - int nlines, int nbars, int &status, const char *text); - ~ScanStatus(); - - int update_length(int i, int64_t length); - int update_position(int i, int64_t position); - int update_text(int i, const char *text); -}; - - -class SdbPacket : public ListItem -{ -public: - enum sdb_packet_type { sdb_none, sdb_skim_frame, } type; - SkimDbThread *thread; - void start(); - virtual void run() = 0; - - SdbPacket(sdb_packet_type ty, SkimDbThread *tp) : type(ty), thread(tp) {} - ~SdbPacket() {} -}; - -class SdbPacketQueue : public List, public Mutex -{ -public: - SdbPacket *get_packet(); - void put_packet(SdbPacket *p); -}; - -class SdbSkimFrame : public SdbPacket -{ -public: - int pid; - int64_t framenum; - double framerate; - uint8_t dat[SFRM_SZ]; - - void load(int pid,int64_t framenum,double framerate, - uint8_t *idata,int mw,int mh,int iw,int ih); - void run(); - - SdbSkimFrame(SkimDbThread *t) : SdbPacket(sdb_skim_frame, t) {} - ~SdbSkimFrame() {} -}; - - -class SkimDbThread : public Thread -{ - SdbPacketQueue active_packets; - Condition *input_lock; - friend class SdbSkimFrame; -public: - int done; - SdbPacketQueue skim_frames; - Commercials *commercials; - Snips *snips; - - void start(Commercials *commercials); - void stop(); - void run(); - void put_packet(SdbPacket *p); - int skim(int pid,int64_t framenum,double framerate, - uint8_t *idata,int mw,int mh,int iw,int ih); - - SkimDbThread(); - ~SkimDbThread(); -}; - - -#endif