def _loadProjectSettings(self, element): self.debug("element:%r", element) settings = ExportSettings() settings.videowidth = int(element.attrib["videowidth"]) settings.videoheight = int(element.attrib["videoheight"]) if "render-scale" in element.attrib: settings.render_scale = int(element.attrib["render-scale"]) settings.videorate = gst.Fraction(int(element.attrib["videorate-num"]), int(element.attrib["videorate-denom"])) settings.videopar = gst.Fraction(int(element.attrib["videopar-num"]), int(element.attrib["videopar-denom"])) settings.audiochannels = int(element.attrib["audiochannels"]) settings.audiorate = int(element.attrib["audiorate"]) settings.audiodepth = int(element.attrib["audiodepth"]) settings.aencoder = element.attrib["aencoder"] settings.vencoder = element.attrib["vencoder"] settings.muxer = element.attrib["muxer"] sett = element.find("container-settings") if sett != None: settings.containersettings = self._deserializeDict(sett) sett = element.find("vcodec-settings") if sett != None: settings.vcodecsettings = self._deserializeDict(sett) sett = element.find("acodec-settings") if sett != None: settings.acodecsettings = self._deserializeDict(sett) return settings
def getAutoSettings(self): """ Computes and returns smart settings for the project. If the project only has one source, it will be that source's settings. If it has more than one, it will return the largest setting that suits all contained sources. """ settings = ExportSettings() if not self.timeline: self.warning("project doesn't have a timeline, returning default settings") return settings # FIXME: this is ugly, but rendering for now assumes at most one audio # and one video tracks have_audio = have_video = False for track in self.timeline.tracks: if isinstance(track.stream, VideoStream) and track.duration != 0: have_video = True elif isinstance(track.stream, AudioStream) and track.duration != 0: have_audio = True if not have_audio: settings.aencoder = None if not have_video: settings.vencoder = None return settings
def _loadProjectSettings(self, element): self.debug("element:%r", element) settings = ExportSettings() settings.videowidth = int(element.attrib["videowidth"]) settings.videoheight = int(element.attrib["videoheight"]) settings.videorate = gst.Fraction( int(element.attrib["videorate-num"]), int(element.attrib["videorate-denom"])) settings.videopar = gst.Fraction(int(element.attrib["videopar-num"]), int(element.attrib["videopar-denom"])) settings.audiochannels = int(element.attrib["audiochannels"]) settings.audiorate = int(element.attrib["audiorate"]) settings.audiodepth = int(element.attrib["audiodepth"]) settings.aencoder = element.attrib["aencoder"] or None settings.vencoder = element.attrib["vencoder"] or None settings.muxer = element.attrib["muxer"] sett = element.find("container-settings") if sett != None: settings.containersettings = self._deserializeDict(sett) sett = element.find("vcodec-settings") if sett != None: settings.vcodecsettings = self._deserializeDict(sett) sett = element.find("acodec-settings") if sett != None: settings.acodecsettings = self._deserializeDict(sett) return settings
def getAutoSettings(self): """ Computes and returns smart settings for the project. If the project only has one source, it will be that source's settings. If it has more than one, it will return the largest setting that suits all contained sources. """ settings = ExportSettings() if not self.timeline: self.warning( "project doesn't have a timeline, returning default settings") return settings # FIXME: this is ugly, but rendering for now assumes at most one audio # and one video tracks have_audio = have_video = False for track in self.timeline.tracks: if isinstance(track.stream, VideoStream) and track.duration != 0: have_video = True elif isinstance(track.stream, AudioStream) and track.duration != 0: have_audio = True if not have_audio: settings.aencoder = None if not have_video: settings.vencoder = None return settings