Esempio n. 1
0
class RenderPresetManager(PresetManager):

    default_path = get_renderpresets_dir()
    user_path = os.path.join(xdg_data_home(), 'render_presets')

    def _loadSection(self, filepath):
        parser = json.loads(open(filepath).read())

        name = parser["name"]
        container = parser["container"]
        acodec = parser["acodec"]
        vcodec = parser["vcodec"]

        cached_encs = CachedEncoderList()
        if (acodec not in [fact.get_name() for fact in cached_encs.aencoders]
        or vcodec not in [fact.get_name() for fact in cached_encs.vencoders]
        or container not in [fact.get_name() for fact in cached_encs.muxers]):
            return

        try:
            width = parser["width"]
            height = parser["height"]
        except:
            width = 0
            height = 0

        framerate_num = parser["framerate-num"]
        framerate_denom = parser["framerate-denom"]
        framerate = Gst.Fraction(framerate_num, framerate_denom)

        channels = parser["channels"]
        sample_rate = parser["sample-rate"]

        self.addPreset(name, {
            "container": container,
            "acodec": acodec,
            "vcodec": vcodec,
            "width": width,
            "height": height,
            "frame-rate": framerate,
            "channels": channels,
            "sample-rate": sample_rate,
            "filepath": filepath,
        })

    def _saveSection(self, fout, section):
        values = self.presets[section]
        data = json.dumps({
            "name": section,
            "container": str(values["container"]),
            "acodec": str(values["acodec"]),
            "vcodec": str(values["vcodec"]),
            "width": int(values["width"]),
            "height": int(values["height"]),
            "framerate-num": values["frame-rate"].num,
            "framerate-denom": values["frame-rate"].denom,
            "channels": values["channels"],
            "sample-rate": int(values["sample-rate"]),
        }, indent=4)
        fout.write(data)
Esempio n. 2
0
 def __init__(self):
     default_path = get_renderpresets_dir()
     user_path = os.path.join(xdg_data_home(), 'render_presets')
     PresetManager.__init__(self, default_path, user_path)
Esempio n. 3
0
 def __init__(self, system, encoders):
     default_path = get_renderpresets_dir()
     user_path = os.path.join(xdg_data_home(), 'render_presets')
     PresetManager.__init__(self, default_path, user_path, system)
     self.encoders = encoders
Esempio n. 4
0
 def __init__(self, system, encoders):
     default_path = get_renderpresets_dir()
     user_path = os.path.join(xdg_data_home(), 'render_presets')
     PresetManager.__init__(self, default_path, user_path, system)
     self.encoders = encoders