site.js, cleanup stream names again

This commit is contained in:
j 2010-02-08 15:56:25 +05:30
commit 3d36da45af
8 changed files with 90 additions and 52 deletions

View file

@ -306,9 +306,9 @@ class Movie(models.Model):
#stream related fields
'''
'''
stream96p = models.FileField(default=None, blank=True, upload_to=lambda f, x: movie_path(f, '96p'))
stream320 = models.FileField(default=None, blank=True, upload_to=lambda f, x: movie_path(f, '320'))
stream640 = models.FileField(default=None, blank=True, upload_to=lambda f, x: movie_path(f, '640'))
stream_low = models.FileField(default=None, blank=True, upload_to=lambda f, x: movie_path(f, 'low'))
stream_mid = models.FileField(default=None, blank=True, upload_to=lambda f, x: movie_path(f, 'mid'))
stream_high = models.FileField(default=None, blank=True, upload_to=lambda f, x: movie_path(f, 'high'))
#FIXME: is this still required? should this not be aspect ratio? depends on stream???
scene_height = models.IntegerField(null=True, blank=True)
@ -612,10 +612,10 @@ class MovieSort(models.Model):
resolution = models.IntegerField(blank=True)
aspectratio = models.IntegerField('Aspect Ratio', blank=True)
bitrate = models.IntegerField(blank=True)
pixels = models.IntegerField(blank=True)
pixels = models.BigIntegerField(blank=True)
filename = models.IntegerField(blank=True)
files = models.IntegerField(blank=True)
size = models.IntegerField(blank=True)
size = models.BigIntegerField(blank=True)
_private_fields = ('id', 'movie')
#return available sort fields
@ -923,7 +923,7 @@ class Review(models.Model):
if q.count() > 0:
o = q[0]
else:
o = self.objects.create(movie=movie, url=url)
o = self.objects.create(movie=movie, url=g)
o.save()
return o
get_or_create = classmethod(get_or_create)
@ -1044,17 +1044,17 @@ class File(models.Model):
#stream related fields
available = models.BooleanField(default=False)
stream96p = models.FileField(default=None, upload_to=lambda f, x: stream_path(f, '96p'))
stream320 = models.FileField(default=None, upload_to=lambda f, x: stream_path(f, '320'))
stream640 = models.FileField(default=None, upload_to=lambda f, x: stream_path(f, '640'))
stream_low = models.FileField(default=None, upload_to=lambda f, x: stream_path(f, 'low'))
stream_mid = models.FileField(default=None, upload_to=lambda f, x: stream_path(f, 'mid'))
stream_high = models.FileField(default=None, upload_to=lambda f, x: stream_path(f, 'high'))
def timeline_base_url(self):
return '%s/timeline' % os.path.dirname(self.stream96p.url)
return '%s/timeline' % os.path.dirname(self.stream_low.url)
def save_chunk(self, chunk, name='video.ogv'):
if not self.available:
#FIXME: this should use stream96p or stream640 depending on configuration
video = getattr(self, 'stream96p')
#FIXME: this should use stream_low or stream_high depending on configuration
video = getattr(self, 'stream_%s'%settings.VIDEO_PROFILE)
if not video:
video.save(name, chunk)
self.save()
@ -1116,12 +1116,12 @@ class File(models.Model):
self.save()
def extract_timeline(self):
if self.stream640:
video = self.stream640.path
elif stream320:
video = self.stream320.path
elif stream96p:
video = self.stream96p.path
if self.stream_high:
video = self.stream_high.path
elif self.stream_mid:
video = self.stream_mid.path
elif self.stream_low:
video = self.stream_low.path
else:
return False
prefix = os.path.join(os.path.dirname(video), 'timeline')
@ -1132,19 +1132,19 @@ class File(models.Model):
def extract_video(self):
ogg = Firefogg()
if self.stream640:
#320 stream
self.stream320.name = stream_path(self, '320')
self.stream320.save()
ogg.encode(self.stream640.path, self.stream320.path, settings.VIDEO320)
#96p stream
self.stream96p.name = stream_path(self, '96p')
self.stream96p.save()
ogg.encode(self.stream640.path, self.stream96p.path, settings.VIDEO96P)
elif self.stream320:
self.stream96p.name = stream_path(self, '96p')
self.stream96p.save()
ogg.encode(self.stream320.path, self.stream96p.path, settings.VIDEO96P)
if self.stream_high:
#mid stream
self.stream_mid.name = stream_path(self, 'mid')
self.stream_mid.save()
ogg.encode(self.stream_height.path, self.stream_mid.path, settings.VIDEO_MID)
#low stream
self.stream_low.name = stream_path(self, 'low')
self.stream_low.save()
ogg.encode(self.stream_high.path, self.stream_low.path, settings.VIDEO_LOW)
elif self.stream_mid:
self.stream_low.name = stream_path(self, 'low')
self.stream_low.save()
ogg.encode(self.stream_mid.path, self.stream_low.path, settings.VIDEO_LOW)
def extract(self):
#FIXME: do stuff, like create timeline or create smaller videos etc

View file

@ -14,6 +14,7 @@ from django.db.models import Q, Avg, Count
from django.http import HttpResponse
from django.shortcuts import render_to_response, get_object_or_404, get_list_or_404
from django.template import RequestContext
from django.conf import settings
try:
import simplejson as json
@ -62,7 +63,7 @@ def api_hello(request):
if request.user.is_authenticated():
response['data']['user'] = getUserJSON(request.user)
else:
response['data']['user'] = {'name': 'Guest'}
response['data']['user'] = {'name': 'Guest', 'group': 'guest', 'preferences': {}}
return render_to_json_response(response)
def api_error(request):
@ -463,7 +464,7 @@ def api_encodingSettings(request):
'data': {'options': {'videoQuality':...}}}
'''
response = {'status': {'code': 200, 'text': 'ok'}}
response['data'] = {'options': {'preset': 'padma'}}
response['data'] = {'options': settings.VIDEO_ENCODING[settings.VIDEO_PROFILE]}
return render_to_json_response(response)
class UploadForm(forms.Form):
@ -515,8 +516,9 @@ def firefogg_upload(request):
#FIXME: what to do if requested oshash is not in db?
#FIXME: should existing data be reset here? or better, should this fail if an upload was there
f = get_object_or_404(models.File, oshash=request.POST['oshash'])
if f.stream96p:
f.stream96p.delete()
stream = getattr(f, 'stream_%s'%settings.VIDEO_UPLOAD)
if stream:
stream.delete()
f.available = False
f.save()
response = {