audio only

This commit is contained in:
j 2011-02-23 12:51:32 +01:00
parent 5df4aea677
commit d7e8d18e35
3 changed files with 21 additions and 4 deletions

View File

@ -101,6 +101,9 @@ class File(models.Model):
self.is_video = False
else:
self.is_video = False
self.display_aspect_ratio = "4:3"
self.width = '320'
self.height = '240'
if 'audio' in self.info and self.info['audio']:
audio = self.info['audio'][0]
self.audio_codec = audio['codec']

View File

@ -98,6 +98,7 @@ def update(request):
response['data']['info'] = [f.file.oshash for f in files.filter(file__info='{}')]
#needs some flag to find those that are actually used main is to generic
response['data']['data'] = [f.file.oshash for f in files.filter(file__is_video=True, file__is_main=True)]
response['data']['data'] += [f.file.oshash for f in files.filter(file__is_audio=True, file__is_main=True)]
response['data']['file'] = [f.file.oshash for f in files.filter(file__is_subtitle=True)]
return render_to_json_response(response)

View File

@ -96,7 +96,7 @@ class Item(models.Model):
published = models.DateTimeField(default=datetime.now, editable=False)
user = models.ForeignKey(User, null=True, related_name='items')
groups = models.ManyToManyField(Group, related_name='items')
groups = models.ManyToManyField(Group, blank=True, related_name='items')
#only items that have data from files are available,
#this is indicated by setting available to True
@ -627,6 +627,18 @@ class Item(models.Model):
return True
return False
videos = filter(check, videos)
else:
audio = self.files.filter(is_main=True, is_audio=True, available=True)
if audio.count()>0:
first = audio[0]
user = first.instances.all()[0].volume.user
#only take videos from same user and with same width/height
def check(v):
if v.instances.filter(volume__user=user).count()>0:
return True
return False
videos = filter(check, audio)
return videos
def update_streams(self):
@ -658,9 +670,9 @@ class Item(models.Model):
os.symlink(files.values()[0], stream.video.path)
stream.save()
if 'video' in stream.info:
extract.timeline(stream.video.path, self.timeline_prefix)
if 'video' in stream.info and stream.info['video']:
v = stream.info['video'][0]
extract.timeline(stream.video.path, self.timeline_prefix)
self.stream_aspect = v['width']/v['height']
self.data['cuts'] = extract.cuts(self.timeline_prefix)
self.data['color'] = extract.average_color(self.timeline_prefix)
@ -787,7 +799,8 @@ class Item(models.Model):
for f in self.main_videos():
for ff in f.frames.all():
frames.append(ff.frame.path)
return frames[int(len(frames)/2)]
if frames:
return frames[int(len(frames)/2)]
def make_icon(self):
frame = self.get_poster_frame_path()