X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Flibzmpeg3%2Fstrack.C;fp=cinelerra-5.1%2Flibzmpeg3%2Fstrack.C;h=4bc70976817ede425a0ff6a801d39348c160c116;hb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;hp=0000000000000000000000000000000000000000;hpb=52fcc46226f9df46f9ce9d0566dc568455a7db0b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/libzmpeg3/strack.C b/cinelerra-5.1/libzmpeg3/strack.C new file mode 100644 index 00000000..4bc70976 --- /dev/null +++ b/cinelerra-5.1/libzmpeg3/strack.C @@ -0,0 +1,95 @@ +#include "libzmpeg3.h" + +zstrack_t:: +strack_t(int zid, video_t *vid) +{ + id = zid; + video = vid; +} + +zstrack_t:: +~strack_t() +{ + if( offsets ) delete [] offsets; +} + +zstrack_t:: +strack_t(zstrack_t &strack) +{ + id = strack.id; + video = strack.video; + allocated_offsets = strack.allocated_offsets; + total_offsets = strack.total_offsets; + offsets = new int64_t[allocated_offsets]; + for( int i=0; idone = 1; + ret = 0; + } + rwlock.write_leave(lock); + return ret; +} + +void zstrack_t:: +del_subtitle(subtitle_t *subtitle, int lock) +{ + rwlock.write_enter(lock); + int i = 0; + while( idraw = subtitle->done = -1; + rwlock.write_leave(lock); +} + +void zstrack_t:: +del_all_subtitles() +{ + rwlock.write_enter(); + for( int i=0; idraw = sp->done = -1; + if( sp->force < 0 ) delete sp; + } + total_subtitles = 0; + rwlock.write_leave(); +} + +void zstrack_t:: +del_subtitle(int idx, int lock) +{ + del_subtitle(subtitles[idx], lock); +} +