Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
3e61191f
Commit
3e61191f
authored
Sep 05, 2007
by
Jean-Baptiste Kempf
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Qt4 - Sout rework, Initial work.
Patch by Jean-François Massol
parent
cc98b2cd
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
768 additions
and
685 deletions
+768
-685
modules/gui/qt4/dialogs/sout.cpp
modules/gui/qt4/dialogs/sout.cpp
+377
-128
modules/gui/qt4/dialogs/sout.hpp
modules/gui/qt4/dialogs/sout.hpp
+8
-0
modules/gui/qt4/ui/sout.ui
modules/gui/qt4/ui/sout.ui
+383
-557
No files found.
modules/gui/qt4/dialogs/sout.cpp
View file @
3e61191f
...
...
@@ -25,6 +25,8 @@
#include "qt4.hpp"
#include <vlc_streaming.h>
#include <iostream>
#include <QString>
#include <QFileDialog>
SoutDialog
::
SoutDialog
(
QWidget
*
parent
,
intf_thread_t
*
_p_intf
,
...
...
@@ -35,64 +37,76 @@ SoutDialog::SoutDialog( QWidget *parent, intf_thread_t *_p_intf,
/* UI stuff */
ui
.
setupUi
(
this
);
#define ADD_VCODEC( name, fcc) ui.vCodec->addItem( name, QVariant( fcc ) );
ADD_VCODEC
(
"MPEG-1"
,
"mp1v"
);
ADD_VCODEC
(
"MPEG-2"
,
"mp2v"
);
ADD_VCODEC
(
"MPEG-4"
,
"mp4v"
);
ADD_VCODEC
(
"DIVX 1"
,
"DIV1"
);
ADD_VCODEC
(
"DIVX 2"
,
"DIV1"
);
ADD_VCODEC
(
"DIVX 3"
,
"DIV1"
);
ADD_VCODEC
(
"H-263"
,
"H263"
);
ADD_VCODEC
(
"H-264"
,
"h264"
);
ADD_VCODEC
(
"WMV1"
,
"WMV1"
);
ADD_VCODEC
(
"WMV2"
,
"WMV2"
);
ADD_VCODEC
(
"M-JPEG"
,
"MJPG"
);
ADD_VCODEC
(
"Theora"
,
"theo"
);
#define ADD_ACODEC( name, fcc) ui.aCodec->addItem( name, QVariant( fcc ) );
ADD_ACODEC
(
"MPEG Audio"
,
"mpga"
);
ADD_ACODEC
(
"MP3"
,
"mp3"
);
ADD_ACODEC
(
"MPEG 4 Audio (AAC)"
,
"mp4a"
);
ADD_ACODEC
(
"A52/AC-3"
,
"a52"
);
ADD_ACODEC
(
"Vorbis"
,
"vorb"
);
ADD_ACODEC
(
"Flac"
,
"flac"
);
ADD_ACODEC
(
"Speex"
,
"spx"
);
ADD_ACODEC
(
"WAV"
,
"s16l"
);
ADD_ACODEC
(
"WMA"
,
"wma"
);
ui
.
vScale
->
addItem
(
"0.25"
);
ui
.
vScale
->
addItem
(
"0.5"
);
ui
.
vScale
->
addItem
(
"0.75"
);
ui
.
vScale
->
addItem
(
"1"
);
ui
.
vScale
->
addItem
(
"1.25"
);
ui
.
vScale
->
addItem
(
"1.5"
);
ui
.
vScale
->
addItem
(
"1.75"
);
ui
.
vScale
->
addItem
(
"2"
);
#define ADD_PROFILE(name) ui.comboBox->addItem( name );
ADD_PROFILE
(
"Ipod"
)
ADD_PROFILE
(
"PSP"
)
ADD_PROFILE
(
"GSM"
)
ADD_PROFILE
(
"Custom"
)
#define ADD_VCODEC( name, fourcc) ui.vCodec_2->addItem( name, QVariant( fourcc ) );
ADD_VCODEC
(
"MPEG-1"
,
"mp1v"
)
ADD_VCODEC
(
"MPEG-2"
,
"mp2v"
)
ADD_VCODEC
(
"MPEG-4"
,
"mp4v"
)
ADD_VCODEC
(
"DIVX 1"
,
"DIV1"
)
ADD_VCODEC
(
"DIVX 2"
,
"DIV1"
)
ADD_VCODEC
(
"DIVX 3"
,
"DIV1"
)
ADD_VCODEC
(
"H-263"
,
"H263"
)
ADD_VCODEC
(
"H-264"
,
"h264"
)
ADD_VCODEC
(
"WMV1"
,
"WMV1"
)
ADD_VCODEC
(
"WMV2"
,
"WMV2"
)
ADD_VCODEC
(
"M-JPEG"
,
"MJPG"
)
ADD_VCODEC
(
"Theora"
,
"theo"
)
#define ADD_ACODEC( name, fourcc) ui.aCodec_2->addItem( name, QVariant( fourcc ) );
ADD_ACODEC
(
"MPEG Audio"
,
"mpga"
)
ADD_ACODEC
(
"MP3"
,
"mp3"
)
ADD_ACODEC
(
"MPEG 4 Audio (AAC)"
,
"mp4a"
)
ADD_ACODEC
(
"A52/AC-3"
,
"a52"
)
ADD_ACODEC
(
"Vorbis"
,
"vorb"
)
ADD_ACODEC
(
"Flac"
,
"flac"
)
ADD_ACODEC
(
"Speex"
,
"spx"
)
ADD_ACODEC
(
"WAV"
,
"s16l"
)
ADD_ACODEC
(
"WMA"
,
"wma"
)
#define ADD_SCALING( factor ) ui.vScale_2->addItem( factor );
ADD_SCALING
(
"0.25"
)
ADD_SCALING
(
"0.5"
)
ADD_SCALING
(
"0.75"
)
ADD_SCALING
(
"1"
)
ADD_SCALING
(
"1.25"
)
ADD_SCALING
(
"1.5"
)
ADD_SCALING
(
"1.75"
)
ADD_SCALING
(
"2"
)
ui
.
mrlEdit
->
setToolTip
(
qtr
(
"Stream output string.
\n
This is automatically generated when you change the above settings,
\n
but you can update it manually."
)
)
;
/* Connect everything to the updateMRL function */
#define CB(x) CONNECT( ui.x, clicked(bool), this, updateMRL() );
#define CT(x) CONNECT( ui.x, textChanged(const QString), this, updateMRL() );
#define CS(x) CONNECT( ui.x, valueChanged(int), this, updateMRL() );
#define CC(x) CONNECT( ui.x, currentIndexChanged(int), this, updateMRL() );
/* Output */
//
/* Connect everything to the updateMRL function */
#define CB(x) CONNECT( ui.x, clicked(bool), this, updateMRL() );
#define CT(x) CONNECT( ui.x, textChanged(const QString), this, updateMRL() );
#define CS(x) CONNECT( ui.x, valueChanged(int), this, updateMRL() );
#define CC(x) CONNECT( ui.x, currentIndexChanged(int), this, updateMRL() );
//
/* Output */
CB
(
fileOutput
);
CB
(
HTTPOutput
);
CB
(
localOutput
);
CB
(
UDPOutput
);
CB
(
MMSHOutput
);
CB
(
rawInput
);
CT
(
fileEdit
);
CT
(
HTTPEdit
);
CT
(
UDPEdit
);
CT
(
MMSHEdit
);
CS
(
HTTPPort
);
CS
(
UDPPort
);
CS
(
MMSHPort
);
/* Transcode */
CC
(
vCodec
);
CC
(
sCodec
);
CC
(
aCodec
)
;
CB
(
transcodeVideo
);
CB
(
transcodeAudio
);
CB
(
transcodeSubs
);
CB
(
sOverlay
);
CS
(
vBitrate
);
CS
(
aBitrate
);
CS
(
aChannels
);
CC
(
vScale
);
/* Mux */
//
/* Transcode */
CC
(
vCodec_2
);
CC
(
sCodec_2
);
CC
(
aCodec_2
)
;
CB
(
transcodeVideo_2
);
CB
(
transcodeAudio_2
);
CB
(
transcodeSubs_2
);
//
CB( sOverlay );
CS
(
vBitrate_2
);
CS
(
aBitrate_2
);
CS
(
aChannels_2
);
CC
(
vScale_2
);
//
/* Mux */
CB
(
PSMux
);
CB
(
TSMux
);
CB
(
MPEG1Mux
);
CB
(
OggMux
);
CB
(
ASFMux
);
CB
(
MP4Mux
);
CB
(
MOVMux
);
CB
(
WAVMux
);
CB
(
RAWMux
);
CB
(
FLVMux
);
/* Misc */
//
/* Misc */
CB
(
soutAll
);
CS
(
ttl
);
CT
(
sapName
);
CT
(
sapGroup
);
CONNECT
(
ui
.
fileSelectButton
,
clicked
(),
this
,
fileBrowse
()
);
//
connect
(
ui
.
comboBox
,
SIGNAL
(
activated
(
const
QString
&
)),
this
,
SLOT
(
setOptions
())
);
connect
(
ui
.
fileSelectButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
fileBrowse
())
);
connect
(
ui
.
transcodeVideo_2
,
SIGNAL
(
toggled
(
bool
)),
this
,
SLOT
(
setVTranscodeOptions
(
bool
)));
connect
(
ui
.
transcodeAudio_2
,
SIGNAL
(
toggled
(
bool
)),
this
,
SLOT
(
setATranscodeOptions
(
bool
)));
connect
(
ui
.
transcodeSubs_2
,
SIGNAL
(
toggled
(
bool
)),
this
,
SLOT
(
setSTranscodeOptions
(
bool
)));
connect
(
ui
.
rawInput
,
SIGNAL
(
toggled
(
bool
)),
this
,
SLOT
(
setRawOptions
(
bool
)));
QPushButton
*
okButton
=
new
QPushButton
(
qtr
(
"&Stream"
)
);
QPushButton
*
cancelButton
=
new
QPushButton
(
qtr
(
"&Cancel"
)
);
...
...
@@ -108,12 +122,64 @@ SoutDialog::SoutDialog( QWidget *parent, intf_thread_t *_p_intf,
}
void
SoutDialog
::
fileBrowse
()
{
{
ui
.
tabWidget
->
setTabEnabled
(
0
,
false
);
QString
f
=
QFileDialog
::
getOpenFileName
(
this
,
qtr
(
"Save file"
),
""
,
""
);
ui
.
fileEdit
->
setText
(
f
);
updateMRL
();
}
void
SoutDialog
::
setVTranscodeOptions
(
bool
b_trans
)
{
ui
.
label_2
->
setEnabled
(
b_trans
);
ui
.
vCodec_2
->
setEnabled
(
b_trans
);
ui
.
vBitrateLabel_2
->
setEnabled
(
b_trans
);
ui
.
vScaleLabel_2
->
setEnabled
(
b_trans
);
ui
.
vBitrate_2
->
setEnabled
(
b_trans
);
ui
.
vScaleLabel_2
->
setEnabled
(
b_trans
);
ui
.
vScale_2
->
setEnabled
(
b_trans
);
}
void
SoutDialog
::
setATranscodeOptions
(
bool
b_trans
)
{
ui
.
label
->
setEnabled
(
b_trans
);
ui
.
aCodec_2
->
setEnabled
(
b_trans
);
ui
.
aBitrateLabel_2
->
setEnabled
(
b_trans
);
ui
.
aBitrate_2
->
setEnabled
(
b_trans
);
ui
.
s_3
->
setEnabled
(
b_trans
);
ui
.
aChannels_2
->
setEnabled
(
b_trans
);
}
void
SoutDialog
::
setSTranscodeOptions
(
bool
b_trans
)
{
ui
.
sCodec_2
->
setEnabled
(
b_trans
);
ui
.
sOverlay_2
->
setEnabled
(
b_trans
);
}
void
SoutDialog
::
setRawOptions
(
bool
b_raw
)
{
if
(
b_raw
)
{
ui
.
tabWidget
->
setDisabled
(
true
);
}
else
{
SoutDialog
::
setOptions
();
}
}
void
SoutDialog
::
setOptions
()
{
/* The test is currently done with a QString, it could be done with the index, it'd depend how translation works */
if
(
ui
.
comboBox
->
currentText
()
==
"Custom"
)
{
ui
.
tabWidget
->
setEnabled
(
true
);
}
else
{
ui
.
tabWidget
->
setDisabled
(
true
);
}
}
void
SoutDialog
::
toggleSout
()
{
#define TGV(x) { \
...
...
@@ -142,73 +208,256 @@ void SoutDialog::cancel()
void
SoutDialog
::
updateMRL
()
{
sout_gui_descr_t
pd
;
memset
(
&
pd
,
0
,
sizeof
(
sout_gui_descr_t
)
);
/* Output */
pd
.
b_dump
=
ui
.
rawInput
->
isChecked
();
if
(
pd
.
b_dump
)
goto
end
;
pd
.
b_local
=
ui
.
localOutput
->
isChecked
();
pd
.
b_file
=
ui
.
fileOutput
->
isChecked
();
pd
.
b_http
=
ui
.
HTTPOutput
->
isChecked
();
pd
.
b_mms
=
ui
.
MMSHOutput
->
isChecked
();
pd
.
b_udp
=
ui
.
UDPOutput
->
isChecked
();
pd
.
psz_file
=
ui
.
fileOutput
->
isChecked
()
?
strdup
(
qtu
(
ui
.
fileEdit
->
text
()
)
)
:
NULL
;
pd
.
psz_http
=
ui
.
HTTPOutput
->
isChecked
()
?
strdup
(
qtu
(
ui
.
HTTPEdit
->
text
()
)
)
:
NULL
;
pd
.
psz_mms
=
ui
.
MMSHOutput
->
isChecked
()
?
strdup
(
qtu
(
ui
.
MMSHEdit
->
text
()
)
)
:
NULL
;
pd
.
psz_udp
=
ui
.
UDPOutput
->
isChecked
()
?
strdup
(
qtu
(
ui
.
UDPEdit
->
text
()
)
)
:
NULL
;
pd
.
i_http
=
ui
.
HTTPPort
->
value
();
pd
.
i_mms
=
ui
.
MMSHPort
->
value
();
pd
.
i_udp
=
ui
.
UDPPort
->
value
();
/* Mux */
#define SMUX(x, txt) if( ui.x##Mux->isChecked() ) pd.psz_mux = strdup(txt);
SMUX
(
PS
,
"ps"
);
SMUX
(
TS
,
"ts"
);
SMUX
(
MPEG1
,
"mpeg"
);
SMUX
(
Ogg
,
"ogg"
);
SMUX
(
ASF
,
"asf"
);
SMUX
(
MP4
,
"mp4"
);
SMUX
(
MOV
,
"mov"
);
SMUX
(
WAV
,
"wav"
);
SMUX
(
RAW
,
"raw"
);
SMUX
(
FLV
,
"flv"
);
/* Transcode */
pd
.
b_soverlay
=
ui
.
sOverlay
->
isChecked
();
pd
.
i_vb
=
ui
.
vBitrate
->
value
();
pd
.
i_ab
=
ui
.
aBitrate
->
value
();
pd
.
i_channels
=
ui
.
aChannels
->
value
();
pd
.
f_scale
=
atof
(
qta
(
ui
.
vScale
->
currentText
()
)
);
pd
.
psz_vcodec
=
ui
.
transcodeVideo
->
isChecked
()
?
strdup
(
qtu
(
ui
.
vCodec
->
itemData
(
ui
.
vCodec
->
currentIndex
()
).
toString
()
)
)
:
NULL
;
pd
.
psz_acodec
=
ui
.
transcodeAudio
->
isChecked
()
?
strdup
(
qtu
(
ui
.
aCodec
->
itemData
(
ui
.
aCodec
->
currentIndex
()
).
toString
()
)
)
:
NULL
;
pd
.
psz_scodec
=
ui
.
transcodeSubs
->
isChecked
()
?
strdup
(
qtu
(
ui
.
sCodec
->
itemData
(
ui
.
sCodec
->
currentIndex
()
).
toString
()
)
)
:
NULL
;
pd
.
b_sap
=
ui
.
sap
->
isChecked
();
pd
.
b_all_es
=
ui
.
soutAll
->
isChecked
();
pd
.
psz_name
=
qtu
(
ui
.
sapName
->
text
()
);
pd
.
psz_group
=
qtu
(
ui
.
sapGroup
->
text
()
);
pd
.
i_ttl
=
ui
.
ttl
->
value
()
;
end:
sout_chain_t
*
p_chain
=
streaming_ChainNew
();
streaming_GuiDescToChain
(
VLC_OBJECT
(
p_intf
),
p_chain
,
&
pd
);
char
*
psz_mrl
=
streaming_ChainToPsz
(
p_chain
);
ui
.
mrlEdit
->
setText
(
qfu
(
strdup
(
psz_mrl
)
)
);
free
(
pd
.
psz_acodec
);
free
(
pd
.
psz_vcodec
);
free
(
pd
.
psz_scodec
);
free
(
pd
.
psz_file
);
free
(
pd
.
psz_http
);
free
(
pd
.
psz_mms
);
free
(
pd
.
psz_udp
);
free
(
pd
.
psz_mux
);
sout_gui_descr_t
sout
;
memset
(
&
sout
,
0
,
sizeof
(
sout_gui_descr_t
)
);
sout
.
b_local
=
ui
.
localOutput
->
isChecked
();
sout
.
b_file
=
ui
.
fileOutput
->
isChecked
();
sout
.
b_http
=
ui
.
HTTPOutput
->
isChecked
();
sout
.
b_mms
=
ui
.
MMSHOutput
->
isChecked
();
sout
.
b_udp
=
ui
.
UDPOutput
->
isChecked
();
sout
.
b_sap
=
ui
.
sap
->
isChecked
();
sout
.
b_all_es
=
ui
.
soutAll
->
isChecked
();
sout
.
psz_vcodec
=
strdup
(
qtu
(
ui
.
vCodec_2
->
itemData
(
ui
.
vCodec_2
->
currentIndex
()).
toString
()));
sout
.
psz_acodec
=
strdup
(
qtu
(
ui
.
aCodec_2
->
itemData
(
ui
.
vCodec_2
->
currentIndex
()).
toString
()));
sout
.
psz_scodec
=
strdup
(
qtu
(
ui
.
sCodec_2
->
itemData
(
ui
.
vCodec_2
->
currentIndex
()).
toString
()));
sout
.
psz_file
=
strdup
(
qtu
(
ui
.
fileEdit
->
text
()));
sout
.
psz_http
=
strdup
(
qtu
(
ui
.
HTTPEdit
->
text
()));
sout
.
psz_mms
=
strdup
(
qtu
(
ui
.
MMSHEdit
->
text
()));
sout
.
psz_udp
=
strdup
(
qtu
(
ui
.
UDPEdit
->
text
()));
sout
.
i_http
=
ui
.
HTTPPort
->
value
();
sout
.
i_mms
=
ui
.
MMSHPort
->
value
();
sout
.
i_udp
=
ui
.
UDPPort
->
value
();
sout
.
i_ab
=
ui
.
aBitrate_2
->
value
();
sout
.
i_vb
=
ui
.
vBitrate_2
->
value
();
sout
.
i_channels
=
ui
.
aChannels_2
->
value
();
sout
.
f_scale
=
atof
(
qta
(
ui
.
vScale_2
->
currentText
()));
sout
.
psz_group
=
strdup
(
qtu
(
ui
.
sapGroup
->
text
()));
sout
.
psz_name
=
strdup
(
qtu
(
ui
.
sapName
->
text
()));
#define SMUX(x, txt) if( ui.x->isChecked() ) sout.psz_mux = strdup(txt);
SMUX
(
PSMux
,
"ps"
);
SMUX
(
TSMux
,
"ts"
);
SMUX
(
MPEG1Mux
,
"mpeg"
);
SMUX
(
OggMux
,
"ogg"
);
SMUX
(
ASFMux
,
"asf"
);
SMUX
(
MP4Mux
,
"mp4"
);
SMUX
(
MOVMux
,
"mov"
);
SMUX
(
WAVMux
,
"wav"
);
SMUX
(
RAWMux
,
"raw"
);
SMUX
(
FLVMux
,
"flv"
);
bool
trans
=
false
;
bool
more
=
false
;
if
(
ui
.
transcodeVideo_2
->
isChecked
()
||
ui
.
transcodeAudio_2
->
isChecked
())
{
if
(
ui
.
transcodeVideo_2
->
isChecked
())
{
mrl
=
":sout=#transcode{"
;
mrl
.
append
(
"vcodec="
);
mrl
.
append
(
sout
.
psz_vcodec
);
mrl
.
append
(
","
);
mrl
.
append
(
"vb="
);
mrl
.
append
(
QString
::
number
(
sout
.
i_vb
,
10
));
mrl
.
append
(
","
);
mrl
.
append
(
"scale="
);
mrl
.
append
(
QString
::
number
(
sout
.
f_scale
));
trans
=
true
;
}
if
(
ui
.
transcodeAudio_2
->
isChecked
())
{
if
(
trans
)
{
mrl
.
append
(
","
);
}
else
{
mrl
=
":sout=#transcode{"
;
}
mrl
.
append
(
"acodec="
);
mrl
.
append
(
sout
.
psz_acodec
);
mrl
.
append
(
","
);
mrl
.
append
(
"ab="
);
mrl
.
append
(
QString
::
number
(
sout
.
i_ab
,
10
));
mrl
.
append
(
","
);
mrl
.
append
(
"channels="
);
mrl
.
append
(
QString
::
number
(
sout
.
i_channels
,
10
));
trans
=
true
;
}
mrl
.
append
(
"}"
);
}
if
(
sout
.
b_local
||
sout
.
b_file
||
sout
.
b_http
||
sout
.
b_mms
||
sout
.
b_udp
)
{
#define ISMORE() if ( more ) mrl.append(",");
if
(
trans
)
{
mrl
.
append
(
":duplicate{"
);
}
else
{
mrl
=
":sout=#"
;
}
if
(
sout
.
b_local
)
{
ISMORE
();
mrl
.
append
(
"dst=display"
);
more
=
true
;
}
if
(
sout
.
b_file
)
{
ISMORE
();
mrl
.
append
(
"dst=std{access=file,mux="
);
mrl
.
append
(
sout
.
psz_mux
);
mrl
.
append
(
",dst="
);
mrl
.
append
(
sout
.
psz_file
);
mrl
.
append
(
"}"
);
more
=
true
;
}
if
(
sout
.
b_http
)
{
ISMORE
();
mrl
.
append
(
"dst=std{access=http,mux="
);
mrl
.
append
(
sout
.
psz_mux
);
mrl
.
append
(
",dst="
);
mrl
.
append
(
sout
.
psz_http
);
mrl
.
append
(
":"
);
mrl
.
append
(
QString
::
number
(
sout
.
i_http
,
10
));
mrl
.
append
(
"}"
);
more
=
true
;
}
if
(
sout
.
b_mms
)
{
ISMORE
();
mrl
.
append
(
"dst=std{access=mmsh,mux="
);
mrl
.
append
(
sout
.
psz_mux
);
mrl
.
append
(
",dst="
);
mrl
.
append
(
sout
.
psz_mms
);
mrl
.
append
(
":"
);
mrl
.
append
(
QString
::
number
(
sout
.
i_mms
,
10
));
mrl
.
append
(
"}"
);
more
=
true
;
}
if
(
sout
.
b_udp
)
{
ISMORE
();
mrl
.
append
(
"dst=std{access=udp,mux="
);
mrl
.
append
(
sout
.
psz_mux
);
mrl
.
append
(
",dst="
);
mrl
.
append
(
sout
.
psz_udp
);
mrl
.
append
(
":"
);
mrl
.
append
(
QString
::
number
(
sout
.
i_udp
,
10
));
if
(
sout
.
b_sap
)
{
mrl
.
append
(
",sap,"
);
mrl
.
append
(
"group=
\"
"
);
mrl
.
append
(
sout
.
psz_group
);
mrl
.
append
(
"
\"
,"
);
mrl
.
append
(
"name=
\"
"
);
mrl
.
append
(
sout
.
psz_name
);
mrl
.
append
(
"
\"
"
);
}
mrl
.
append
(
"}"
);
more
=
true
;
}
if
(
trans
)
{
mrl
.
append
(
"}"
);
}
}
if
(
sout
.
b_all_es
)
mrl
.
append
(
":sout-all"
);
ui
.
mrlEdit
->
setText
(
mrl
);
free
(
sout
.
psz_acodec
);
free
(
sout
.
psz_vcodec
);
free
(
sout
.
psz_scodec
);
free
(
sout
.
psz_file
);
free
(
sout
.
psz_http
);
free
(
sout
.
psz_mms
);
free
(
sout
.
psz_udp
);
free
(
sout
.
psz_mux
);
free
(
sout
.
psz_name
);
free
(
sout
.
psz_group
);
}
// void SoutDialog::updateMRL()
// {
// sout_gui_descr_t pd;
// memset( &pd, 0, sizeof( sout_gui_descr_t ) );
//
// /* Output */
// pd.b_dump = ui.rawInput->isChecked();
// if( pd.b_dump ) goto end;
//
// pd.b_local = ui.localOutput->isChecked();
// pd.b_file = ui.fileOutput->isChecked();
// pd.b_http = ui.HTTPOutput->isChecked();
// pd.b_mms = ui.MMSHOutput->isChecked();
// pd.b_udp = ui.UDPOutput->isChecked();
//
// pd.psz_file = ui.fileOutput->isChecked() ?
// strdup(qtu( ui.fileEdit->text() ) ): NULL;
// pd.psz_http = ui.HTTPOutput->isChecked() ?
// strdup(qtu( ui.HTTPEdit->text() ) ) : NULL;
// pd.psz_mms = ui.MMSHOutput->isChecked() ?
// strdup(qtu( ui.MMSHEdit->text() ) ): NULL;
// pd.psz_udp = ui.UDPOutput->isChecked() ?
// strdup( qtu( ui.UDPEdit->text() ) ): NULL;
//
// pd.i_http = ui.HTTPPort->value();
// pd.i_mms = ui.MMSHPort->value();
// pd.i_udp = ui.UDPPort->value();
//
// /* Mux */
// #define SMUX(x, txt) if( ui.x##Mux->isChecked() ) pd.psz_mux = strdup(txt);
// SMUX( PS, "ps" );
// SMUX( TS, "ts" );
// SMUX( MPEG1, "mpeg" );
// SMUX( Ogg, "ogg" );
// SMUX( ASF, "asf" );
// SMUX( MP4, "mp4" );
// SMUX( MOV, "mov" );
// SMUX( WAV, "wav" );
// SMUX( RAW, "raw" );
// SMUX( FLV, "flv" );
//
//
//
// /* Transcode */
// // pd.b_soverlay = ui.sOverlay->isChecked();
// // pd.i_vb = ui.vBitrate->value();
// // pd.i_ab = ui.aBitrate->value();
// // pd.i_channels = ui.aChannels->value();
// // pd.f_scale = atof( qta( ui.vScale->currentText() ) );
// //
// // pd.psz_vcodec = ui.transcodeVideo->isChecked() ?
// // strdup( qtu( ui.vCodec->itemData(
// // ui.vCodec->currentIndex() ). toString() ) ) : NULL;
// // pd.psz_acodec = ui.transcodeAudio->isChecked() ?
// // strdup( qtu( ui.aCodec->itemData(
// // ui.aCodec->currentIndex() ).toString() ) ) : NULL;
// // pd.psz_scodec = ui.transcodeSubs->isChecked() ?
// // strdup( qtu( ui.sCodec->itemData(
// // ui.sCodec->currentIndex() ).toString() ) ) : NULL;
// // pd.b_sap = ui.sap->isChecked();
// // pd.b_all_es = ui.soutAll->isChecked();
// // pd.psz_name = qtu( ui.sapName->text() );
// // pd.psz_group = qtu( ui.sapGroup->text() );
// // pd.i_ttl = ui.ttl->value() ;
// end:
// sout_chain_t* p_chain = streaming_ChainNew();
// streaming_GuiDescToChain( VLC_OBJECT(p_intf), p_chain, &pd );
// char *psz_mrl = streaming_ChainToPsz( p_chain );
//
// ui.mrlEdit->setText( qfu( strdup(psz_mrl) ) );
// free( pd.psz_acodec ); free( pd.psz_vcodec ); free( pd.psz_scodec );
// free( pd.psz_file );free( pd.psz_http ); free( pd.psz_mms );
// free( pd.psz_udp ); free( pd.psz_mux );
// }
modules/gui/qt4/dialogs/sout.hpp
View file @
3e61191f
...
...
@@ -25,6 +25,7 @@
#define _SOUT_DIALOG_H_
#include <vlc/vlc.h>
#include <vlc_streaming.h>
#include "ui/sout.h"
#include "util/qvlcframe.hpp"
...
...
@@ -43,14 +44,21 @@ public:
virtual
~
SoutDialog
()
{}
QString
mrl
;
//sout_gui_descr_t *sout;
private:
Ui
::
Sout
ui
;
public
slots
:
void
ok
();
void
cancel
();
void
updateMRL
();
void
fileBrowse
();
void
toggleSout
();
void
setOptions
();
void
setVTranscodeOptions
(
bool
);
void
setATranscodeOptions
(
bool
);
void
setSTranscodeOptions
(
bool
);
void
setRawOptions
(
bool
);
};
#endif
modules/gui/qt4/ui/sout.ui
View file @
3e61191f
...
...
@@ -5,14 +5,12 @@
<rect>
<x>0</x>
<y>0</y>
<width>6
60
</width>
<height>6
69
</height>
<width>6
57
</width>
<height>6
21
</height>
</rect>
</property>
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>1</hsizetype>
<vsizetype>5</vsizetype>
<sizepolicy vsizetype="Preferred" hsizetype="Minimum" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
...
...
@@ -20,19 +18,11 @@
<property name="windowTitle" >
<string>_("Stream Output")</string>
</property>
<layout class="QVBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
<layout class="QGridLayout" >
<item row="0" column="0" colspan="2" >
<widget class="QGroupBox" name="groupBox" >
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>1</hsizetype>
<vsizetype>5</vsizetype>
<sizepolicy vsizetype="Preferred" hsizetype="Minimum" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
...
...
@@ -41,18 +31,39 @@
<string>_("Outputs")</string>
</property>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<property name="leftMargin" >
<number>9</number>
</property>
<property name="topMargin" >
<number>9</number>
</property>
<property name="rightMargin" >
<number>9</number>
</property>
<property name="bottomMargin" >
<number>9</number>
</property>
<item>
<layout class="QGridLayout" >
<property name="
m
argin" >
<property name="
leftM
argin" >
<number>3</number>
</property>
<property name="spacing" >
<property name="topMargin" >
<number>3</number>
</property>
<property name="rightMargin" >
<number>3</number>
</property>
<property name="bottomMargin" >
<number>3</number>
</property>
<property name="horizontalSpacing" >
<number>6</number>
</property>
<property name="verticalSpacing" >
<number>6</number>
</property>
<item row="1" column="1" >
...
...
@@ -86,12 +97,12 @@
<height>16777215</height>
</size>
</property>
<property name="maximum" >
<number>65535</number>
</property>
<property name="minimum" >
<number>1</number>
</property>
<property name="maximum" >
<number>65535</number>
</property>
<property name="singleStep" >
<number>1</number>
</property>
...
...
@@ -256,12 +267,12 @@
<height>16777215</height>
</size>
</property>
<property name="maximum" >
<number>65535</number>
</property>
<property name="minimum" >
<number>1</number>
</property>
<property name="maximum" >
<number>65535</number>
</property>
<property name="value" >
<number>1234</number>
</property>
...
...
@@ -278,12 +289,12 @@
<height>16777215</height>
</size>
</property>
<property name="maximum" >
<number>65535</number>
</property>
<property name="minimum" >
<number>1</number>
</property>
<property name="maximum" >
<number>65535</number>
</property>
<property name="value" >
<number>1234</number>
</property>
...
...
@@ -294,27 +305,34 @@
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="Encapsulation" >
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>5</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title" >
<string>_("Encapsulation")</string>
<item row="1" column="0" colspan="2" >
<widget class="Line" name="line" >
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>9</number>
</widget>
</item>
<item row="2" column="0" >
<widget class="QLabel" name="label_3" >
<property name="text" >
<string>_("Profile")</string>
</property>
<property name="spacing" >
<number>6</number>
</widget>
</item>
<item row="2" column="1" >
<widget class="QComboBox" name="comboBox" />
</item>
<item row="3" column="0" colspan="2" >
<widget class="QTabWidget" name="tabWidget" >
<property name="currentIndex" >
<number>0</number>
</property>
<item>
<widget class="QWidget" name="tab" >
<attribute name="title" >
<string>_("Encapsulation")</string>
</attribute>
<layout class="QGridLayout" >
<item row="0" column="0" >
<widget class="QRadioButton" name="TSMux" >
<property name="text" >
<string>MPEG-TS</string>
...
...
@@ -324,134 +342,102 @@
</property>
</widget>
</item>
<item
>
<widget class="QRadioButton" name="PS
Mux" >
<item row="0" column="1"
>
<widget class="QRadioButton" name="Ogg
Mux" >
<property name="text" >
<string>MPEG-PS
</string>
<string>Ogg
</string>
</property>
</widget>
</item>
<item
>
<widget class="QRadioButton" name="MPEG1
Mux" >
<item row="0" column="2"
>
<widget class="QRadioButton" name="MOV
Mux" >
<property name="text" >
<string>MPEG 1
</string>
<string>MOV
</string>
</property>
</widget>
</item>
<item
>
<widget class="QRadioButton" name="Ogg
Mux" >
<item row="0" column="3"
>
<widget class="QRadioButton" name="FLV
Mux" >
<property name="text" >
<string>Ogg
</string>
<string>FLV
</string>
</property>
</widget>
</item>
<item
>
<widget class="QRadioButton" name="ASF
Mux" >
<item row="1" column="0"
>
<widget class="QRadioButton" name="PS
Mux" >
<property name="text" >
<string>ASF
</string>
<string>MPEG-PS
</string>
</property>
</widget>
</item>
<item
>
<widget class="QRadioButton" name="MP4
Mux" >
<item row="1" column="1"
>
<widget class="QRadioButton" name="ASF
Mux" >
<property name="text" >
<string>MP4
</string>
<string>ASF
</string>
</property>
</widget>
</item>
<item
>
<widget class="QRadioButton" name="MO
VMux" >
<item row="1" column="2"
>
<widget class="QRadioButton" name="WA
VMux" >
<property name="text" >
<string>MO
V</string>
<string>WA
V</string>
</property>
</widget>
</item>
<item
>
<widget class="QRadioButton" name="WAV
Mux" >
<item row="2" column="0"
>
<widget class="QRadioButton" name="MPEG1
Mux" >
<property name="text" >
<string>WAV
</string>
<string>MPEG 1
</string>
</property>
</widget>
</item>
<item
>
<widget class="QRadioButton" name="RAW
Mux" >
<item row="2" column="1"
>
<widget class="QRadioButton" name="MP4
Mux" >
<property name="text" >
<string>RAW
</string>
<string>MP4
</string>
</property>
</widget>
</item>
<item
>
<widget class="QRadioButton" name="FLV
Mux" >
<item row="2" column="2"
>
<widget class="QRadioButton" name="RAW
Mux" >
<property name="text" >
<string>FLV
</string>
<string>RAW
</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2" >
<property name="title" >
<string>_("Transcoding")</string>
</property>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
<widget class="QWidget" name="tab_2" >
<attribute name="title" >
<string>_("Video Codec")</string>
</attribute>
<layout class="QGridLayout" >
<property name="margin" >
<number>3</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item row="1" column="5" >
<widget class="QSpinBox" name="aChannels" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="maximum" >
<number>10</number>
</property>
<property name="minimum" >
<number>1</number>
</property>
<property name="value" >
<number>2</number>
<item row="0" column="0" >
<widget class="QCheckBox" name="transcodeVideo_2" >
<property name="text" >
<string>_("Video")</string>
</property>
</widget>
</item>
<item row="1" column="2
" >
<widget class="QLabel" name="aBitrateLabel
" >
<item rowspan="2" row="0" column="1
" >
<widget class="QComboBox" name="vCodec_2
" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>_("Bitrate (kb/s)")</string>
</property>
</widget>
</item>
<item row="0" column="0" >
<widget class="QCheckBox" name="transcodeVideo" >
<property name="text" >
<string>_("Video")</string>
<property name="editable" >
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="0" >
<widget class="QCheckBox" name="transcodeAudio
" >
<widget class="QLabel" name="label_2
" >
<property name="text" >
<string>_("Audio
")</string>
<string>_("Codec
")</string>
</property>
</widget>
</item>
<item row="0" column="2
" >
<widget class="QLabel" name="vBitrateLabel
" >
<item row="2" column="0
" >
<widget class="QLabel" name="vBitrateLabel_2
" >
<property name="enabled" >
<bool>false</bool>
</property>
...
...
@@ -460,25 +446,34 @@
</property>
</widget>
</item>
<item row="1
" column="1" >
<widget class="QComboBox" name="aCodec
" >
<item row="2
" column="1" >
<widget class="QSpinBox" name="vBitrate_2
" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="minimum" >
<number>8</number>
</property>
<property name="maximum" >
<number>8192</number>
</property>
<property name="value" >
<number>800</number>
</property>
</widget>
</item>
<item row="0" column="1
" >
<widget class="QComboBox" name="vCodec
" >
<item row="3" column="0
" >
<widget class="QLabel" name="vScaleLabel_2
" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="editable
" >
<bool>false</bool
>
<property name="text
" >
<string>_("Scale")</string
>
</property>
</widget>
</item>
<item row="0" column="5
" >
<widget class="QComboBox" name="vScale
" >
<item row="3" column="1
" >
<widget class="QComboBox" name="vScale_2
" >
<property name="enabled" >
<bool>false</bool>
</property>
...
...
@@ -487,105 +482,160 @@
</property>
</widget>
</item>
<item row="1" column="4" >
<widget class="QLabel" name="s_2" >
<property name="enabled" >
<bool>false</bool>
</layout>
</widget>
<widget class="QWidget" name="tab_3" >
<attribute name="title" >
<string>_("Audio Codec")</string>
</attribute>
<layout class="QGridLayout" >
<item row="0" column="0" >
<widget class="QCheckBox" name="transcodeAudio_2" >
<property name="text" >
<string>_("Audio")</string>
</property>
</widget>
</item>
<item row="1" column="0" >
<widget class="QLabel" name="label" >
<property name="text" >
<string>_("Channels
")</string>
<string>_("Codec
")</string>
</property>
</widget>
</item>
<item row="0" column="4
" >
<widget class="QLabel" name="vScaleLabel
" >
<item row="1" column="1
" >
<widget class="QComboBox" name="aCodec_2
" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>_("Scale")</string>
</property>
</widget>
</item>
<item row="2" column="0" >
<widget class="QCheckBox" name="transcodeSubs" >
<widget class="QLabel" name="aBitrateLabel_2" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="text" >
<string>_("Subtitles
")</string>
<string>_("Bitrate (kb/s)
")</string>
</property>
</widget>
</item>
<item row="2" column="1" >
<widget class="QComboBox" name="sCodec
" >
<widget class="QSpinBox" name="aBitrate_2
" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="minimum" >
<number>8</number>
</property>
<property name="maximum" >
<number>512</number>
</property>
<property name="value" >
<number>128</number>
</property>
</widget>
</item>
<item row="2" column="2" colspan="4
" >
<widget class="QCheckBox" name="sOverlay
" >
<item row="3" column="0
" >
<widget class="QLabel" name="s_3
" >
<property name="enabled" >
<bool>tru
e</bool>
<bool>fals
e</bool>
</property>
<property name="text" >
<string>_("Overlay subtitles on the video
")</string>
<string>_("Channels
")</string>
</property>
</widget>
</item>
<item row="0" column="3
" >
<widget class="QSpinBox" name="vBitrate
" >
<item row="3" column="1
" >
<widget class="QSpinBox" name="aChannels_2
" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="maximum" >
<number>8192</number>
</property>
<property name="minimum" >
<number>8</number>
<number>1</number>
</property>
<property name="maximum" >
<number>10</number>
</property>
<property name="value" >
<number>800
</number>
<number>2
</number>
</property>
</widget>
</item>
<item row="1" column="3" >
<widget class="QSpinBox" name="aBitrate" >
</layout>
</widget>
<widget class="QWidget" name="tab_4" >
<attribute name="title" >
<string>_("Subtitles")</string>
</attribute>
<layout class="QGridLayout" >
<item row="0" column="0" >
<widget class="QCheckBox" name="transcodeSubs_2" >
<property name="text" >
<string>_("Subtitles")</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QComboBox" name="sCodec_2" >
<property name="enabled" >
<bool>false</bool>
</property>
<property name="maximum" >
<number>512</number>
</property>
<property name="minimum" >
<number>8</number>
</widget>
</item>
<item row="1" column="1" >
<widget class="QCheckBox" name="sOverlay_2" >
<property name="enabled" >
<bool>true</bool>
</property>
<property name="value
" >
<number>128</number
>
<property name="text
" >
<string>_("Overlay subtitles on the video")</string
>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<item
row="4" column="0" colspan="2"
>
<widget class="QGroupBox" name="groupBox_3" >
<property name="title" >
<string>_("Miscellaneous")</string>
</property>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<property name="leftMargin" >
<number>9</number>
</property>
<property name="topMargin" >
<number>9</number>
</property>
<property name="rightMargin" >
<number>9</number>
</property>
<property name="bottomMargin" >
<number>9</number>
</property>
<item>
<layout class="QGridLayout" >
<property name="
m
argin" >
<property name="
leftM
argin" >
<number>3</number>
</property>
<property name="spacing" >
<property name="topMargin" >
<number>3</number>
</property>
<property name="rightMargin" >
<number>3</number>
</property>
<property name="bottomMargin" >
<number>3</number>
</property>
<property name="horizontalSpacing" >
<number>6</number>
</property>
<property name="verticalSpacing" >
<number>6</number>
</property>
<item row="0" column="0" >
...
...
@@ -620,12 +670,12 @@
<property name="alignment" >
<set>Qt::AlignRight</set>
</property>
<property name="maximum" >
<number>255</number>
</property>
<property name="minimum" >
<number>1</number>
</property>
<property name="maximum" >
<number>255</number>
</property>
</widget>
</item>
<item row="0" column="1" colspan="2" >
...
...
@@ -654,12 +704,10 @@
</layout>
</widget>
</item>
<item>
<item
row="5" column="0" colspan="2"
>
<widget class="QGroupBox" name="groupBox_4" >
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>5</hsizetype>
<vsizetype>0</vsizetype>
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
...
...
@@ -668,26 +716,44 @@
<string>_("Generated stream output string")</string>
</property>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<property name="leftMargin" >
<number>9</number>
</property>
<property name="topMargin" >
<number>9</number>
</property>
<property name="rightMargin" >
<number>9</number>
</property>
<property name="bottomMargin" >
<number>9</number>
</property>
<item>
<widget class="QLineEdit" name="mrlEdit" />
</item>
</layout>
</widget>
</item>
<item>
<item
row="6" column="0" colspan="2"
>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<property name="leftMargin" >
<number>0</number>
</property>
<property name="topMargin" >
<number>0</number>
</property>
<property name="rightMargin" >
<number>0</number>
</property>
<property name="bottomMargin" >
<number>0</number>
</property>
<item>
<spacer>
<property name="orientation" >
...
...
@@ -989,182 +1055,6 @@
</hint>
</hints>
</connection>
<connection>
<sender>transcodeVideo</sender>
<signal>clicked(bool)</signal>
<receiver>vCodec</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>60</x>
<y>323</y>
</hint>
<hint type="destinationlabel" >
<x>180</x>
<y>322</y>
</hint>
</hints>
</connection>
<connection>
<sender>transcodeVideo</sender>
<signal>clicked(bool)</signal>
<receiver>vBitrateLabel</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>96</x>
<y>311</y>
</hint>
<hint type="destinationlabel" >
<x>249</x>
<y>324</y>
</hint>
</hints>
</connection>
<connection>
<sender>transcodeVideo</sender>
<signal>clicked(bool)</signal>
<receiver>vScaleLabel</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>27</x>
<y>319</y>
</hint>
<hint type="destinationlabel" >
<x>463</x>
<y>322</y>
</hint>
</hints>
</connection>
<connection>
<sender>transcodeVideo</sender>
<signal>clicked(bool)</signal>
<receiver>vScale</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>26</x>
<y>322</y>
</hint>
<hint type="destinationlabel" >
<x>567</x>
<y>327</y>
</hint>
</hints>
</connection>
<connection>
<sender>transcodeSubs</sender>
<signal>clicked(bool)</signal>
<receiver>sOverlay</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>44</x>
<y>378</y>
</hint>
<hint type="destinationlabel" >
<x>336</x>
<y>376</y>
</hint>
</hints>
</connection>
<connection>
<sender>sOverlay</sender>
<signal>clicked(bool)</signal>
<receiver>transcodeSubs</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>404</x>
<y>374</y>
</hint>
<hint type="destinationlabel" >
<x>92</x>
<y>386</y>
</hint>
</hints>
</connection>
<connection>
<sender>transcodeSubs</sender>
<signal>clicked(bool)</signal>
<receiver>sCodec</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>27</x>
<y>375</y>
</hint>
<hint type="destinationlabel" >
<x>177</x>
<y>381</y>
</hint>
</hints>
</connection>
<connection>
<sender>transcodeAudio</sender>
<signal>clicked(bool)</signal>
<receiver>aCodec</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>40</x>
<y>353</y>
</hint>
<hint type="destinationlabel" >
<x>133</x>
<y>346</y>
</hint>
</hints>
</connection>
<connection>
<sender>transcodeAudio</sender>
<signal>clicked(bool)</signal>
<receiver>aBitrateLabel</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>31</x>
<y>357</y>
</hint>
<hint type="destinationlabel" >
<x>264</x>
<y>355</y>
</hint>
</hints>
</connection>
<connection>
<sender>transcodeAudio</sender>
<signal>clicked(bool)</signal>
<receiver>s_2</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>36</x>
<y>342</y>
</hint>
<hint type="destinationlabel" >
<x>448</x>
<y>342</y>
</hint>
</hints>
</connection>
<connection>
<sender>transcodeAudio</sender>
<signal>clicked(bool)</signal>
<receiver>aChannels</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>26</x>
<y>343</y>
</hint>
<hint type="destinationlabel" >
<x>574</x>
<y>347</y>
</hint>
</hints>
</connection>
<connection>
<sender>fileOutput</sender>
<signal>clicked(bool)</signal>
...
...
@@ -1213,22 +1103,6 @@
</hint>
</hints>
</connection>
<connection>
<sender>rawInput</sender>
<signal>clicked(bool)</signal>
<receiver>Encapsulation</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>579</x>
<y>79</y>
</hint>
<hint type="destinationlabel" >
<x>271</x>
<y>225</y>
</hint>
</hints>
</connection>
<connection>
<sender>rawInput</sender>
<signal>clicked(bool)</signal>
...
...
@@ -1245,22 +1119,6 @@
</hint>
</hints>
</connection>
<connection>
<sender>rawInput</sender>
<signal>clicked(bool)</signal>
<receiver>groupBox_2</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>585</x>
<y>77</y>
</hint>
<hint type="destinationlabel" >
<x>57</x>
<y>296</y>
</hint>
</hints>
</connection>
<connection>
<sender>rawInput</sender>
<signal>clicked(bool)</signal>
...
...
@@ -1309,37 +1167,5 @@
</hint>
</hints>
</connection>
<connection>
<sender>transcodeVideo</sender>
<signal>clicked(bool)</signal>
<receiver>vBitrate</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>28</x>
<y>322</y>
</hint>
<hint type="destinationlabel" >
<x>365</x>
<y>316</y>
</hint>
</hints>
</connection>
<connection>
<sender>transcodeAudio</sender>
<signal>clicked(bool)</signal>
<receiver>aBitrate</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel" >
<x>28</x>
<y>349</y>
</hint>
<hint type="destinationlabel" >
<x>370</x>
<y>352</y>
</hint>
</hints>
</connection>
</connections>
</ui>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment