def init_conversion(self): layout = QtWidgets.QHBoxLayout() self.widgets.convert_to = QtWidgets.QComboBox() self.update_codecs(self.codecs) self.widgets.convert_bitrate = QtWidgets.QComboBox() self.widgets.convert_bitrate.addItems([ f'{x}k' for x in range(32 * self.channels, (256 * self.channels) + 1, 32 * int(self.channels)) ]) self.widgets.convert_bitrate.setCurrentIndex(3) self.widgets.convert_bitrate.currentIndexChanged.connect( lambda: self.page_update()) self.widgets.convert_to.currentIndexChanged.connect( lambda: self.page_update()) layout.addWidget(QtWidgets.QLabel("Conversion: ")) layout.addWidget(self.widgets.convert_to) layout.addWidget(QtWidgets.QLabel("Bitrate: ")) layout.addWidget(self.widgets.convert_bitrate) return layout
def init_modes(self): layout = QtWidgets.QGridLayout() crf_group_box = QtWidgets.QGroupBox() crf_group_box.setStyleSheet("QGroupBox{padding-top:5px; margin-top:-18px}") crf_box_layout = QtWidgets.QHBoxLayout() bitrate_group_box = QtWidgets.QGroupBox() bitrate_group_box.setStyleSheet("QGroupBox{padding-top:5px; margin-top:-18px}") bitrate_box_layout = QtWidgets.QHBoxLayout() # rotation_dir = Path(base_path, 'data', 'rotations') # group_box.setStyleSheet("QGroupBox{padding-top:15px; margin-top:-15px; padding-bottom:-5px}") self.widgets.mode = QtWidgets.QButtonGroup() self.widgets.mode.buttonClicked.connect(self.set_mode) bitrate_radio = QtWidgets.QRadioButton("Bitrate") bitrate_radio.setFixedWidth(80) self.widgets.mode.addButton(bitrate_radio) self.widgets.bitrate = QtWidgets.QComboBox() self.widgets.bitrate.setFixedWidth(250) self.widgets.bitrate.addItems(recommended_bitrates) self.widgets.bitrate.currentIndexChanged.connect(lambda: self.main.build_commands()) self.widgets.bitrate.setCurrentIndex(6) self.widgets.custom_bitrate = QtWidgets.QLineEdit("3000") self.widgets.custom_bitrate.setFixedWidth(100) bitrate_box_layout.addWidget(bitrate_radio) bitrate_box_layout.addWidget(self.widgets.bitrate) bitrate_box_layout.addStretch() bitrate_box_layout.addWidget(QtWidgets.QLabel("Custom:")) bitrate_box_layout.addWidget(self.widgets.custom_bitrate) crf_radio = QtWidgets.QRadioButton("CRF") crf_radio.setChecked(True) crf_radio.setFixedWidth(80) self.widgets.mode.addButton(crf_radio) self.widgets.crf = QtWidgets.QComboBox() self.widgets.crf.setFixedWidth(250) self.widgets.crf.addItems(recommended_crfs) self.widgets.crf.setCurrentIndex(4) self.widgets.crf.currentIndexChanged.connect(lambda: self.main.build_commands()) self.widgets.custom_crf = QtWidgets.QLineEdit("30") self.widgets.custom_crf.setFixedWidth(100) crf_box_layout.addWidget(crf_radio) crf_box_layout.addWidget(self.widgets.crf) crf_box_layout.addStretch() crf_box_layout.addWidget(QtWidgets.QLabel("Custom:")) crf_box_layout.addWidget(self.widgets.custom_crf) bitrate_group_box.setLayout(bitrate_box_layout) crf_group_box.setLayout(crf_box_layout) layout.addWidget(crf_group_box, 0, 0) layout.addWidget(bitrate_group_box, 1, 0) return layout
def init_quality(self): layout = QtWidgets.QHBoxLayout() layout.addWidget(QtWidgets.QLabel('Quality')) self.widgets.quality = QtWidgets.QComboBox() self.widgets.quality.addItems(['realtime', 'good', 'best']) self.widgets.quality.setCurrentIndex(1) self.widgets.quality.currentIndexChanged.connect(lambda: self.main.page_update()) layout.addWidget(self.widgets.quality) return layout
def init_speed(self): layout = QtWidgets.QHBoxLayout() layout.addWidget(QtWidgets.QLabel('Speed')) self.widgets.speed = QtWidgets.QComboBox() self.widgets.speed.addItems([str(x) for x in range(6)]) self.widgets.speed.setCurrentIndex(0) self.widgets.speed.currentIndexChanged.connect(lambda: self.main.page_update()) layout.addWidget(self.widgets.speed) return layout
def init_remove_hdr(self): layout = QtWidgets.QHBoxLayout() layout.addWidget(QtWidgets.QLabel('Remove HDR')) self.widgets.remove_hdr = QtWidgets.QComboBox() self.widgets.remove_hdr.addItems(['No', 'Yes']) self.widgets.remove_hdr.setCurrentIndex(0) self.widgets.remove_hdr.setDisabled(True) self.widgets.remove_hdr.currentIndexChanged.connect(lambda: self.main.page_update()) layout.addWidget(self.widgets.remove_hdr) return layout
def init_video_track_select(self): layout = QtWidgets.QHBoxLayout() self.widgets.video_track = QtWidgets.QComboBox() self.widgets.video_track.addItems([]) self.widgets.video_track.currentIndexChanged.connect( lambda: self.page_update()) layout.addWidget(QtWidgets.QLabel("Video Track "), stretch=0) layout.addWidget(self.widgets.video_track, stretch=1) layout.setSpacing(10) return layout
def init_fps(self): layout = QtWidgets.QHBoxLayout() layout.addWidget(QtWidgets.QLabel("FPS")) self.widgets.fps = QtWidgets.QComboBox() self.widgets.fps.addItems([str(x) for x in range(1, 31)]) self.widgets.fps.setCurrentIndex(14) self.widgets.fps.currentIndexChanged.connect( lambda: self.main.build_commands()) layout.addWidget(self.widgets.fps) return layout
def init_segment_size(self): layout = QtWidgets.QHBoxLayout() layout.addWidget(QtWidgets.QLabel('Segment Size (seconds)')) self.widgets.segment_size = QtWidgets.QComboBox() self.widgets.segment_size.addItems( ["10", "30", "60", "90", "120", "240"]) self.widgets.segment_size.setCurrentIndex(2) self.widgets.segment_size.currentIndexChanged.connect( lambda: self.main.page_update()) layout.addWidget(self.widgets.segment_size) return layout
def init_output_type(self): layout = QtWidgets.QHBoxLayout() self.widgets.convert_to = QtWidgets.QComboBox() self.widgets.convert_to.addItems(list(self.plugins.keys())) layout.addWidget(QtWidgets.QLabel("Output: "), stretch=0) layout.addWidget(self.widgets.convert_to, stretch=1) layout.setSpacing(10) self.widgets.convert_to.currentTextChanged.connect( self.video_options.change_conversion) return layout
def init_dither(self): layout = QtWidgets.QHBoxLayout() layout.addWidget(QtWidgets.QLabel('Dither')) self.widgets.dither = QtWidgets.QComboBox() self.widgets.dither.addItems([ 'sierra2_4a', 'floyd_steinberg', 'sierra2', 'bayer:bayer_scale=1', 'bayer:bayer_scale=2', 'bayer:bayer_scale=3', 'none' ]) self.widgets.dither.setCurrentIndex(0) self.widgets.dither.currentIndexChanged.connect( lambda: self.main.build_commands()) layout.addWidget(self.widgets.dither) return layout