25#include <QStandardItemModel>
26#include <QSortFilterProxyModel>
27#include <MltProperties.h>
40class PresetsProxyModel :
public QSortFilterProxyModel
43 bool filterAcceptsRow(
int source_row,
const QModelIndex &source_parent)
const;
46class EncodeDock :
public QDockWidget
51 explicit EncodeDock(QWidget *parent = 0);
54 void loadPresetFromProperties(Mlt::Properties &);
55 bool isExportInProgress()
const;
58 void captureStateChanged(
bool);
61 void onAudioChannelsChanged();
62 void onProducerOpened();
63 void onProfileChanged();
64 void on_hwencodeButton_clicked();
65 bool detectHardwareEncoders();
68 void on_presetsTree_clicked(
const QModelIndex &index);
69 void on_presetsTree_activated(
const QModelIndex &index);
71 void on_encodeButton_clicked();
73 void on_streamButton_clicked();
75 void on_addPresetButton_clicked();
77 void on_removePresetButton_clicked();
79 void onFinished(AbstractJob *,
bool isSuccess);
81 void on_stopCaptureButton_clicked();
83 void on_videoRateControlCombo_activated(
int index);
85 void on_audioRateControlCombo_activated(
int index);
87 void on_scanModeCombo_currentIndexChanged(
int index);
89 void on_presetsSearch_textChanged(
const QString &search);
91 void on_resetButton_clicked();
93 void openCaptureFile();
95 void on_formatCombo_currentIndexChanged(
int index);
97 void on_videoBufferDurationChanged();
99 void on_gopSpinner_valueChanged(
int value);
101 void on_fromCombo_currentIndexChanged(
int index);
103 void on_videoCodecCombo_currentIndexChanged(
int index);
105 void on_audioCodecCombo_currentIndexChanged(
int index);
107 void setAudioChannels(
int channels );
109 void on_widthSpinner_editingFinished();
111 void on_heightSpinner_editingFinished();
113 void on_advancedButton_clicked(
bool checked);
115 void on_hwencodeCheckBox_clicked(
bool checked);
117 void on_advancedCheckBox_clicked(
bool checked);
119 void on_fpsSpinner_editingFinished();
121 void on_fpsComboBox_activated(
int arg1);
123 void on_videoQualitySpinner_valueChanged(
int vq);
125 void on_audioQualitySpinner_valueChanged(
int aq);
127 void on_parallelCheckbox_clicked(
bool checked);
129 void on_resolutionComboBox_activated(
int arg1);
133 RateControlAverage = 0,
136 RateControlConstrained
144 Mlt::Properties *m_presets;
145 QScopedPointer<MeltJob> m_immediateJob;
147 Mlt::Properties *m_profiles;
148 PresetsProxyModel m_presetsModel;
149 QStringList m_outputFilenames;
150 bool m_isDefaultSettings;
154 Mlt::Properties *collectProperties(
int realtime,
bool includeProfile =
false);
155 void collectProperties(QDomElement &node,
int realtime);
156 MeltJob *createMeltJob(Mlt::Producer *service,
const QString &target,
int realtime,
int pass = 0,
157 const QThread::Priority priority = Settings.jobPriority());
158 void runMelt(
const QString &target,
int realtime = -1);
159 void enqueueAnalysis();
160 void enqueueMelt(
const QStringList &targets,
int realtime);
161 void encode(
const QString &target);
163 Mlt::Producer *fromProducer()
const;
164 static void filterX265Params(QStringList &other);
165 void onVideoCodecComboChanged(
int index,
bool ignorePreset =
false);
166 bool checkForMissingFiles();
167 QString &defaultFormatExtension();