Commit 0d3e1643 authored by Francois Cartegnie's avatar Francois Cartegnie

Qt: sout_profiles: add video and audio filters (fix #7865)

parent 25316fbf
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
#include <QButtonGroup> #include <QButtonGroup>
#include <QSpinBox> #include <QSpinBox>
#include <QUrl> #include <QUrl>
#include <QListWidgetItem>
#include <assert.h> #include <assert.h>
#include <vlc_modules.h> #include <vlc_modules.h>
...@@ -246,6 +247,13 @@ void VLCProfileSelector::updateOptions( int i ) ...@@ -246,6 +247,13 @@ void VLCProfileSelector::updateOptions( int i )
smrl.option( "vb", value.toInt() ); smrl.option( "vb", value.toInt() );
} }
HASHPICK( "video", "filters" );
if ( !value.isEmpty() )
{
QStringList valuesList = QUrl::fromPercentEncoding( value.toAscii() ).split( ";" );
smrl.option( "vfilter", QString("{%1}").arg( valuesList.join( "," ) ) );
}
/*if ( codec is h264 )*/ /*if ( codec is h264 )*/
{ {
/* special handling */ /* special handling */
...@@ -304,6 +312,14 @@ void VLCProfileSelector::updateOptions( int i ) ...@@ -304,6 +312,14 @@ void VLCProfileSelector::updateOptions( int i )
HASHPICK( "acodec", "samplerate" ); HASHPICK( "acodec", "samplerate" );
smrl.option( "samplerate", value.toInt() ); smrl.option( "samplerate", value.toInt() );
HASHPICK( "audio", "filters" );
if ( !value.isEmpty() )
{
QStringList valuesList = QUrl::fromPercentEncoding( value.toAscii() ).split( ";" );
smrl.option( "afilter", QString("{%1}").arg( valuesList.join( "," ) ) );
}
} else { } else {
HASHPICK( "audio", "copy" ); HASHPICK( "audio", "copy" );
if ( ! value.isEmpty() ) if ( ! value.isEmpty() )
...@@ -410,6 +426,7 @@ VLCProfileEditor::VLCProfileEditor( const QString& qs_name, const QString& value ...@@ -410,6 +426,7 @@ VLCProfileEditor::VLCProfileEditor( const QString& qs_name, const QString& value
} }
loadCapabilities(); loadCapabilities();
registerCodecs(); registerCodecs();
registerFilters();
QPushButton *saveButton = new QPushButton( QPushButton *saveButton = new QPushButton(
( qs_name.isEmpty() ) ? qtr( "Create" ) : qtr( "Save" ) ); ( qs_name.isEmpty() ) ? qtr( "Create" ) : qtr( "Save" ) );
...@@ -454,6 +471,39 @@ void VLCProfileEditor::loadCapabilities() ...@@ -454,6 +471,39 @@ void VLCProfileEditor::loadCapabilities()
module_list_free (p_all); module_list_free (p_all);
} }
inline void VLCProfileEditor::registerFilters()
{
size_t count;
module_t **p_all = module_list_get (&count);
for (size_t i = 0; i < count; i++)
{
module_t *p_module = p_all[i];
if ( module_get_score( p_module ) > 0 ) continue;
QString capability = module_get_capability( p_module );
QListWidget *listWidget = NULL;
QListWidgetItem *item;
if ( capability == "video filter2" )
listWidget = ui.valueholder_video_filters;
else if ( capability == "audio filter" )
listWidget = ui.valueholder_audio_filters;
if ( !listWidget ) continue;
item = new QListWidgetItem( module_get_name( p_module, true ) );
item->setCheckState( Qt::Unchecked );
item->setToolTip( QString( module_get_help( p_module ) ) );
item->setData( Qt::UserRole, QString( module_get_object( p_module ) ) );
listWidget->addItem( item );
}
module_list_free (p_all);
ui.valueholder_video_filters->sortItems();
ui.valueholder_audio_filters->sortItems();
}
inline void VLCProfileEditor::registerCodecs() inline void VLCProfileEditor::registerCodecs()
{ {
#define SETMUX( button, val, vid, aud, men, sub, stream, chaps ) \ #define SETMUX( button, val, vid, aud, men, sub, stream, chaps ) \
...@@ -631,6 +681,19 @@ void VLCProfileEditor::fillProfile( const QString& qs ) ...@@ -631,6 +681,19 @@ void VLCProfileEditor::fillProfile( const QString& qs )
QLineEdit *box = qobject_cast<QLineEdit *>( object ); QLineEdit *box = qobject_cast<QLineEdit *>( object );
box->setText( QUrl::fromPercentEncoding( value.toAscii() ) ); box->setText( QUrl::fromPercentEncoding( value.toAscii() ) );
} }
else if ( object->inherits( "QListWidget" ) )
{
QStringList valuesList = QUrl::fromPercentEncoding( value.toAscii() ).split( ";" );
const QListWidget *list = qobject_cast<const QListWidget *>( object );
for( int i=0; i < list->count(); i++ )
{
QListWidgetItem *item = list->item( i );
if ( valuesList.contains( item->data( Qt::UserRole ).toString() ) )
item->setCheckState( Qt::Checked );
else
item->setCheckState( Qt::Unchecked );
}
}
} }
} }
} }
...@@ -752,6 +815,18 @@ QString VLCProfileEditor::transcodeValue() ...@@ -752,6 +815,18 @@ QString VLCProfileEditor::transcodeValue()
const QLineEdit *box = qobject_cast<const QLineEdit *>( object ); const QLineEdit *box = qobject_cast<const QLineEdit *>( object );
value = QUrl::toPercentEncoding( box->text(), "", "_;" ); value = QUrl::toPercentEncoding( box->text(), "", "_;" );
} }
else if ( object->inherits( "QListWidget" ) )
{
const QListWidget *list = qobject_cast<const QListWidget *>( object );
QStringList valuesList;
for( int i=0; i < list->count(); i++ )
{
const QListWidgetItem *item = list->item( i );
if ( item->checkState() == Qt::Checked )
valuesList.append( item->data( Qt::UserRole ).toString() );
}
value = QUrl::toPercentEncoding( valuesList.join( ";" ), "", "_;" );
}
if ( !value.isEmpty() ) if ( !value.isEmpty() )
configuration << QString( "%1_%2=%3" ) configuration << QString( "%1_%2=%3" )
......
...@@ -74,6 +74,7 @@ public: ...@@ -74,6 +74,7 @@ public:
QStringList qpcodecsList; QStringList qpcodecsList;
private: private:
void registerCodecs(); void registerCodecs();
void registerFilters();
void fillProfile( const QString& qs ); void fillProfile( const QString& qs );
void fillProfileOldFormat( const QString& qs ); void fillProfileOldFormat( const QString& qs );
typedef QSet<QString> resultset; typedef QSet<QString> resultset;
......
...@@ -294,6 +294,12 @@ ...@@ -294,6 +294,12 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_5"> <layout class="QVBoxLayout" name="verticalLayout_5">
<property name="leftMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item> <item>
<widget class="QCheckBox" name="valueholder_video_copy"> <widget class="QCheckBox" name="valueholder_video_copy">
<property name="text"> <property name="text">
...@@ -302,253 +308,265 @@ ...@@ -302,253 +308,265 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QWidget" name="transcodevideo" native="true"> <widget class="QTabWidget" name="transcodevideo">
<layout class="QFormLayout" name="formLayout"> <property name="currentIndex">
<property name="horizontalSpacing"> <number>0</number>
<number>6</number> </property>
</property> <widget class="QWidget" name="tab_1">
<property name="margin"> <attribute name="title">
<number>0</number> <string>Encoding parameters</string>
</property> </attribute>
<item row="0" column="0"> <layout class="QFormLayout" name="formLayout_2">
<widget class="QLabel" name="vCodecLabel"> <property name="fieldGrowthPolicy">
<property name="enabled"> <enum>QFormLayout::AllNonFixedFieldsGrow</enum>
<bool>true</bool> </property>
</property> <item row="0" column="0">
<property name="text"> <widget class="QLabel" name="vCodecLabel">
<string>Codec</string> <property name="enabled">
</property> <bool>true</bool>
<property name="buddy"> </property>
<cstring>valueholder_video_codec</cstring> <property name="text">
</property> <string>Codec</string>
</widget> </property>
</item> <property name="buddy">
<item row="0" column="1"> <cstring>valueholder_video_codec</cstring>
<widget class="QComboBox" name="valueholder_video_codec"> </property>
<property name="editable"> </widget>
<bool>false</bool> </item>
</property> <item row="0" column="1">
</widget> <widget class="QComboBox" name="valueholder_video_codec">
</item> <property name="editable">
<item row="1" column="0"> <bool>false</bool>
<widget class="QLabel" name="vBitrateLabel"> </property>
<property name="text"> </widget>
<string>Bitrate</string> </item>
</property> <item row="1" column="0">
<property name="buddy"> <widget class="QLabel" name="vBitrateLabel">
<cstring>valueholder_vcodec_bitrate</cstring> <property name="text">
</property> <string>Bitrate</string>
</widget> </property>
</item> <property name="buddy">
<item row="1" column="1"> <cstring>valueholder_vcodec_bitrate</cstring>
<layout class="QHBoxLayout" name="horizontalLayout_2"> </property>
<item> </widget>
<widget class="QSpinBox" name="valueholder_vcodec_bitrate"> </item>
<property name="alignment"> <item row="3" column="0">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <widget class="QLabel" name="vFrameLabel">
</property> <property name="text">
<property name="specialValueText"> <string>Frame Rate</string>
<string>Not Used</string> </property>
</property> <property name="buddy">
<property name="accelerated"> <cstring>valueholder_vcodec_framerate</cstring>
<bool>true</bool> </property>
</property> </widget>
<property name="suffix"> </item>
<string> kb/s</string> <item row="3" column="1">
</property> <widget class="QDoubleSpinBox" name="valueholder_vcodec_framerate">
<property name="minimum"> <property name="alignment">
<number>0</number> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property> </property>
<property name="maximum"> <property name="specialValueText">
<number>32768</number> <string>Same as source</string>
</property> </property>
<property name="singleStep"> <property name="prefix">
<number>16</number> <string/>
</property> </property>
<property name="value"> <property name="suffix">
<number>800</number> <string> fps</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item row="4" column="0">
<widget class="QLabel" name="label_3"> <widget class="QLabel" name="label_4">
<property name="sizePolicy"> <property name="text">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred"> <string>Custom options</string>
<horstretch>0</horstretch> </property>
<verstretch>0</verstretch> <property name="buddy">
</sizepolicy> <cstring>valueholder_vcodec_custom</cstring>
</property> </property>
<property name="text"> </widget>
<string>or Quality</string> </item>
</property> <item row="4" column="1">
<property name="buddy"> <widget class="QLineEdit" name="valueholder_vcodec_custom"/>
<cstring>valueholder_vcodec_qp</cstring> </item>
</property> <item row="2" column="0">
</widget> <widget class="QLabel" name="label_3">
</item> <property name="sizePolicy">
<item> <sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<widget class="QSpinBox" name="valueholder_vcodec_qp"> <horstretch>0</horstretch>
<property name="specialValueText"> <verstretch>0</verstretch>
<string>Not Used</string> </sizepolicy>
</property> </property>
</widget> <property name="text">
</item> <string>Quality</string>
</layout> </property>
</item> <property name="buddy">
<item row="2" column="0"> <cstring>valueholder_vcodec_qp</cstring>
<widget class="QLabel" name="vFrameLabel"> </property>
<property name="text"> </widget>
<string>Frame Rate</string> </item>
</property> <item row="2" column="1">
<property name="buddy"> <widget class="QSpinBox" name="valueholder_vcodec_qp">
<cstring>valueholder_vcodec_framerate</cstring> <property name="alignment">
</property> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</widget> </property>
</item> <property name="specialValueText">
<item row="2" column="1"> <string>Not Used</string>
<widget class="QDoubleSpinBox" name="valueholder_vcodec_framerate"> </property>
<property name="alignment"> </widget>
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </item>
</property> <item row="1" column="1">
<property name="specialValueText"> <widget class="QSpinBox" name="valueholder_vcodec_bitrate">
<string>Same as source</string> <property name="alignment">
</property> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<property name="prefix"> </property>
<string/> <property name="specialValueText">
</property> <string>Not Used</string>
<property name="suffix"> </property>
<string> fps</string> <property name="accelerated">
</property> <bool>true</bool>
</widget> </property>
</item> <property name="suffix">
<item row="4" column="0" colspan="2"> <string> kb/s</string>
<widget class="QGroupBox" name="groupBox"> </property>
<property name="title"> <property name="minimum">
<string>Resolution</string> <number>0</number>
</property> </property>
<property name="flat"> <property name="maximum">
<bool>true</bool> <number>32768</number>
</property> </property>
<layout class="QFormLayout" name="formLayout_3"> <property name="singleStep">
<item row="0" column="0" colspan="2"> <number>16</number>
<widget class="QLabel" name="label"> </property>
<property name="sizePolicy"> <property name="value">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum"> <number>800</number>
<horstretch>0</horstretch> </property>
<verstretch>0</verstretch> </widget>
</sizepolicy> </item>
</property> </layout>
</widget>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Resolution</string>
</attribute>
<layout class="QFormLayout" name="formLayout_6">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
</property>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="label">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>You just need to fill one of the three following parameters, VLC will autodetect the other using the original aspect ratio</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="vScaleLabel">
<property name="text">
<string>Scale</string>
</property>
<property name="buddy">
<cstring>valueholder_vcodec_scale</cstring>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="valueholder_vcodec_scale">
<property name="editable">
<bool>true</bool>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="Framesize">
<property name="text">
<string>Frame size</string>
</property>
</widget>
</item>
<item row="3" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="widthLabel">
<property name="text"> <property name="text">
<string>You just need to fill one of the three following parameters, VLC will autodetect the other using the original aspect ratio</string> <string>Width</string>
</property> </property>
<property name="wordWrap"> <property name="alignment">
<bool>true</bool> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>valueholder_vcodec_width</cstring>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item>
<widget class="QLabel" name="vScaleLabel"> <widget class="QSpinBox" name="valueholder_vcodec_width">
<property name="text"> <property name="specialValueText">
<string>Scale</string> <string>Auto</string>
</property> </property>
<property name="buddy"> <property name="suffix">
<cstring>valueholder_vcodec_scale</cstring> <string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
<property name="singleStep">
<number>8</number>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item>
<widget class="QComboBox" name="valueholder_vcodec_scale"> <widget class="QLabel" name="heightLabel">
<property name="editable"> <property name="text">
<bool>true</bool> <string>Height</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>valueholder_vcodec_height</cstring>
</property> </property>
</widget> </widget>
</item> </item>
<item row="2" column="1"> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <widget class="QSpinBox" name="valueholder_vcodec_height">
<item> <property name="specialValueText">
<widget class="QLabel" name="widthLabel"> <string>Auto</string>
<property name="text"> </property>
<string>Width</string> <property name="suffix">
</property> <string>px</string>
<property name="alignment"> </property>
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> <property name="maximum">
</property> <number>9999</number>
<property name="buddy"> </property>
<cstring>valueholder_vcodec_width</cstring> <property name="singleStep">
</property> <number>8</number>
</widget>
</item>
<item>
<widget class="QSpinBox" name="valueholder_vcodec_width">
<property name="specialValueText">
<string>Auto</string>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
<property name="singleStep">
<number>8</number>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="heightLabel">
<property name="text">
<string>Height</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>valueholder_vcodec_height</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="valueholder_vcodec_height">
<property name="specialValueText">
<string>Auto</string>
</property>
<property name="suffix">
<string>px</string>
</property>
<property name="maximum">
<number>9999</number>
</property>
<property name="singleStep">
<number>8</number>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="Framesize">
<property name="text">
<string>Frame size</string>
</property> </property>
</widget> </widget>
</item> </item>
</layout> </layout>
</widget> </item>
</item> </layout>
<item row="3" column="0"> </widget>
<widget class="QLabel" name="label_4"> <widget class="QWidget" name="tab_2">
<property name="text"> <attribute name="title">
<string>Custom options</string> <string>Filters</string>
</property> </attribute>
<property name="buddy"> <layout class="QGridLayout" name="gridLayout">
<cstring>valueholder_vcodec_custom</cstring> <item row="0" column="0" rowspan="2">
</property> <widget class="QListWidget" name="valueholder_video_filters"/>
</widget> </item>
</item> </layout>
<item row="3" column="1"> </widget>
<widget class="QLineEdit" name="valueholder_vcodec_custom"/>
</item>
</layout>
</widget> </widget>
</item> </item>
</layout> </layout>
...@@ -573,6 +591,12 @@ ...@@ -573,6 +591,12 @@
<bool>true</bool> <bool>true</bool>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_6"> <layout class="QVBoxLayout" name="verticalLayout_6">
<property name="leftMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<item> <item>
<widget class="QCheckBox" name="valueholder_audio_copy"> <widget class="QCheckBox" name="valueholder_audio_copy">
<property name="text"> <property name="text">
...@@ -581,93 +605,108 @@ ...@@ -581,93 +605,108 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QWidget" name="transcodeaudio" native="true"> <widget class="QTabWidget" name="transcodeaudio">
<layout class="QFormLayout" name="_2"> <property name="currentIndex">
<property name="margin"> <number>0</number>
<number>0</number> </property>
</property> <widget class="QWidget" name="tab_3">
<item row="0" column="0"> <attribute name="title">
<widget class="QLabel" name="aCodecLabel"> <string>Encoding parameters</string>
<property name="text"> </attribute>
<string>Codec</string> <layout class="QFormLayout" name="formLayout">
</property> <item row="0" column="0">
<property name="buddy"> <widget class="QLabel" name="aCodecLabel">
<cstring>valueholder_audio_codec</cstring> <property name="text">
</property> <string>Codec</string>
</widget> </property>
</item> <property name="buddy">
<item row="0" column="1"> <cstring>valueholder_audio_codec</cstring>
<widget class="QComboBox" name="valueholder_audio_codec"/> </property>
</item> </widget>
<item row="1" column="0"> </item>
<widget class="QLabel" name="aBitrateLabel"> <item row="0" column="1">
<property name="text"> <widget class="QComboBox" name="valueholder_audio_codec"/>
<string>Bitrate</string> </item>
</property> <item row="1" column="0">
<property name="buddy"> <widget class="QLabel" name="aBitrateLabel">
<cstring>valueholder_acodec_bitrate</cstring> <property name="text">
</property> <string>Bitrate</string>
</widget> </property>
</item> <property name="buddy">
<item row="2" column="0"> <cstring>valueholder_acodec_bitrate</cstring>
<widget class="QLabel" name="aChannelsLabel"> </property>
<property name="text"> </widget>
<string>Channels</string> </item>
</property> <item row="2" column="0">
<property name="buddy"> <widget class="QLabel" name="aChannelsLabel">
<cstring>valueholder_acodec_channels</cstring> <property name="text">
</property> <string>Channels</string>
</widget> </property>
</item> <property name="buddy">
<item row="1" column="1"> <cstring>valueholder_acodec_channels</cstring>
<widget class="QSpinBox" name="valueholder_acodec_bitrate"> </property>
<property name="alignment"> </widget>
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </item>
</property> <item row="1" column="1">
<property name="suffix"> <widget class="QSpinBox" name="valueholder_acodec_bitrate">
<string> kb/s</string> <property name="alignment">
</property> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<property name="minimum"> </property>
<number>8</number> <property name="suffix">
</property> <string> kb/s</string>
<property name="maximum"> </property>
<number>512</number> <property name="minimum">
</property> <number>8</number>
<property name="value"> </property>
<number>128</number> <property name="maximum">
</property> <number>512</number>
</widget> </property>
</item> <property name="value">
<item row="2" column="1"> <number>128</number>
<widget class="QSpinBox" name="valueholder_acodec_channels"> </property>
<property name="alignment"> </widget>
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> </item>
</property> <item row="2" column="1">
<property name="minimum"> <widget class="QSpinBox" name="valueholder_acodec_channels">
<number>1</number> <property name="alignment">
</property> <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
<property name="maximum"> </property>
<number>10</number> <property name="minimum">
</property> <number>1</number>
<property name="value"> </property>
<number>2</number> <property name="maximum">
</property> <number>10</number>
</widget> </property>
</item> <property name="value">
<item row="3" column="0"> <number>2</number>
<widget class="QLabel" name="aSampleLabel"> </property>
<property name="text"> </widget>
<string>Sample Rate</string> </item>
</property> <item row="3" column="0">
<property name="buddy"> <widget class="QLabel" name="aSampleLabel">
<cstring>valueholder_acodec_samplerate</cstring> <property name="text">
</property> <string>Sample Rate</string>
</widget> </property>
</item> <property name="buddy">
<item row="3" column="1"> <cstring>valueholder_acodec_samplerate</cstring>
<widget class="QComboBox" name="valueholder_acodec_samplerate"/> </property>
</item> </widget>
</layout> </item>
<item row="3" column="1">
<widget class="QComboBox" name="valueholder_acodec_samplerate"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>Filters</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" rowspan="2">
<widget class="QListWidget" name="valueholder_audio_filters"/>
</item>
</layout>
</widget>
</widget> </widget>
</item> </item>
</layout> </layout>
...@@ -791,6 +830,7 @@ ...@@ -791,6 +830,7 @@
<tabstop>ASFMux</tabstop> <tabstop>ASFMux</tabstop>
<tabstop>valueholder_video_enable</tabstop> <tabstop>valueholder_video_enable</tabstop>
<tabstop>valueholder_video_copy</tabstop> <tabstop>valueholder_video_copy</tabstop>
<tabstop>transcodevideo</tabstop>
<tabstop>valueholder_video_codec</tabstop> <tabstop>valueholder_video_codec</tabstop>
<tabstop>valueholder_vcodec_bitrate</tabstop> <tabstop>valueholder_vcodec_bitrate</tabstop>
<tabstop>valueholder_vcodec_qp</tabstop> <tabstop>valueholder_vcodec_qp</tabstop>
...@@ -799,12 +839,15 @@ ...@@ -799,12 +839,15 @@
<tabstop>valueholder_vcodec_scale</tabstop> <tabstop>valueholder_vcodec_scale</tabstop>
<tabstop>valueholder_vcodec_width</tabstop> <tabstop>valueholder_vcodec_width</tabstop>
<tabstop>valueholder_vcodec_height</tabstop> <tabstop>valueholder_vcodec_height</tabstop>
<tabstop>valueholder_video_filters</tabstop>
<tabstop>valueholder_audio_enable</tabstop> <tabstop>valueholder_audio_enable</tabstop>
<tabstop>valueholder_audio_copy</tabstop> <tabstop>valueholder_audio_copy</tabstop>
<tabstop>transcodeaudio</tabstop>
<tabstop>valueholder_audio_codec</tabstop> <tabstop>valueholder_audio_codec</tabstop>
<tabstop>valueholder_acodec_bitrate</tabstop> <tabstop>valueholder_acodec_bitrate</tabstop>
<tabstop>valueholder_acodec_channels</tabstop> <tabstop>valueholder_acodec_channels</tabstop>
<tabstop>valueholder_acodec_samplerate</tabstop> <tabstop>valueholder_acodec_samplerate</tabstop>
<tabstop>valueholder_audio_filters</tabstop>
<tabstop>valueholder_subtitles_enable</tabstop> <tabstop>valueholder_subtitles_enable</tabstop>
<tabstop>valueholder_subtitles_codec</tabstop> <tabstop>valueholder_subtitles_codec</tabstop>
<tabstop>valueholder_subtitles_overlay</tabstop> <tabstop>valueholder_subtitles_overlay</tabstop>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment