]> git.sesse.net Git - vlc/commitdiff
Qt4 - Sout: UDP is back
authorJean-Baptiste Kempf <jb@videolan.org>
Thu, 6 Sep 2007 22:29:27 +0000 (22:29 +0000)
committerJean-Baptiste Kempf <jb@videolan.org>
Thu, 6 Sep 2007 22:29:27 +0000 (22:29 +0000)
modules/gui/qt4/dialogs/sout.cpp
modules/gui/qt4/ui/sout.ui

index 59a1bd6591e8e5ece4d6f8eb9a7784aef8381544..15b3194dc3bfce58f69886b5403672ae71326441 100644 (file)
@@ -95,9 +95,9 @@ SoutDialog::SoutDialog( QWidget *parent, intf_thread_t *_p_intf,
  #define CC( x ) CONNECT( ui.x, currentIndexChanged( int ), this, updateMRL() );
 //     /* Output */
      CB( fileOutput ); CB( HTTPOutput ); CB( localOutput );
-     CB( RTPOutput ); CB( MMSHOutput ); CB( rawInput );
-     CT( fileEdit ); CT( HTTPEdit ); CT( RTPEdit ); CT( MMSHEdit );
-     CS( HTTPPort ); CS( RTPPort ); CS( MMSHPort );
+     CB( RTPOutput ); CB( MMSHOutput ); CB( rawInput ); CB( UDPOutput );
+     CT( fileEdit ); CT( HTTPEdit ); CT( RTPEdit ); CT( MMSHEdit ); CT( UDPEdit );
+     CS( HTTPPort ); CS( RTPPort ); CS( MMSHPort ); CS( UDPPort );
 //     /* Transcode */
      CC( vCodecBox ); CC( subsCodecBox ); CC( aCodecBox ) ;
      CB( transcodeVideo ); CB( transcodeAudio ); CB( transcodeSubs );
@@ -230,11 +230,11 @@ void SoutDialog::setOptions()
 void SoutDialog::toggleSout()
 {
     //Toggle all the streaming options.
-    TOGGLEV( ui.HTTPOutput ) ; TOGGLEV( ui.RTPOutput ) ; TOGGLEV( ui.MMSHOutput ) ;
-    TOGGLEV( ui.HTTPEdit ) ; TOGGLEV( ui.RTPEdit ) ; TOGGLEV( ui.MMSHEdit ) ;
-    TOGGLEV( ui.HTTPLabel ) ; TOGGLEV( ui.RTPLabel ) ; TOGGLEV( ui.MMSHLabel ) ;
-    TOGGLEV( ui.HTTPPortLabel ) ; TOGGLEV( ui.RTPPortLabel ) ; TOGGLEV( ui.MMSHPortLabel ) ;
-    TOGGLEV( ui.HTTPPort ) ; TOGGLEV( ui.RTPPort ) ; TOGGLEV( ui.MMSHPort ) ;
+    TOGGLEV( ui.HTTPOutput ) ; TOGGLEV( ui.RTPOutput ) ; TOGGLEV( ui.MMSHOutput ) ; TOGGLEV( ui.UDPOutput ) ;
+    TOGGLEV( ui.HTTPEdit ) ; TOGGLEV( ui.RTPEdit ) ; TOGGLEV( ui.MMSHEdit ) ; TOGGLEV( ui.UDPEdit ) ;
+    TOGGLEV( ui.HTTPLabel ) ; TOGGLEV( ui.RTPLabel ) ; TOGGLEV( ui.MMSHLabel ) ; TOGGLEV( ui.UDPLabel ) ;
+    TOGGLEV( ui.HTTPPortLabel ) ; TOGGLEV( ui.RTPPortLabel ) ; TOGGLEV( ui.MMSHPortLabel ) ; TOGGLEV( ui.UDPPortLabel )
+    TOGGLEV( ui.HTTPPort ) ; TOGGLEV( ui.RTPPort ) ; TOGGLEV( ui.MMSHPort ) ; TOGGLEV( ui.UDPPort ) ;
 
     TOGGLEV( ui.sap ); TOGGLEV( ui.sapName );
     TOGGLEV( ui.sapGroup ); TOGGLEV( ui.sapGroupLabel );
@@ -268,6 +268,7 @@ void SoutDialog::updateMRL()
     sout.b_http = ui.HTTPOutput->isChecked();
     sout.b_mms = ui.MMSHOutput->isChecked();
     sout.b_rtp = ui.RTPOutput->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.vCodecBox->itemData( ui.vCodecBox->currentIndex() ).toString() ) );
@@ -277,9 +278,11 @@ void SoutDialog::updateMRL()
     sout.psz_http = strdup( qtu( ui.HTTPEdit->text() ) );
     sout.psz_mms = strdup( qtu( ui.MMSHEdit->text() ) );
     sout.psz_rtp = strdup( qtu( ui.RTPEdit->text() ) );
+    sout.psz_udp = strdup( qtu( ui.UDPEdit->text() ) );
     sout.i_http = ui.HTTPPort->value();
     sout.i_mms = ui.MMSHPort->value();
     sout.i_rtp = ui.RTPPort->value();
+    sout.i_udp = ui.UDPPort->value();
     sout.i_ab = ui.aBitrateSpin->value();
     sout.i_vb = ui.vBitrateSpin->value();
     sout.i_channels = ui.aChannelsSpin->value();
@@ -288,18 +291,20 @@ void SoutDialog::updateMRL()
     sout.psz_name = strdup( qtu( ui.sapName->text() ) );
 
 #define COUNT() \
-{ \
-    if ( sout.b_local ) \
+    { \
+        if ( sout.b_local ) \
         counter += 1; \
-    if ( sout.b_file ) \
+        if ( sout.b_file ) \
         counter += 1; \
-    if ( sout.b_http ) \
+        if ( sout.b_http ) \
         counter += 1; \
-    if ( sout.b_mms ) \
+        if ( sout.b_mms ) \
         counter += 1; \
-    if ( sout.b_rtp ) \
+        if ( sout.b_rtp ) \
         counter += 1; \
-}
+        if ( sout.b_udp ) \
+        counter += 1; \
+    }
 
 COUNT()
 
@@ -357,7 +362,7 @@ COUNT()
         mrl.append( "}" );
     }
 
-    if ( sout.b_local || sout.b_file || sout.b_http || sout.b_mms || sout.b_rtp )
+    if ( sout.b_local || sout.b_file || sout.b_http || sout.b_mms || sout.b_rtp || sout.b_udp )
     {
 
 #define ISMORE() if ( more ) mrl.append( "," );
@@ -368,11 +373,12 @@ COUNT()
             mrl.append( "dst=" ); \
         }
 
-    if ( trans )
-    {
-        mrl.append( ":" );
-    }
-    else
+
+        if ( trans )
+        {
+            mrl.append( ":" );
+        }
+        else
         {
             mrl = ":sout=#";
         }
@@ -386,15 +392,15 @@ COUNT()
         {
             ISMORE();
             ATLEASTONE()
-            mrl.append( "display" );
+                mrl.append( "display" );
             more = true;
         }
 
         if ( sout.b_file )
         {
             ISMORE();
-        ATLEASTONE()
-            mrl.append( "std{access=file,mux=" );
+            ATLEASTONE()
+                mrl.append( "std{access=file,mux=" );
             mrl.append( sout.psz_mux );
             mrl.append( ",dst=" );
             mrl.append( sout.psz_file );
@@ -406,7 +412,7 @@ COUNT()
         {
             ISMORE();
             ATLEASTONE()
-            mrl.append( "std{access=http,mux=" );
+                mrl.append( "std{access=http,mux=" );
             mrl.append( sout.psz_mux );
             mrl.append( ",dst=" );
             mrl.append( sout.psz_http );
@@ -420,7 +426,7 @@ COUNT()
         {
             ISMORE();
             ATLEASTONE()
-            mrl.append( "std{access=mmsh,mux=" );
+                mrl.append( "std{access=mmsh,mux=" );
             mrl.append( sout.psz_mux );
             mrl.append( ",dst=" );
             mrl.append( sout.psz_mms );
@@ -434,12 +440,26 @@ COUNT()
         {
             ISMORE();
             ATLEASTONE()
-            mrl.append( "rtp{mux=" );
+                mrl.append( "rtp{mux=" );
             mrl.append( sout.psz_mux );
             mrl.append( ",dst=" );
             mrl.append( sout.psz_rtp );
             mrl.append( ":" );
             mrl.append( QString::number( sout.i_rtp,10 ) );
+            mrl.append( "}" );
+            more = true;
+        }
+
+        if ( sout.b_udp )
+        {
+            ISMORE();
+            ATLEASTONE()
+            mrl.append( "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," );
@@ -466,6 +486,6 @@ COUNT()
     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_rtp ); free( sout.psz_mux );
+    free( sout.psz_rtp ); free( sout.psz_udp ); free( sout.psz_mux );
     free( sout.psz_name ); free( sout.psz_group );
 }
index bccb4e97505ef91ca5a25cb03a1de1de750a8131..04165adf7e207baba4ae72a525ae79f6ccebdb37 100644 (file)
@@ -6,7 +6,7 @@
     <x>0</x>
     <y>0</y>
     <width>617</width>
-    <height>653</height>
+    <height>678</height>
    </rect>
   </property>
   <property name="sizePolicy" >
      <layout class="QHBoxLayout" >
       <item>
        <layout class="QGridLayout" >
-        <item row="1" column="1" >
-         <widget class="QLabel" name="fileLabel" >
-          <property name="enabled" >
-           <bool>false</bool>
-          </property>
+        <item row="0" column="0" >
+         <widget class="QCheckBox" name="localOutput" >
           <property name="text" >
-           <string>_("Filename")</string>
+           <string>_("Play locally")</string>
           </property>
          </widget>
         </item>
           </property>
          </widget>
         </item>
-        <item row="2" column="4" >
-         <widget class="QSpinBox" name="HTTPPort" >
+        <item row="1" column="1" >
+         <widget class="QLabel" name="fileLabel" >
           <property name="enabled" >
            <bool>false</bool>
           </property>
-          <property name="maximumSize" >
-           <size>
-            <width>90</width>
-            <height>16777215</height>
-           </size>
-          </property>
-          <property name="alignment" >
-           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-          </property>
-          <property name="minimum" >
-           <number>1</number>
+          <property name="text" >
+           <string>_("Filename")</string>
           </property>
-          <property name="maximum" >
-           <number>65535</number>
+         </widget>
+        </item>
+        <item row="1" column="2" >
+         <widget class="QLineEdit" name="fileEdit" >
+          <property name="enabled" >
+           <bool>false</bool>
           </property>
-          <property name="singleStep" >
-           <number>1</number>
+         </widget>
+        </item>
+        <item row="1" column="3" >
+         <widget class="QPushButton" name="fileSelectButton" >
+          <property name="enabled" >
+           <bool>false</bool>
           </property>
-          <property name="value" >
-           <number>8080</number>
+          <property name="text" >
+           <string>_("Browse...")</string>
           </property>
          </widget>
         </item>
           </property>
          </widget>
         </item>
-        <item row="1" column="2" >
-         <widget class="QLineEdit" name="fileEdit" >
+        <item row="2" column="0" >
+         <widget class="QCheckBox" name="HTTPOutput" >
+          <property name="text" >
+           <string>HTTP</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="1" >
+         <widget class="QLabel" name="HTTPLabel" >
           <property name="enabled" >
            <bool>false</bool>
           </property>
+          <property name="text" >
+           <string>_("Address")</string>
+          </property>
          </widget>
         </item>
-        <item row="3" column="3" >
-         <widget class="QLabel" name="MMSHPortLabel" >
+        <item row="2" column="2" >
+         <widget class="QLineEdit" name="HTTPEdit" >
+          <property name="enabled" >
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="3" >
+         <widget class="QLabel" name="HTTPPortLabel" >
           <property name="enabled" >
            <bool>false</bool>
           </property>
           </property>
          </widget>
         </item>
-        <item row="3" column="1" >
-         <widget class="QLabel" name="MMSHLabel" >
+        <item row="2" column="4" >
+         <widget class="QSpinBox" name="HTTPPort" >
           <property name="enabled" >
            <bool>false</bool>
           </property>
-          <property name="text" >
-           <string>_("Address")</string>
+          <property name="maximumSize" >
+           <size>
+            <width>90</width>
+            <height>16777215</height>
+           </size>
           </property>
-         </widget>
-        </item>
-        <item row="0" column="0" >
-         <widget class="QCheckBox" name="localOutput" >
-          <property name="text" >
-           <string>_("Play locally")</string>
+          <property name="alignment" >
+           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+          </property>
+          <property name="minimum" >
+           <number>1</number>
+          </property>
+          <property name="maximum" >
+           <number>65535</number>
+          </property>
+          <property name="singleStep" >
+           <number>1</number>
+          </property>
+          <property name="value" >
+           <number>8080</number>
           </property>
          </widget>
         </item>
           </property>
          </widget>
         </item>
-        <item row="1" column="3" >
-         <widget class="QPushButton" name="fileSelectButton" >
+        <item row="3" column="1" >
+         <widget class="QLabel" name="MMSHLabel" >
           <property name="enabled" >
            <bool>false</bool>
           </property>
           <property name="text" >
-           <string>_("Browse...")</string>
+           <string>_("Address")</string>
           </property>
          </widget>
         </item>
-        <item row="2" column="2" >
-         <widget class="QLineEdit" name="HTTPEdit" >
+        <item row="3" column="2" >
+         <widget class="QLineEdit" name="MMSHEdit" >
           <property name="enabled" >
            <bool>false</bool>
           </property>
          </widget>
         </item>
-        <item row="2" column="1" >
-         <widget class="QLabel" name="HTTPLabel" >
+        <item row="3" column="3" >
+         <widget class="QLabel" name="MMSHPortLabel" >
           <property name="enabled" >
            <bool>false</bool>
           </property>
           <property name="text" >
-           <string>_("Address")</string>
+           <string>_("Port:")</string>
+          </property>
+          <property name="alignment" >
+           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
           </property>
          </widget>
         </item>
-        <item row="2" column="3" >
-         <widget class="QLabel" name="HTTPPortLabel" >
+        <item row="3" column="4" >
+         <widget class="QSpinBox" name="MMSHPort" >
           <property name="enabled" >
            <bool>false</bool>
           </property>
-          <property name="text" >
-           <string>_("Port:")</string>
+          <property name="maximumSize" >
+           <size>
+            <width>90</width>
+            <height>16777215</height>
+           </size>
           </property>
           <property name="alignment" >
            <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
           </property>
-         </widget>
-        </item>
-        <item row="3" column="2" >
-         <widget class="QLineEdit" name="MMSHEdit" >
-          <property name="enabled" >
-           <bool>false</bool>
+          <property name="minimum" >
+           <number>1</number>
           </property>
-         </widget>
-        </item>
-        <item row="2" column="0" >
-         <widget class="QCheckBox" name="HTTPOutput" >
-          <property name="text" >
-           <string>HTTP</string>
+          <property name="maximum" >
+           <number>65535</number>
+          </property>
+          <property name="value" >
+           <number>1234</number>
           </property>
          </widget>
         </item>
           </property>
          </widget>
         </item>
+        <item row="4" column="2" >
+         <widget class="QLineEdit" name="RTPEdit" >
+          <property name="enabled" >
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
         <item row="4" column="3" >
          <widget class="QLabel" name="RTPPortLabel" >
           <property name="enabled" >
           </property>
          </widget>
         </item>
-        <item row="4" column="2" >
-         <widget class="QLineEdit" name="RTPEdit" >
-          <property name="enabled" >
-           <bool>false</bool>
-          </property>
-         </widget>
-        </item>
-        <item row="3" column="4" >
-         <widget class="QSpinBox" name="MMSHPort" >
+        <item row="4" column="4" >
+         <widget class="QSpinBox" name="RTPPort" >
           <property name="enabled" >
            <bool>false</bool>
           </property>
           </property>
          </widget>
         </item>
-        <item row="4" column="4" >
-         <widget class="QSpinBox" name="RTPPort" >
+        <item row="5" column="0" >
+         <widget class="QCheckBox" name="UDPOutput" >
+          <property name="text" >
+           <string>UDP</string>
+          </property>
+         </widget>
+        </item>
+        <item row="5" column="1" >
+         <widget class="QLabel" name="UDPLabel" >
+          <property name="enabled" >
+           <bool>false</bool>
+          </property>
+          <property name="text" >
+           <string>_("Address")</string>
+          </property>
+         </widget>
+        </item>
+        <item row="5" column="2" >
+         <widget class="QLineEdit" name="UDPEdit" >
+          <property name="enabled" >
+           <bool>false</bool>
+          </property>
+         </widget>
+        </item>
+        <item row="5" column="3" >
+         <widget class="QLabel" name="UDPPortLabel" >
+          <property name="enabled" >
+           <bool>false</bool>
+          </property>
+          <property name="text" >
+           <string>_("Port")</string>
+          </property>
+          <property name="alignment" >
+           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+          </property>
+         </widget>
+        </item>
+        <item row="5" column="4" >
+         <widget class="QSpinBox" name="UDPPort" >
           <property name="enabled" >
            <bool>false</bool>
           </property>
           <property name="alignment" >
            <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
           </property>
+          <property name="accelerated" >
+           <bool>true</bool>
+          </property>
           <property name="minimum" >
            <number>1</number>
           </property>