aboutsummaryrefslogtreecommitdiffstats
path: root/lvc/__init__.py
blob: 1564ac37117671a1f21d78e96ddd9ce0dd873d9e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import os

import multiprocessing
from lvc import converter
from lvc import conversion
from lvc import signals
from lvc import video


class Application(signals.SignalEmitter):

    def __init__(self, simultaneous=None):
        signals.SignalEmitter.__init__(self)
        if simultaneous is None:
            try:
                simultaneous = multiprocessing.cpu_count()
            except NotImplementedError:
                pass
        self.converter_manager = converter.ConverterManager()
        self.conversion_manager = conversion.ConversionManager(simultaneous)
        self.started = False

    def startup(self):
        if self.started:
            return
        self.converter_manager.startup()
        self.started = True

    def start_conversion(self, filename, converter_id):
        self.startup()
        converter = self.converter_manager.get_by_id(converter_id)
        v = video.VideoFile(filename)
        return self.conversion_manager.start_conversion(v, converter)

    def run(self):
        raise NotImplementedError