# -*- coding: utf-8 -*- # vi:si:et:sw=4:sts=4:ts=4 from __future__ import division, with_statement from django.db import models from django.contrib.auth.models import User class Timeline(models.Model): class Meta: unique_together = ("user", "name") created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) user = models.ForeignKey(User) name = models.CharField(max_length=255) public = models.BooleanField(default=False) duration = models.FloatField(default=0) #FIXME: how to deal with width/height? def __unicode__(self): return u'%s (%s)' % (self.title, self.user) def editable(self, user): #FIXME: make permissions work if self.user == user or user.is_staff: return True return False ''' #creating a new file from clips seams to work not to bad, needs testing for frame accuracy ffmpeg -i 96p.webm -ss 123.33 -t 3 -vcodec copy -acodec copy 1.webm ffmpeg -i 96p.webm -ss 323.33 -t 4 -vcodec copy -acodec copy 2.webm ffmpeg -i 96p.webm -ss 423.33 -t 1 -vcodec copy -acodec copy 3.webm mkvmerge 1.webm +2.webm +3.webm -o cutup.webm ''' class Clip(models.Model): created = models.DateTimeField(auto_now_add=True) modified = models.DateTimeField(auto_now=True) timeline = models.ForeignKey(Timeline) position = models.IntegerField(default=0) #clip position timeline_position = models.FloatField(default=0) #time on timeline item = models.ForeignKey("item.Item") start = models.FloatField(default=0) end = models.FloatField(default=-1) def __unicode__(self): return u'%s/%0.3f-%0.3f' % (self.item.itemId, self.start, self.end)