]> git.sesse.net Git - vlc/commitdiff
* modules/gui/macosx/open.m: Stream output doesn't do UDP/PS,
authorChristophe Massiot <massiot@videolan.org>
Thu, 23 Jan 2003 11:48:18 +0000 (11:48 +0000)
committerChristophe Massiot <massiot@videolan.org>
Thu, 23 Jan 2003 11:48:18 +0000 (11:48 +0000)
* modules/audio_filter/channel_mixer/trivial.c: Fixed reverse stereo mode
  with MPEG files,
* src/audio_output/output.c: Fixed dual-mono handling.

modules/audio_filter/channel_mixer/trivial.c
modules/gui/macosx/open.m
src/audio_output/output.c

index 0fa6314b10298b2f62341d71e8aa708d40149b06..2d2c9f10bae5b68672a1afe6941a5a41be3ba514 100644 (file)
@@ -2,7 +2,7 @@
  * trivial.c : trivial channel mixer plug-in (drops unwanted channels)
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: trivial.c,v 1.10 2003/01/22 18:31:47 massiot Exp $
+ * $Id: trivial.c,v 1.11 2003/01/23 11:48:18 massiot Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -113,6 +113,9 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     s32 * p_dest = (s32 *)p_out_buf->p_buffer;
     s32 * p_src = (s32 *)p_in_buf->p_buffer;
 
+    p_out_buf->i_nb_samples = p_in_buf->i_nb_samples;
+    p_out_buf->i_nb_bytes = p_in_buf->i_nb_bytes * i_output_nb / i_input_nb;
+
     if ( (p_filter->output.i_original_channels & AOUT_CHAN_PHYSMASK)
                 != (p_filter->input.i_original_channels & AOUT_CHAN_PHYSMASK)
            && (p_filter->input.i_original_channels & AOUT_CHAN_PHYSMASK)
@@ -134,17 +137,6 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                 p_src += 2;
             }
         }
-        else if ( p_filter->output.i_original_channels
-                                        & AOUT_CHAN_REVERSESTEREO )
-        {
-            /* Reverse-stereo mode */
-            for ( i = p_in_buf->i_nb_samples; i -= 2; )
-            {
-                *p_dest++ = p_src[1];
-                *p_dest++ = p_src[0];
-                p_src += 2;
-            }
-        }
         else
         {
             /* Fake-stereo mode */
@@ -158,13 +150,24 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
             }
         }
     }
+    else if ( p_filter->output.i_original_channels
+                                    & AOUT_CHAN_REVERSESTEREO )
+    {
+        /* Reverse-stereo mode */
+        int i;
+        for ( i = p_in_buf->i_nb_samples; i--; )
+        {
+            *p_dest = p_src[1];
+            p_dest++;
+            *p_dest = p_src[0];
+            p_dest++;
+            p_src += 2;
+        }
+    }
     else
     {
         SparseCopy( p_dest, p_src, p_in_buf->i_nb_samples, i_output_nb,
                     i_input_nb );
     }
-
-    p_out_buf->i_nb_samples = p_in_buf->i_nb_samples;
-    p_out_buf->i_nb_bytes = p_in_buf->i_nb_bytes * i_output_nb / i_input_nb;
 }
 
index 0b2b6c33d21f96eda6e36b1d312c78bf02febb5f..636b9fad9b38fab39b07cdbd3d22c014edf357a4 100644 (file)
@@ -2,7 +2,7 @@
  * open.m: MacOS X plugin for vlc
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: open.m,v 1.11 2003/01/20 03:45:06 hartman Exp $
+ * $Id: open.m,v 1.12 2003/01/23 11:48:18 massiot Exp $
  *
  * Authors: Jon Lech Johansen <jon-vl@nanocrew.net> 
  *          Christophe Massiot <massiot@via.ecp.fr>
@@ -773,23 +773,22 @@ NSArray *GetEjectableMediaOfClass( const char *psz_class )
 {
     NSString *o_mode;
     BOOL b_file = FALSE;
-    BOOL b_udp = FALSE;
-    BOOL b_rtp = FALSE;
+    BOOL b_net = FALSE;
 
     o_mode = [[o_sout_access selectedCell] title];
 
     if( [o_mode isEqualToString: _NS("File")] ) b_file = TRUE;   
-    else if( [o_mode isEqualToString: _NS("UDP")] ) b_udp = TRUE;
-    else if( [o_mode isEqualToString: _NS("RTP")] ) b_rtp = TRUE;
+    else if( [o_mode isEqualToString: _NS("UDP")] ) b_net = TRUE;
+    else if( [o_mode isEqualToString: _NS("RTP")] ) b_net = TRUE;
 
     [o_sout_file_path setEnabled: b_file];
     [o_sout_file_btn_browse setEnabled: b_file];
-    [o_sout_udp_addr setEnabled: b_udp|b_rtp];
-    [o_sout_udp_port setEnabled: b_udp|b_rtp];
-    [o_sout_udp_port_stp setEnabled: b_udp|b_rtp];
-    [[o_sout_mux cellAtRow:0 column: 0] setEnabled: !b_rtp];
+    [o_sout_udp_addr setEnabled: b_net];
+    [o_sout_udp_port setEnabled: b_net];
+    [o_sout_udp_port_stp setEnabled: b_net];
+    [[o_sout_mux cellAtRow:0 column: 0] setEnabled: !b_net];
 
-    if ( b_rtp )
+    if ( b_net )
     {
         [[o_sout_mux cellAtRow: 0 column:1] setState: YES];
     }
index 425c1061f094121381fa02fa1193a7cd28005a30..f409f4000f3146aa02868b14e3d2c8361f75ecb0 100644 (file)
@@ -2,7 +2,7 @@
  * output.c : internal management of output streams for the audio output
  *****************************************************************************
  * Copyright (C) 2002 VideoLAN
- * $Id: output.c,v 1.31 2003/01/22 18:31:47 massiot Exp $
+ * $Id: output.c,v 1.32 2003/01/23 11:48:18 massiot Exp $
  *
  * Authors: Christophe Massiot <massiot@via.ecp.fr>
  *
@@ -100,20 +100,19 @@ int aout_OutputNew( aout_instance_t * p_aout,
     {
         /* Mono - create the audio-channels variable. */
         var_Create( p_aout, "audio-channels", VLC_VAR_STRING | VLC_VAR_HASCHOICE );
+        val.psz_string = N_("Both");
+        var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val );
+        val.psz_string = N_("Left");
+        var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val );
+        val.psz_string = N_("Right");
+        var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val );
         if ( p_aout->output.output.i_original_channels & AOUT_CHAN_DUALMONO )
         {
             /* Go directly to the left channel. */
             p_aout->output.output.i_original_channels = AOUT_CHAN_LEFT;
+            val.psz_string = N_("Left");
+            var_Set( p_aout, "audio-channels", val );
         }
-        else
-        {
-            val.psz_string = N_("Both");
-            var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val );
-        }
-        val.psz_string = N_("Left");
-        var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val );
-        val.psz_string = N_("Right");
-        var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val );
         var_AddCallback( p_aout, "audio-channels", aout_ChannelsRestart,
                          NULL );
     }
@@ -137,6 +136,13 @@ int aout_OutputNew( aout_instance_t * p_aout,
         var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val );
         val.psz_string = N_("Reverse stereo");
         var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val );
+        if ( p_aout->output.output.i_original_channels & AOUT_CHAN_DUALMONO )
+        {
+            /* Go directly to the left channel. */
+            p_aout->output.output.i_original_channels = AOUT_CHAN_LEFT;
+            val.psz_string = N_("Left");
+            var_Set( p_aout, "audio-channels", val );
+        }
         var_AddCallback( p_aout, "audio-channels", aout_ChannelsRestart,
                          NULL );
     }