Bitrate works correctly and set/save window size

This commit is contained in:
Jack 2024-09-16 19:23:24 -04:00
parent 936e914ffb
commit b2ee0e0d53
5 changed files with 98 additions and 96 deletions

View File

@ -45,26 +45,26 @@ class Ui_TinyblastOptions(object):
font.setPointSize(28)
font.setBold(True)
self.Title.setFont(font)
self.Title.setAlignment(Qt.AlignCenter)
self.Title.setAlignment(Qt.AlignmentFlag.AlignCenter)
self.verticalLayout.addWidget(self.Title)
self.scrollArea = QScrollArea(self.centralwidget)
self.scrollArea.setObjectName(u"scrollArea")
self.scrollArea.setFrameShape(QFrame.Box)
self.scrollArea.setFrameShadow(QFrame.Sunken)
self.scrollArea.setSizeAdjustPolicy(QAbstractScrollArea.AdjustIgnored)
self.scrollArea.setFrameShape(QFrame.Shape.Box)
self.scrollArea.setFrameShadow(QFrame.Shadow.Sunken)
self.scrollArea.setSizeAdjustPolicy(QAbstractScrollArea.SizeAdjustPolicy.AdjustIgnored)
self.scrollArea.setWidgetResizable(True)
self.scrollAreaWidgetContents = QWidget()
self.scrollAreaWidgetContents.setObjectName(u"scrollAreaWidgetContents")
self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 533, 295))
self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 533, 296))
self.verticalLayout_3 = QVBoxLayout(self.scrollAreaWidgetContents)
self.verticalLayout_3.setObjectName(u"verticalLayout_3")
self.gridLayout = QGridLayout()
self.gridLayout.setObjectName(u"gridLayout")
self.filePathLabel = QLabel(self.scrollAreaWidgetContents)
self.filePathLabel.setObjectName(u"filePathLabel")
self.filePathLabel.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.filePathLabel.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout.addWidget(self.filePathLabel, 10, 0, 1, 1)
@ -72,7 +72,7 @@ class Ui_TinyblastOptions(object):
self.qualitySlider.setObjectName(u"qualitySlider")
self.qualitySlider.setMaximum(100)
self.qualitySlider.setSliderPosition(50)
self.qualitySlider.setOrientation(Qt.Horizontal)
self.qualitySlider.setOrientation(Qt.Orientation.Horizontal)
self.gridLayout.addWidget(self.qualitySlider, 2, 2, 1, 2)
@ -90,14 +90,13 @@ class Ui_TinyblastOptions(object):
self.encodingLabel = QLabel(self.scrollAreaWidgetContents)
self.encodingLabel.setObjectName(u"encodingLabel")
self.encodingLabel.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.encodingLabel.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout.addWidget(self.encodingLabel, 1, 0, 1, 1)
self.displaySizeComboBox = QComboBox(self.scrollAreaWidgetContents)
self.displaySizeComboBox.addItem("")
self.displaySizeComboBox.addItem("")
self.displaySizeComboBox.addItem("")
self.displaySizeComboBox.setObjectName(u"displaySizeComboBox")
self.displaySizeComboBox.setMinimumSize(QSize(170, 0))
self.displaySizeComboBox.setMaximumSize(QSize(170, 16777215))
@ -106,7 +105,7 @@ class Ui_TinyblastOptions(object):
self.displaySizeLabel = QLabel(self.scrollAreaWidgetContents)
self.displaySizeLabel.setObjectName(u"displaySizeLabel")
self.displaySizeLabel.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.displaySizeLabel.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout.addWidget(self.displaySizeLabel, 4, 0, 1, 1)
@ -126,13 +125,13 @@ class Ui_TinyblastOptions(object):
self.framePaddingSlider.setObjectName(u"framePaddingSlider")
self.framePaddingSlider.setMaximum(10)
self.framePaddingSlider.setSliderPosition(4)
self.framePaddingSlider.setOrientation(Qt.Horizontal)
self.framePaddingSlider.setOrientation(Qt.Orientation.Horizontal)
self.gridLayout.addWidget(self.framePaddingSlider, 7, 2, 1, 2)
self.framePaddingLabel = QLabel(self.scrollAreaWidgetContents)
self.framePaddingLabel.setObjectName(u"framePaddingLabel")
self.framePaddingLabel.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.framePaddingLabel.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout.addWidget(self.framePaddingLabel, 7, 0, 1, 1)
@ -141,19 +140,19 @@ class Ui_TinyblastOptions(object):
self.scaleSlider.setMaximum(1000)
self.scaleSlider.setValue(1000)
self.scaleSlider.setSliderPosition(1000)
self.scaleSlider.setOrientation(Qt.Horizontal)
self.scaleSlider.setOrientation(Qt.Orientation.Horizontal)
self.gridLayout.addWidget(self.scaleSlider, 6, 2, 1, 2)
self.saveToFileLabel = QLabel(self.scrollAreaWidgetContents)
self.saveToFileLabel.setObjectName(u"saveToFileLabel")
self.saveToFileLabel.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.saveToFileLabel.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout.addWidget(self.saveToFileLabel, 9, 0, 1, 1)
self.scaleLabel = QLabel(self.scrollAreaWidgetContents)
self.scaleLabel.setObjectName(u"scaleLabel")
self.scaleLabel.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.scaleLabel.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout.addWidget(self.scaleLabel, 6, 0, 1, 1)
@ -161,7 +160,7 @@ class Ui_TinyblastOptions(object):
self.formattingLabel.setObjectName(u"formattingLabel")
self.formattingLabel.setMinimumSize(QSize(150, 0))
self.formattingLabel.setMaximumSize(QSize(150, 16777215))
self.formattingLabel.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.formattingLabel.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout.addWidget(self.formattingLabel, 0, 0, 1, 1)
@ -174,14 +173,14 @@ class Ui_TinyblastOptions(object):
self.qualityLabel = QLabel(self.scrollAreaWidgetContents)
self.qualityLabel.setObjectName(u"qualityLabel")
self.qualityLabel.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter)
self.qualityLabel.setAlignment(Qt.AlignmentFlag.AlignRight|Qt.AlignmentFlag.AlignTrailing|Qt.AlignmentFlag.AlignVCenter)
self.gridLayout.addWidget(self.qualityLabel, 2, 0, 1, 1)
self.scaleSpinBox = QDoubleSpinBox(self.scrollAreaWidgetContents)
self.scaleSpinBox.setObjectName(u"scaleSpinBox")
self.scaleSpinBox.setButtonSymbols(QAbstractSpinBox.NoButtons)
self.scaleSpinBox.setCorrectionMode(QAbstractSpinBox.CorrectToNearestValue)
self.scaleSpinBox.setButtonSymbols(QAbstractSpinBox.ButtonSymbols.NoButtons)
self.scaleSpinBox.setCorrectionMode(QAbstractSpinBox.CorrectionMode.CorrectToNearestValue)
self.scaleSpinBox.setMaximum(1.000000000000000)
self.scaleSpinBox.setValue(1.000000000000000)
@ -189,8 +188,8 @@ class Ui_TinyblastOptions(object):
self.qualitySpinBox = QSpinBox(self.scrollAreaWidgetContents)
self.qualitySpinBox.setObjectName(u"qualitySpinBox")
self.qualitySpinBox.setButtonSymbols(QAbstractSpinBox.NoButtons)
self.qualitySpinBox.setCorrectionMode(QAbstractSpinBox.CorrectToNearestValue)
self.qualitySpinBox.setButtonSymbols(QAbstractSpinBox.ButtonSymbols.NoButtons)
self.qualitySpinBox.setCorrectionMode(QAbstractSpinBox.CorrectionMode.CorrectToNearestValue)
self.qualitySpinBox.setMinimum(0)
self.qualitySpinBox.setMaximum(100)
self.qualitySpinBox.setValue(50)
@ -199,8 +198,8 @@ class Ui_TinyblastOptions(object):
self.framePaddingSpinBox = QSpinBox(self.scrollAreaWidgetContents)
self.framePaddingSpinBox.setObjectName(u"framePaddingSpinBox")
self.framePaddingSpinBox.setButtonSymbols(QAbstractSpinBox.NoButtons)
self.framePaddingSpinBox.setCorrectionMode(QAbstractSpinBox.CorrectToNearestValue)
self.framePaddingSpinBox.setButtonSymbols(QAbstractSpinBox.ButtonSymbols.NoButtons)
self.framePaddingSpinBox.setCorrectionMode(QAbstractSpinBox.CorrectionMode.CorrectToNearestValue)
self.framePaddingSpinBox.setMaximum(10)
self.framePaddingSpinBox.setValue(4)
@ -208,10 +207,10 @@ class Ui_TinyblastOptions(object):
self.widthSpinBox = QSpinBox(self.scrollAreaWidgetContents)
self.widthSpinBox.setObjectName(u"widthSpinBox")
self.widthSpinBox.setEnabled(False)
self.widthSpinBox.setEnabled(True)
self.widthSpinBox.setMaximumSize(QSize(80, 16777215))
self.widthSpinBox.setButtonSymbols(QAbstractSpinBox.NoButtons)
self.widthSpinBox.setCorrectionMode(QAbstractSpinBox.CorrectToNearestValue)
self.widthSpinBox.setButtonSymbols(QAbstractSpinBox.ButtonSymbols.NoButtons)
self.widthSpinBox.setCorrectionMode(QAbstractSpinBox.CorrectionMode.CorrectToNearestValue)
self.widthSpinBox.setMaximum(999999999)
self.widthSpinBox.setValue(1920)
@ -219,9 +218,9 @@ class Ui_TinyblastOptions(object):
self.heightSpinBox = QSpinBox(self.scrollAreaWidgetContents)
self.heightSpinBox.setObjectName(u"heightSpinBox")
self.heightSpinBox.setEnabled(False)
self.heightSpinBox.setEnabled(True)
self.heightSpinBox.setMaximumSize(QSize(80, 16777215))
self.heightSpinBox.setButtonSymbols(QAbstractSpinBox.NoButtons)
self.heightSpinBox.setButtonSymbols(QAbstractSpinBox.ButtonSymbols.NoButtons)
self.heightSpinBox.setMaximum(999999999)
self.heightSpinBox.setValue(1080)
@ -289,7 +288,7 @@ class Ui_TinyblastOptions(object):
TinyblastOptions.setCentralWidget(self.centralwidget)
self.menubar = QMenuBar(TinyblastOptions)
self.menubar.setObjectName(u"menubar")
self.menubar.setGeometry(QRect(0, 0, 551, 21))
self.menubar.setGeometry(QRect(0, 0, 551, 20))
self.menuFile = QMenu(self.menubar)
self.menuFile.setObjectName(u"menuFile")
self.menuHelp = QMenu(self.menubar)
@ -309,16 +308,15 @@ class Ui_TinyblastOptions(object):
def retranslateUi(self, TinyblastOptions):
TinyblastOptions.setWindowTitle(QCoreApplication.translate("TinyblastOptions", u"Tinyblast Options", None))
self.actionSave_Settings.setText(QCoreApplication.translate("TinyblastOptions", u"Save Settings", None))
self.actionReset_Settings.setText(QCoreApplication.translate("TinyblastOptions", u"Reset Settings", None))
self.actionHelp_on_Tinyblas_Options.setText(QCoreApplication.translate("TinyblastOptions", u"Help on Tinyblas Options", None))
self.actionSave_Settings.setText(QCoreApplication.translate("TinyblastOptions", u"(TODO) Save Settings", None))
self.actionReset_Settings.setText(QCoreApplication.translate("TinyblastOptions", u"(TODO) Reset Settings", None))
self.actionHelp_on_Tinyblas_Options.setText(QCoreApplication.translate("TinyblastOptions", u"(TODO) Help on Tinyblast Options", None))
self.Title.setText(QCoreApplication.translate("TinyblastOptions", u"Tinyblast", None))
self.filePathLabel.setText(QCoreApplication.translate("TinyblastOptions", u"File Path", None))
self.blankLabel.setText("")
self.encodingLabel.setText(QCoreApplication.translate("TinyblastOptions", u"Encoding", None))
self.displaySizeComboBox.setItemText(0, QCoreApplication.translate("TinyblastOptions", u"From Window", None))
self.displaySizeComboBox.setItemText(0, QCoreApplication.translate("TinyblastOptions", u"Custom", None))
self.displaySizeComboBox.setItemText(1, QCoreApplication.translate("TinyblastOptions", u"From Render Settings", None))
self.displaySizeComboBox.setItemText(2, QCoreApplication.translate("TinyblastOptions", u"Custom", None))
self.displaySizeLabel.setText(QCoreApplication.translate("TinyblastOptions", u"Display Size", None))
self.saveToFileCheckBox.setText("")

View File

@ -21,7 +21,6 @@
<font>
<family>Dubai</family>
<pointsize>28</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
@ -29,20 +28,20 @@
<string>Tinyblast</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QScrollArea" name="scrollArea">
<property name="frameShape">
<enum>QFrame::Box</enum>
<enum>QFrame::Shape::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
<enum>QFrame::Shadow::Sunken</enum>
</property>
<property name="sizeAdjustPolicy">
<enum>QAbstractScrollArea::AdjustIgnored</enum>
<enum>QAbstractScrollArea::SizeAdjustPolicy::AdjustIgnored</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
@ -53,7 +52,7 @@
<x>0</x>
<y>0</y>
<width>533</width>
<height>295</height>
<height>296</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
@ -65,7 +64,7 @@
<string>File Path</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
@ -78,7 +77,7 @@
<number>50</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -92,7 +91,7 @@
<item row="8" column="0" colspan="4">
<widget class="Line" name="line_01">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -102,7 +101,7 @@
<string>Encoding</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
@ -122,7 +121,7 @@
</property>
<item>
<property name="text">
<string>From Window</string>
<string>Custom</string>
</property>
</item>
<item>
@ -130,11 +129,6 @@
<string>From Render Settings</string>
</property>
</item>
<item>
<property name="text">
<string>Custom</string>
</property>
</item>
</widget>
</item>
<item row="4" column="0">
@ -143,7 +137,7 @@
<string>Display Size</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
@ -172,7 +166,7 @@
<number>4</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -182,7 +176,7 @@
<string>Frame Padding</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
@ -198,7 +192,7 @@
<number>1000</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -208,7 +202,7 @@
<string>Save to File</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
@ -218,7 +212,7 @@
<string>Scale</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
@ -240,14 +234,14 @@
<string>Format</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="0" colspan="4">
<widget class="Line" name="line_00">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
@ -257,17 +251,17 @@
<string>Quality</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QDoubleSpinBox" name="scaleSpinBox">
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
<enum>QAbstractSpinBox::ButtonSymbols::NoButtons</enum>
</property>
<property name="correctionMode">
<enum>QAbstractSpinBox::CorrectToNearestValue</enum>
<enum>QAbstractSpinBox::CorrectionMode::CorrectToNearestValue</enum>
</property>
<property name="maximum">
<double>1.000000000000000</double>
@ -280,10 +274,10 @@
<item row="2" column="1">
<widget class="QSpinBox" name="qualitySpinBox">
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
<enum>QAbstractSpinBox::ButtonSymbols::NoButtons</enum>
</property>
<property name="correctionMode">
<enum>QAbstractSpinBox::CorrectToNearestValue</enum>
<enum>QAbstractSpinBox::CorrectionMode::CorrectToNearestValue</enum>
</property>
<property name="minimum">
<number>0</number>
@ -299,10 +293,10 @@
<item row="7" column="1">
<widget class="QSpinBox" name="framePaddingSpinBox">
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
<enum>QAbstractSpinBox::ButtonSymbols::NoButtons</enum>
</property>
<property name="correctionMode">
<enum>QAbstractSpinBox::CorrectToNearestValue</enum>
<enum>QAbstractSpinBox::CorrectionMode::CorrectToNearestValue</enum>
</property>
<property name="maximum">
<number>10</number>
@ -315,7 +309,7 @@
<item row="5" column="1">
<widget class="QSpinBox" name="widthSpinBox">
<property name="enabled">
<bool>false</bool>
<bool>true</bool>
</property>
<property name="maximumSize">
<size>
@ -324,10 +318,10 @@
</size>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
<enum>QAbstractSpinBox::ButtonSymbols::NoButtons</enum>
</property>
<property name="correctionMode">
<enum>QAbstractSpinBox::CorrectToNearestValue</enum>
<enum>QAbstractSpinBox::CorrectionMode::CorrectToNearestValue</enum>
</property>
<property name="maximum">
<number>999999999</number>
@ -340,7 +334,7 @@
<item row="5" column="2">
<widget class="QSpinBox" name="heightSpinBox">
<property name="enabled">
<bool>false</bool>
<bool>true</bool>
</property>
<property name="maximumSize">
<size>
@ -349,7 +343,7 @@
</size>
</property>
<property name="buttonSymbols">
<enum>QAbstractSpinBox::NoButtons</enum>
<enum>QAbstractSpinBox::ButtonSymbols::NoButtons</enum>
</property>
<property name="maximum">
<number>999999999</number>
@ -517,7 +511,7 @@
<x>0</x>
<y>0</y>
<width>551</width>
<height>21</height>
<height>20</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
@ -538,17 +532,17 @@
</widget>
<action name="actionSave_Settings">
<property name="text">
<string>Save Settings</string>
<string>(TODO) Save Settings</string>
</property>
</action>
<action name="actionReset_Settings">
<property name="text">
<string>Reset Settings</string>
<string>(TODO) Reset Settings</string>
</property>
</action>
<action name="actionHelp_on_Tinyblas_Options">
<property name="text">
<string>Help on Tinyblas Options</string>
<string>(TODO) Help on Tinyblast Options</string>
</property>
</action>
</widget>

BIN
asdf.mp4

Binary file not shown.

View File

@ -12,7 +12,7 @@ from ui.tinyblast_options import Ui_TinyblastOptions
from PySide6 import QtCore
from PySide6.QtWidgets import QMainWindow, QFileDialog
from PySide6.QtCore import QCoreApplication
from PySide6.QtCore import QCoreApplication, QSettings
import shiboken6
# Global variable to store the scriptJob ID
@ -155,17 +155,20 @@ class Tinyblast(ompx.MPxCommand):
self.codec = 'libx265'
self.bitrate = '5m'
self.pixel_format = 'yuv420p'
self.resolution = (cmds.getAttr("defaultResolution.width"), cmds.getAttr("defaultResolution.height"))
self.resolution = (1920, 1080)
# self.resolution = (cmds.getAttr("defaultResolution.width"), cmds.getAttr("defaultResolution.height"))
self.percent = '100'
self.path = ''
self.save = True
def apply_settings(self, format, codec, quality, resolution, scale, file_path):
def apply_settings(self, format, codec, quality, resolution, scale, file_path, save):
self.format = format
self.codec = self.get_codec(codec)
self.bitrate = f"{round(8 * (resolution[0] * resolution[1]) / (1920 * 1080) * (float(quality) / 100), 1)}m"
self.bitrate = f"{round(8 * (resolution[0] * resolution[1]) / (1920 * 1080) * (float(quality) / 100), 1)}M"
self.resolution = resolution
self.percent = int(scale * 100)
self.path = file_path
self.save = save
def get_codec(self, pretty_name):
if pretty_name == 'HEVC (H.265)':
@ -199,23 +202,19 @@ class Tinyblast(ompx.MPxCommand):
return ompx.asMPxPtr(Tinyblast())
def custom_playblast(self, *args, **kwargs):
print("Running tinyblast...")
kwargs['format'] = 'avi'
kwargs['percent'] = int(self.percent)
kwargs['quality'] = 100
kwargs['widthHeight'] = self.resolution
result = original_playblast(*args, **kwargs)
print(f"{result}")
if result:
if result and self.save:
self.blastIt(result)
def blastIt(self, input_path):
try:
ffmpeg_path = os.path.join(get_plugin_directory(), 'ffmpeg.exe')
print(f"ffmpeg path: {ffmpeg_path}")
if not os.path.exists(ffmpeg_path):
raise FileNotFoundError(f"FFmpeg binary not found at {ffmpeg_path}")
@ -229,7 +228,6 @@ class Tinyblast(ompx.MPxCommand):
# Define the full path for the converted output file
output_file = self.path
print(f"Output path: {output_file}")
# Run FFmpeg conversion
subprocess.run([ffmpeg_path,
@ -262,6 +260,10 @@ class TinyblastOptionsWindow(QMainWindow):
self.ui = Ui_TinyblastOptions()
self.ui.setupUi(self)
self.resize(1280, 720)
self.restore_settings()
self.ui.formattingComboBox.currentIndexChanged.connect(self.update_format)
self.ui.tinyblastButton.clicked.connect(self.tinyblast)
@ -282,6 +284,17 @@ class TinyblastOptionsWindow(QMainWindow):
self.ui.saveToFileCheckBox.toggled.connect(self.save_to_file_toggle)
self.ui.browseButton.clicked.connect(self.browse_files)
def restore_settings(self):
settings = QSettings("Jack Christensen", "Tinyblast")
geometry = settings.value("windowGeometry")
if geometry:
self.restoreGeometry(geometry)
def closeEvent(self, event):
settings = QSettings("Jack Christensen", "Tinyblast")
settings.setValue("windowGeometry", self.saveGeometry())
def update_format(self, index):
self.ui.encodingComboBox.clear()
# MP4
@ -362,7 +375,8 @@ class TinyblastOptionsWindow(QMainWindow):
self.ui.qualitySpinBox.value(), # Quality as a percentage
(self.ui.widthSpinBox.value(), self.ui.heightSpinBox.value()), # Resolution
self.ui.scaleSpinBox.value(), # Scale
self.ui.filePathTextBox.text() # File path
self.ui.filePathTextBox.text(), # File path
self.ui.saveToFileCheckBox.isChecked()
)
def quit_window(self):
@ -375,15 +389,11 @@ class TinyblastOptionsWindow(QMainWindow):
def update_display_size(self, index):
if index == 0:
self.ui.widthSpinBox.setEnabled(False)
self.ui.heightSpinBox.setEnabled(False)
self.ui.widthSpinBox.setEnabled(True)
self.ui.heightSpinBox.setEnabled(True)
if index == 1:
self.ui.widthSpinBox.setEnabled(False)
self.ui.heightSpinBox.setEnabled(False)
if index == 2:
self.ui.widthSpinBox.setEnabled(True)
self.ui.heightSpinBox.setEnabled(True)
def update_scale_slider(self, value):
self.ui.scaleSpinBox.setValue(float(value/1000.0))
@ -427,7 +437,7 @@ def show_my_window():
tb_window = TinyblastOptionsWindow()
tb_window.show()
class MyPluginCommand(ompx.MPxCommand):
class OpenTinyblastOptions(ompx.MPxCommand):
def __init__(self):
ompx.MPxCommand.__init__(self)
@ -435,15 +445,15 @@ class MyPluginCommand(ompx.MPxCommand):
show_my_window()
def cmdCreator():
return ompx.asMPxPtr(MyPluginCommand())
return ompx.asMPxPtr(OpenTinyblastOptions())
def initializePlugin(mobject):
global tinyblast_instance
tinyblast_instance = Tinyblast()
try:
mplugin = ompx.MFnPlugin(mobject, "Jack Christensen", "1.0.0", "Any")
mplugin = ompx.MFnPlugin(mobject, "Jack Christensen", "2.0.0", "Any")
mplugin.registerCommand("tinyblast", Tinyblast.cmdCreator)
mplugin.registerCommand("myPluginCommand", cmdCreator)
mplugin.registerCommand("openTinyblastOptions", cmdCreator)
om.MGlobal.displayInfo("Tinyblast plugin loaded.")
setup_script_job()
cmds.playblast = tinyblast_instance.custom_playblast
@ -456,7 +466,7 @@ def uninitializePlugin(mobject):
mplugin = ompx.MFnPlugin(mobject)
tb_window.close()
mplugin.deregisterCommand("tinyblast")
mplugin.deregisterCommand("myPluginCommand")
mplugin.deregisterCommand("openTinyblastOptions")
om.MGlobal.displayInfo("Tinyblast plugin unloaded.")
except Exception as e:
om.MGlobal.displayError(f"Failed to uninitialize plugin: {str(e)}")