]> git.sesse.net Git - vlc/commitdiff
aout_filter_t.(in|out)put -> aout_filter_t.fmt_(in|out).audio
authorRémi Denis-Courmont <remi@remlab.net>
Sun, 27 Sep 2009 14:39:52 +0000 (17:39 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Sun, 27 Sep 2009 14:39:52 +0000 (17:39 +0300)
This migrates to a filter_t-like syntax

29 files changed:
include/vlc_aout.h
modules/audio_filter/channel_mixer/dolby.c
modules/audio_filter/channel_mixer/headphone.c
modules/audio_filter/channel_mixer/mono.c
modules/audio_filter/channel_mixer/simple.c
modules/audio_filter/channel_mixer/trivial.c
modules/audio_filter/chorus_flanger.c
modules/audio_filter/converter/a52tofloat32.c
modules/audio_filter/converter/a52tospdif.c
modules/audio_filter/converter/dtstofloat32.c
modules/audio_filter/converter/dtstospdif.c
modules/audio_filter/converter/fixed.c
modules/audio_filter/converter/float.c
modules/audio_filter/converter/mpgatofixed32.c
modules/audio_filter/converter/neon.c
modules/audio_filter/equalizer.c
modules/audio_filter/normvol.c
modules/audio_filter/param_eq.c
modules/audio_filter/resampler/bandlimited.c
modules/audio_filter/resampler/linear.c
modules/audio_filter/resampler/trivial.c
modules/audio_filter/resampler/ugly.c
modules/audio_filter/scaletempo.c
modules/audio_filter/spatializer/spatializer.cpp
modules/visualization/goom.c
modules/visualization/projectm.cpp
modules/visualization/visual/visual.c
src/audio_output/filters.c
src/audio_output/input.c

index 8660c718f9be0f876e190a8c7728245f50ec9c9d..fee292008ff56390c4a7e78330b8a4a328c7e94d 100644 (file)
@@ -162,13 +162,14 @@ struct aout_filter_t
 {
     VLC_COMMON_MEMBERS
 
-    audio_sample_format_t   input;
-    audio_sample_format_t   output;
-    aout_alloc_t            output_alloc;
-
     module_t *              p_module;
     aout_filter_sys_t       *p_sys;
 
+    es_format_t             fmt_in;
+    es_format_t             fmt_out;
+
+    aout_alloc_t            output_alloc;
+
     bool                    b_in_place;
     bool                    b_continuity;
 
index 16ae1bd425deb81f1b4475f777b9fe85de5eaf0d..735e74d41240ebeab082d7caf93ddb889091e35d 100644 (file)
@@ -84,22 +84,22 @@ static int Create( vlc_object_t *p_this )
     aout_filter_sys_t *p_sys;
 
     /* Validate audio filter format */
-    if ( p_filter->input.i_physical_channels != (AOUT_CHAN_LEFT|AOUT_CHAN_RIGHT)
-       || ! ( p_filter->input.i_original_channels & AOUT_CHAN_DOLBYSTEREO )
-       || aout_FormatNbChannels( &p_filter->output ) <= 2
-       || ( p_filter->input.i_original_channels & ~AOUT_CHAN_DOLBYSTEREO )
-          != ( p_filter->output.i_original_channels & ~AOUT_CHAN_DOLBYSTEREO ) )
+    if ( p_filter->fmt_in.audio.i_physical_channels != (AOUT_CHAN_LEFT|AOUT_CHAN_RIGHT)
+       || ! ( p_filter->fmt_in.audio.i_original_channels & AOUT_CHAN_DOLBYSTEREO )
+       || aout_FormatNbChannels( &p_filter->fmt_out.audio ) <= 2
+       || ( p_filter->fmt_in.audio.i_original_channels & ~AOUT_CHAN_DOLBYSTEREO )
+          != ( p_filter->fmt_out.audio.i_original_channels & ~AOUT_CHAN_DOLBYSTEREO ) )
     {
         return VLC_EGENERIC;
     }
 
-    if ( p_filter->input.i_rate != p_filter->output.i_rate )
+    if ( p_filter->fmt_in.audio.i_rate != p_filter->fmt_out.audio.i_rate )
     {
         return VLC_EGENERIC;
     }
 
-    if ( p_filter->input.i_format != VLC_CODEC_FL32
-          || p_filter->output.i_format != VLC_CODEC_FL32 )
+    if ( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         return VLC_EGENERIC;
     }
@@ -117,7 +117,7 @@ static int Create( vlc_object_t *p_this )
 
     while ( pi_channels[i] )
     {
-        if ( p_filter->output.i_physical_channels & pi_channels[i] )
+        if ( p_filter->fmt_out.audio.i_physical_channels & pi_channels[i] )
         {
             switch ( pi_channels[i] )
             {
@@ -171,13 +171,13 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     float * p_in = (float*) p_in_buf->p_buffer;
     float * p_out = (float*) p_out_buf->p_buffer;
     size_t i_nb_samples = p_in_buf->i_nb_samples;
-    size_t i_nb_channels = aout_FormatNbChannels( &p_filter->output );
+    size_t i_nb_channels = aout_FormatNbChannels( &p_filter->fmt_out.audio );
     size_t i_nb_rear = 0;
     size_t i;
 
     p_out_buf->i_nb_samples = i_nb_samples;
     p_out_buf->i_buffer = sizeof(float) * i_nb_samples
-                            * aout_FormatNbChannels( &p_filter->output );
+                            * aout_FormatNbChannels( &p_filter->fmt_out.audio );
     memset( p_out, 0, p_out_buf->i_buffer );
 
 
index 76138f685f4ef07c6507429a81306610e54e59ee..d5f0e8eb43ca16c2f4313b160fe3d63814821a0d 100644 (file)
@@ -358,7 +358,7 @@ static int Create( vlc_object_t *p_this )
     bool b_fit = true;
 
     /* Activate this filter only with stereo devices */
-    if( p_filter->output.i_physical_channels
+    if( p_filter->fmt_out.audio.i_physical_channels
             != (AOUT_CHAN_LEFT|AOUT_CHAN_RIGHT) )
     {
         msg_Dbg( p_filter, "filter discarded (incompatible format)" );
@@ -366,31 +366,31 @@ static int Create( vlc_object_t *p_this )
     }
 
     /* Request a specific format if not already compatible */
-    if( p_filter->input.i_original_channels
-            != p_filter->output.i_original_channels )
+    if( p_filter->fmt_in.audio.i_original_channels
+            != p_filter->fmt_out.audio.i_original_channels )
     {
         b_fit = false;
-        p_filter->input.i_original_channels =
-                                        p_filter->output.i_original_channels;
+        p_filter->fmt_in.audio.i_original_channels =
+                                        p_filter->fmt_out.audio.i_original_channels;
     }
-    if( p_filter->input.i_format != VLC_CODEC_FL32
-          || p_filter->output.i_format != VLC_CODEC_FL32 )
+    if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         b_fit = false;
-        p_filter->input.i_format = VLC_CODEC_FL32;
-        p_filter->output.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_out.audio.i_format = VLC_CODEC_FL32;
     }
-    if( p_filter->input.i_rate != p_filter->output.i_rate )
+    if( p_filter->fmt_in.audio.i_rate != p_filter->fmt_out.audio.i_rate )
     {
         b_fit = false;
-        p_filter->input.i_rate = p_filter->output.i_rate;
+        p_filter->fmt_in.audio.i_rate = p_filter->fmt_out.audio.i_rate;
     }
-    if( p_filter->input.i_physical_channels == (AOUT_CHAN_LEFT|AOUT_CHAN_RIGHT)
-          && ( p_filter->input.i_original_channels & AOUT_CHAN_DOLBYSTEREO )
+    if( p_filter->fmt_in.audio.i_physical_channels == (AOUT_CHAN_LEFT|AOUT_CHAN_RIGHT)
+          && ( p_filter->fmt_in.audio.i_original_channels & AOUT_CHAN_DOLBYSTEREO )
           && ! config_GetInt ( p_filter , "headphone-dolby" ) )
     {
         b_fit = false;
-        p_filter->input.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT |
+        p_filter->fmt_in.audio.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT |
                                               AOUT_CHAN_CENTER |
                                               AOUT_CHAN_REARLEFT |
                                               AOUT_CHAN_REARRIGHT;
@@ -412,9 +412,9 @@ static int Create( vlc_object_t *p_this )
     p_sys->p_atomic_operations = NULL;
 
     if( Init( VLC_OBJECT(p_filter), p_sys
-                , aout_FormatNbChannels ( &p_filter->input )
-                , p_filter->input.i_physical_channels
-                , p_filter->input.i_rate ) < 0 )
+                , aout_FormatNbChannels ( &p_filter->fmt_in.audio )
+                , p_filter->fmt_in.audio.i_physical_channels
+                , p_filter->fmt_in.audio.i_rate ) < 0 )
     {
         free( p_sys );
         return VLC_EGENERIC;
@@ -446,8 +446,8 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 {
     VLC_UNUSED(p_aout);
     aout_filter_sys_t *p_sys = p_filter->p_sys;
-    int i_input_nb = aout_FormatNbChannels( &p_filter->input );
-    int i_output_nb = aout_FormatNbChannels( &p_filter->output );
+    int i_input_nb = aout_FormatNbChannels( &p_filter->fmt_in.audio );
+    int i_output_nb = aout_FormatNbChannels( &p_filter->fmt_out.audio );
 
     float * p_in = (float*) p_in_buf->p_buffer;
     uint8_t * p_out;
@@ -668,10 +668,10 @@ static block_t *Convert( filter_t *p_filter, block_t *p_block )
     p_out->i_length = p_block->i_length;
 
     aout_filter.p_sys = (struct aout_filter_sys_t *)p_filter->p_sys;
-    aout_filter.input = p_filter->fmt_in.audio;
-    aout_filter.input.i_format = p_filter->fmt_in.i_codec;
-    aout_filter.output = p_filter->fmt_out.audio;
-    aout_filter.output.i_format = p_filter->fmt_out.i_codec;
+    aout_filter.fmt_in.audio = p_filter->fmt_in.audio;
+    aout_filter.fmt_in.audio.i_format = p_filter->fmt_in.i_codec;
+    aout_filter.fmt_out.audio = p_filter->fmt_out.audio;
+    aout_filter.fmt_out.audio.i_format = p_filter->fmt_out.i_codec;
     aout_filter.b_in_place = 0;
 
     in_buf.p_buffer = p_block->p_buffer;
index 8e54f46c948864eb85dd756ccadfa2605254d056..7312be28cbdbbd8ee3c4b04e02c5329fe8fca0ba 100644 (file)
@@ -484,10 +484,10 @@ static block_t *Convert( filter_t *p_filter, block_t *p_block )
     p_out->i_length = p_block->i_length;
 
     aout_filter.p_sys = (struct aout_filter_sys_t *)p_filter->p_sys;
-    aout_filter.input = p_filter->fmt_in.audio;
-    aout_filter.input.i_format = p_filter->fmt_in.i_codec;
-    aout_filter.output = p_filter->fmt_out.audio;
-    aout_filter.output.i_format = p_filter->fmt_out.i_codec;
+    aout_filter.fmt_in.audio = p_filter->fmt_in.audio;
+    aout_filter.fmt_in.audio.i_format = p_filter->fmt_in.i_codec;
+    aout_filter.fmt_out.audio = p_filter->fmt_out.audio;
+    aout_filter.fmt_out.audio.i_format = p_filter->fmt_out.i_codec;
 
     in_buf.p_buffer = p_block->p_buffer;
     in_buf.i_buffer = p_block->i_buffer;
@@ -535,8 +535,8 @@ static void stereo2mono_downmix( aout_filter_t * p_filter,
 {
     filter_sys_t *p_sys = (filter_sys_t *)p_filter->p_sys;
 
-    int i_input_nb = aout_FormatNbChannels( &p_filter->input );
-    int i_output_nb = aout_FormatNbChannels( &p_filter->output );
+    int i_input_nb = aout_FormatNbChannels( &p_filter->fmt_in.audio );
+    int i_output_nb = aout_FormatNbChannels( &p_filter->fmt_out.audio );
 
     int16_t * p_in = (int16_t*) p_in_buf->p_buffer;
     uint8_t * p_out;
index 4180450235223f3296fea5c1a003a943ff1eea46..209676fbacc070099c7dc01f4ee79e436c68bba3 100644 (file)
@@ -85,7 +85,7 @@ static int Create( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if( !IsSupported( &p_filter->input, &p_filter->output ) )
+    if( !IsSupported( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
         return -1;
 
     p_filter->pf_do_work = DoWork;
@@ -101,7 +101,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                     aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     VLC_UNUSED(p_aout);
-    const unsigned i_input_physical = p_filter->input.i_physical_channels;
+    const unsigned i_input_physical = p_filter->fmt_in.audio.i_physical_channels;
 
     const bool b_input_7_0 = (i_input_physical & ~AOUT_CHAN_LFE) == AOUT_CHANS_7_0;
     const bool b_input_5_0 = !b_input_7_0 &&
@@ -112,8 +112,8 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     const bool b_input_3_0 = !b_input_7_0 && !b_input_5_0 && !b_input_4_center_rear &&
                              (i_input_physical & ~AOUT_CHAN_LFE) == AOUT_CHANS_3_0;
 
-    int i_input_nb = aout_FormatNbChannels( &p_filter->input );
-    int i_output_nb = aout_FormatNbChannels( &p_filter->output );
+    int i_input_nb = aout_FormatNbChannels( &p_filter->fmt_in.audio );
+    int i_output_nb = aout_FormatNbChannels( &p_filter->fmt_out.audio );
     float *p_dest = (float *)p_out_buf->p_buffer;
     const float *p_src = (const float *)p_in_buf->p_buffer;
     int i;
@@ -121,7 +121,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     p_out_buf->i_nb_samples = p_in_buf->i_nb_samples;
     p_out_buf->i_buffer = p_in_buf->i_buffer * i_output_nb / i_input_nb;
 
-    if( p_filter->output.i_physical_channels == AOUT_CHANS_2_0 )
+    if( p_filter->fmt_out.audio.i_physical_channels == AOUT_CHANS_2_0 )
     {
         if( b_input_7_0 )
         for( i = p_in_buf->i_nb_samples; i--; )
@@ -133,7 +133,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
             p_src += 7;
 
-            if( p_filter->input.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
+            if( p_filter->fmt_in.audio.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
         }
         else if( b_input_5_0 )
         for( i = p_in_buf->i_nb_samples; i--; )
@@ -145,7 +145,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
             p_src += 5;
 
-            if( p_filter->input.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
+            if( p_filter->fmt_in.audio.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
         }
         else if( b_input_3_0 )
         for( i = p_in_buf->i_nb_samples; i--; )
@@ -157,7 +157,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
             p_src += 3;
 
-            if( p_filter->input.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
+            if( p_filter->fmt_in.audio.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
         }
         else if (b_input_4_center_rear)
         for( i = p_in_buf->i_nb_samples; i--; )
@@ -169,7 +169,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
           p_src += 4;
         }
     }
-    else if( p_filter->output.i_physical_channels == AOUT_CHAN_CENTER )
+    else if( p_filter->fmt_out.audio.i_physical_channels == AOUT_CHAN_CENTER )
     {
         if( b_input_7_0 )
         for( i = p_in_buf->i_nb_samples; i--; )
@@ -179,7 +179,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
             p_src += 7;
 
-            if( p_filter->input.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
+            if( p_filter->fmt_in.audio.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
         }
         else if( b_input_5_0 )
         for( i = p_in_buf->i_nb_samples; i--; )
@@ -189,7 +189,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
             p_src += 5;
 
-            if( p_filter->input.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
+            if( p_filter->fmt_in.audio.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
         }
         else if( b_input_3_0 )
         for( i = p_in_buf->i_nb_samples; i--; )
@@ -199,7 +199,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
             p_src += 3;
 
-            if( p_filter->input.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
+            if( p_filter->fmt_in.audio.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
         }
         else
         for( i = p_in_buf->i_nb_samples; i--; )
@@ -212,7 +212,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     }
     else
     {
-        assert( p_filter->output.i_physical_channels == AOUT_CHANS_4_0 );
+        assert( p_filter->fmt_out.audio.i_physical_channels == AOUT_CHANS_4_0 );
         assert( b_input_7_0 || b_input_5_0 );
 
         if( b_input_7_0 )
@@ -229,7 +229,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
             p_src += 7;
 
-            if( p_filter->input.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
+            if( p_filter->fmt_in.audio.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
         }
         else
         for( i = p_in_buf->i_nb_samples; i--; )
@@ -245,7 +245,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
             p_src += 5;
 
-            if( p_filter->input.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
+            if( p_filter->fmt_in.audio.i_physical_channels & AOUT_CHAN_LFE ) p_src++;
         }
     }
 }
@@ -306,10 +306,10 @@ static block_t *Filter( filter_t *p_filter, block_t *p_block )
     p_out->i_length = p_block->i_length;
 
     aout_filter.p_sys = (struct aout_filter_sys_t *)p_filter->p_sys;
-    aout_filter.input = p_filter->fmt_in.audio;
-    aout_filter.input.i_format = p_filter->fmt_in.i_codec;
-    aout_filter.output = p_filter->fmt_out.audio;
-    aout_filter.output.i_format = p_filter->fmt_out.i_codec;
+    aout_filter.fmt_in.audio = p_filter->fmt_in.audio;
+    aout_filter.fmt_in.audio.i_format = p_filter->fmt_in.i_codec;
+    aout_filter.fmt_out.audio = p_filter->fmt_out.audio;
+    aout_filter.fmt_out.audio.i_format = p_filter->fmt_out.i_codec;
 
     in_buf.p_buffer = p_block->p_buffer;
     in_buf.i_buffer = p_block->i_buffer;
index 372ccba3301f5405828e7b3442a84fe910a10786..4fedef209b38d53c7288e7f9c293147ac0e10ce8 100644 (file)
@@ -59,21 +59,21 @@ static int Create( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( (p_filter->input.i_physical_channels
-           == p_filter->output.i_physical_channels
-           && p_filter->input.i_original_channels
-               == p_filter->output.i_original_channels)
-          || p_filter->input.i_format != p_filter->output.i_format
-          || p_filter->input.i_rate != p_filter->output.i_rate
-          || (p_filter->input.i_format != VLC_CODEC_FL32
-               && p_filter->input.i_format != VLC_CODEC_FI32) )
+    if ( (p_filter->fmt_in.audio.i_physical_channels
+           == p_filter->fmt_out.audio.i_physical_channels
+           && p_filter->fmt_in.audio.i_original_channels
+               == p_filter->fmt_out.audio.i_original_channels)
+          || p_filter->fmt_in.audio.i_format != p_filter->fmt_out.audio.i_format
+          || p_filter->fmt_in.audio.i_rate != p_filter->fmt_out.audio.i_rate
+          || (p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32
+               && p_filter->fmt_in.audio.i_format != VLC_CODEC_FI32) )
     {
         return -1;
     }
 
     p_filter->pf_do_work = DoWork;
-    if ( aout_FormatNbChannels( &p_filter->input )
-           > aout_FormatNbChannels( &p_filter->output ) )
+    if ( aout_FormatNbChannels( &p_filter->fmt_in.audio )
+           > aout_FormatNbChannels( &p_filter->fmt_out.audio ) )
     {
         /* Downmixing */
         p_filter->b_in_place = 1;
@@ -113,26 +113,26 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                     aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     VLC_UNUSED(p_aout);
-    int i_input_nb = aout_FormatNbChannels( &p_filter->input );
-    int i_output_nb = aout_FormatNbChannels( &p_filter->output );
+    int i_input_nb = aout_FormatNbChannels( &p_filter->fmt_in.audio );
+    int i_output_nb = aout_FormatNbChannels( &p_filter->fmt_out.audio );
     int32_t * p_dest = (int32_t *)p_out_buf->p_buffer;
     int32_t * p_src = (int32_t *)p_in_buf->p_buffer;
 
     p_out_buf->i_nb_samples = p_in_buf->i_nb_samples;
     p_out_buf->i_buffer = p_in_buf->i_buffer * 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)
+    if ( (p_filter->fmt_out.audio.i_original_channels & AOUT_CHAN_PHYSMASK)
+                != (p_filter->fmt_in.audio.i_original_channels & AOUT_CHAN_PHYSMASK)
+           && (p_filter->fmt_in.audio.i_original_channels & AOUT_CHAN_PHYSMASK)
                 == (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT) )
     {
         int i;
         /* This is a bit special. */
-        if ( !(p_filter->output.i_original_channels & AOUT_CHAN_LEFT) )
+        if ( !(p_filter->fmt_out.audio.i_original_channels & AOUT_CHAN_LEFT) )
         {
             p_src++;
         }
-        if ( p_filter->output.i_physical_channels == AOUT_CHAN_CENTER )
+        if ( p_filter->fmt_out.audio.i_physical_channels == AOUT_CHAN_CENTER )
         {
             /* Mono mode */
             for ( i = p_in_buf->i_nb_samples; i--; )
@@ -155,7 +155,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
             }
         }
     }
-    else if ( p_filter->output.i_original_channels
+    else if ( p_filter->fmt_out.audio.i_original_channels
                                     & AOUT_CHAN_REVERSESTEREO )
     {
         /* Reverse-stereo mode */
index 31b503451c2e0fbdb54643d61a7d2c697f1e4e1f..841131b988461ce218cc6bdfb5d5da71f8e81a6b 100644 (file)
@@ -116,17 +116,17 @@ static int Open( vlc_object_t *p_this )
     aout_filter_t *p_filter = (aout_filter_t*)p_this;
     aout_filter_sys_t *p_sys;
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         msg_Err( p_filter, "input and output formats are not similar" );
         return VLC_EGENERIC;
     }
 
-    if( p_filter->input.i_format != VLC_CODEC_FL32 ||
-        p_filter->output.i_format != VLC_CODEC_FL32 )
+    if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 ||
+        p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
-        p_filter->input.i_format = VLC_CODEC_FL32;
-        p_filter->output.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_out.audio.i_format = VLC_CODEC_FL32;
         msg_Warn( p_filter, "bad input or output format" );
     }
 
@@ -137,7 +137,7 @@ static int Open( vlc_object_t *p_this )
     if( !p_sys )
         return VLC_ENOMEM;
 
-    p_sys->i_channels       = aout_FormatNbChannels( &p_filter->input );
+    p_sys->i_channels       = aout_FormatNbChannels( &p_filter->fmt_in.audio );
     p_sys->f_delayTime      = var_CreateGetFloat( p_this, "delay-time" );
     p_sys->f_sweepDepth     = var_CreateGetFloat( p_this, "sweep-depth" );
     p_sys->f_sweepRate      = var_CreateGetFloat( p_this, "sweep-rate" );
@@ -168,12 +168,12 @@ static int Open( vlc_object_t *p_this )
 
     /* Max delay = delay + depth. Min = delay - depth */
     p_sys->i_bufferLength = p_sys->i_channels * ( (int)( ( p_sys->f_delayTime
-                + p_sys->f_sweepDepth ) * p_filter->input.i_rate/1000 ) + 1 );
+                + p_sys->f_sweepDepth ) * p_filter->fmt_in.audio.i_rate/1000 ) + 1 );
 
     msg_Dbg( p_filter , "Buffer length:%d, Channels:%d, Sweep Depth:%f, Delay "
             "time:%f, Sweep Rate:%f, Sample Rate: %d", p_sys->i_bufferLength,
             p_sys->i_channels, p_sys->f_sweepDepth, p_sys->f_delayTime,
-            p_sys->f_sweepRate, p_filter->input.i_rate );
+            p_sys->f_sweepRate, p_filter->fmt_in.audio.i_rate );
     if( p_sys->i_bufferLength <= 0 )
     {
         msg_Err( p_filter, "Delay-time, Sampl rate or Channels was incorrect" );
@@ -199,14 +199,14 @@ static int Open( vlc_object_t *p_this )
     p_sys->pf_write = p_sys->pf_delayLineStart;
 
     if( p_sys->f_sweepDepth < small_value() ||
-            p_filter->input.i_rate < small_value() ) {
+            p_filter->fmt_in.audio.i_rate < small_value() ) {
         p_sys->f_sinMultiplier = 0.0;
     }
     else {
         p_sys->f_sinMultiplier = 11 * p_sys->f_sweepRate /
-            ( 7 * p_sys->f_sweepDepth * p_filter->input.i_rate ) ;
+            ( 7 * p_sys->f_sweepDepth * p_filter->fmt_in.audio.i_rate ) ;
     }
-    p_sys->i_sampleRate = p_filter->input.i_rate;
+    p_sys->i_sampleRate = p_filter->fmt_in.audio.i_rate;
 
     return VLC_SUCCESS;
 }
index e3229e2cf26e1e8d9d9e4ae68b4387d7de690bca..689e95156988f3200f6377e3b8cabd1ae645b0fb 100644 (file)
@@ -122,17 +122,17 @@ static int Create( vlc_object_t *p_this )
     filter_sys_t *p_sys;
     int i_ret;
 
-    if ( p_filter->input.i_format != VLC_CODEC_A52
+    if ( p_filter->fmt_in.audio.i_format != VLC_CODEC_A52
 #ifdef LIBA52_FIXED
-          || p_filter->output.i_format != VLC_CODEC_FI32 )
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_FI32 )
 #else
-          || p_filter->output.i_format != VLC_CODEC_FL32 )
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
 #endif
     {
         return -1;
     }
 
-    if ( p_filter->input.i_rate != p_filter->output.i_rate )
+    if ( p_filter->fmt_in.audio.i_rate != p_filter->fmt_out.audio.i_rate )
     {
         return -1;
     }
@@ -144,7 +144,7 @@ static int Create( vlc_object_t *p_this )
         return -1;
 
     i_ret = Open( VLC_OBJECT(p_filter), p_sys,
-                  p_filter->input, p_filter->output );
+                  p_filter->fmt_in.audio, p_filter->fmt_out.audio );
 
     p_filter->pf_do_work = DoWork;
     p_filter->b_in_place = 0;
@@ -371,13 +371,13 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
         if ( ((p_sys->i_flags & A52_CHANNEL_MASK) == A52_CHANNEL1
                || (p_sys->i_flags & A52_CHANNEL_MASK) == A52_CHANNEL2
                || (p_sys->i_flags & A52_CHANNEL_MASK) == A52_MONO)
-              && (p_filter->output.i_physical_channels
+              && (p_filter->fmt_out.audio.i_physical_channels
                    & (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)) )
         {
             Duplicate( (sample_t *)(p_out_buf->p_buffer + i * i_bytes_per_block),
                        p_samples );
         }
-        else if ( p_filter->output.i_original_channels
+        else if ( p_filter->fmt_out.audio.i_original_channels
                     & AOUT_CHAN_REVERSESTEREO )
         {
             Exchange( (sample_t *)(p_out_buf->p_buffer + i * i_bytes_per_block),
@@ -488,10 +488,10 @@ static block_t *Convert( filter_t *p_filter, block_t *p_block )
     p_out->i_length = p_block->i_length;
 
     aout_filter.p_sys = (struct aout_filter_sys_t *)p_filter->p_sys;
-    aout_filter.input = p_filter->fmt_in.audio;
-    aout_filter.input.i_format = p_filter->fmt_in.i_codec;
-    aout_filter.output = p_filter->fmt_out.audio;
-    aout_filter.output.i_format = p_filter->fmt_out.i_codec;
+    aout_filter.fmt_in.audio = p_filter->fmt_in.audio;
+    aout_filter.fmt_in.audio.i_format = p_filter->fmt_in.i_codec;
+    aout_filter.fmt_out.audio = p_filter->fmt_out.audio;
+    aout_filter.fmt_out.audio.i_format = p_filter->fmt_out.i_codec;
 
     in_buf.p_buffer = p_block->p_buffer;
     in_buf.i_buffer = p_block->i_buffer;
index b0b5bc0715d537f0eb2e9739ac1240da0d447182..e9cb9ecd9c63395889275077b3a6c422d1b2c73d 100644 (file)
@@ -64,9 +64,9 @@ static int Create( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( p_filter->input.i_format != VLC_CODEC_A52 ||
-         ( p_filter->output.i_format != VLC_CODEC_SPDIFB &&
-           p_filter->output.i_format != VLC_CODEC_SPDIFL ) )
+    if ( p_filter->fmt_in.audio.i_format != VLC_CODEC_A52 ||
+         ( p_filter->fmt_out.audio.i_format != VLC_CODEC_SPDIFB &&
+           p_filter->fmt_out.audio.i_format != VLC_CODEC_SPDIFL ) )
     {
         return -1;
     }
@@ -95,7 +95,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     uint8_t * p_out = p_out_buf->p_buffer;
 
     /* Copy the S/PDIF headers. */
-    if( p_filter->output.i_format == VLC_CODEC_SPDIFB )
+    if( p_filter->fmt_out.audio.i_format == VLC_CODEC_SPDIFB )
     {
         vlc_memcpy( p_out, p_sync_be, 6 );
         p_out[4] = p_in[5] & 0x7; /* bsmod */
index 5e08a5f6ad24e7d769323e78255789ffb2520f83..3f9a5e713337ee256d9a3fe040a6571e66981a22 100644 (file)
@@ -112,13 +112,13 @@ static int Create( vlc_object_t *p_this )
     filter_sys_t *p_sys;
     int i_ret;
 
-    if ( p_filter->input.i_format != VLC_CODEC_DTS
-          || p_filter->output.i_format != VLC_CODEC_FL32 )
+    if ( p_filter->fmt_in.audio.i_format != VLC_CODEC_DTS
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         return -1;
     }
 
-    if ( p_filter->input.i_rate != p_filter->output.i_rate )
+    if ( p_filter->fmt_in.audio.i_rate != p_filter->fmt_out.audio.i_rate )
     {
         return -1;
     }
@@ -130,7 +130,7 @@ static int Create( vlc_object_t *p_this )
         return -1;
 
     i_ret = Open( VLC_OBJECT(p_filter), p_sys,
-                  p_filter->input, p_filter->output );
+                  p_filter->fmt_in.audio, p_filter->fmt_out.audio );
 
     p_filter->pf_do_work = DoWork;
     p_filter->b_in_place = 0;
@@ -340,13 +340,13 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
         p_samples = dca_samples( p_sys->p_libdca );
 
         if ( (p_sys->i_flags & DCA_CHANNEL_MASK) == DCA_MONO
-              && (p_filter->output.i_physical_channels
+              && (p_filter->fmt_out.audio.i_physical_channels
                    & (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)) )
         {
             Duplicate( (float *)(p_out_buf->p_buffer + i * i_bytes_per_block),
                        p_samples );
         }
-        else if ( p_filter->output.i_original_channels
+        else if ( p_filter->fmt_out.audio.i_original_channels
                     & AOUT_CHAN_REVERSESTEREO )
         {
             Exchange( (float *)(p_out_buf->p_buffer + i * i_bytes_per_block),
@@ -453,10 +453,10 @@ static block_t *Convert( filter_t *p_filter, block_t *p_block )
     p_out->i_length = p_block->i_length;
 
     aout_filter.p_sys = (struct aout_filter_sys_t *)p_filter->p_sys;
-    aout_filter.input = p_filter->fmt_in.audio;
-    aout_filter.input.i_format = p_filter->fmt_in.i_codec;
-    aout_filter.output = p_filter->fmt_out.audio;
-    aout_filter.output.i_format = p_filter->fmt_out.i_codec;
+    aout_filter.fmt_in.audio = p_filter->fmt_in.audio;
+    aout_filter.fmt_in.audio.i_format = p_filter->fmt_in.i_codec;
+    aout_filter.fmt_out.audio = p_filter->fmt_out.audio;
+    aout_filter.fmt_out.audio.i_format = p_filter->fmt_out.i_codec;
 
     in_buf.p_buffer = p_block->p_buffer;
     in_buf.i_buffer = p_block->i_buffer;
index cdf6255ca285443120ce564f04af0b8216a18bf9..f1d58cb9690349fc79461592c69f28fd553f6086 100644 (file)
@@ -81,9 +81,9 @@ static int Create( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if( p_filter->input.i_format != VLC_CODEC_DTS ||
-        ( p_filter->output.i_format != VLC_CODEC_SPDIFL &&
-          p_filter->output.i_format != VLC_CODEC_SPDIFB ) )
+    if( p_filter->fmt_in.audio.i_format != VLC_CODEC_DTS ||
+        ( p_filter->fmt_out.audio.i_format != VLC_CODEC_SPDIFL &&
+          p_filter->fmt_out.audio.i_format != VLC_CODEC_SPDIFB ) )
     {
         return -1;
     }
@@ -170,7 +170,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
         }
 
         /* Copy the S/PDIF headers. */
-        if( p_filter->output.i_format == VLC_CODEC_SPDIFB )
+        if( p_filter->fmt_out.audio.i_format == VLC_CODEC_SPDIFB )
         {
             vlc_memcpy( p_out, p_sync_be, 6 );
             p_out[5] = i_ac5_spdif_type;
@@ -185,8 +185,8 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
             p_out[7] = (( i_length ) >> 5 ) & 0xFF;
         }
 
-        if( ( (p_in[0] == 0x1F || p_in[0] == 0x7F) && p_filter->output.i_format == VLC_CODEC_SPDIFL ) ||
-            ( (p_in[0] == 0xFF || p_in[0] == 0xFE) && p_filter->output.i_format == VLC_CODEC_SPDIFB ) )
+        if( ( (p_in[0] == 0x1F || p_in[0] == 0x7F) && p_filter->fmt_out.audio.i_format == VLC_CODEC_SPDIFL ) ||
+            ( (p_in[0] == 0xFF || p_in[0] == 0xFE) && p_filter->fmt_out.audio.i_format == VLC_CODEC_SPDIFB ) )
         {
             /* We are dealing with a big endian bitstream and a little endian output
              * or a little endian bitstream and a big endian output.
index 20e1922bb35db2116dd93cd309e439f56f90efb0..db82c6cab8e05e9efa6ca06674ed7437f704cbbf 100644 (file)
@@ -73,13 +73,13 @@ static int Create_F32ToS16( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( p_filter->input.i_format != VLC_CODEC_FI32
-          || p_filter->output.i_format != VLC_CODEC_S16N )
+    if ( p_filter->fmt_in.audio.i_format != VLC_CODEC_FI32
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_S16N )
     {
         return -1;
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
@@ -140,7 +140,7 @@ static void Do_F32ToS16( aout_instance_t * p_aout, aout_filter_t * p_filter,
     int16_t * p_out = (int16_t *)p_out_buf->p_buffer;
 
     for ( i = p_in_buf->i_nb_samples
-               * aout_FormatNbChannels( &p_filter->input ) ; i-- ; )
+               * aout_FormatNbChannels( &p_filter->fmt_in.audio ) ; i-- ; )
     {
         /* Fast Scaling */
         *p_out++ = s24_to_s16_pcm(*p_in++);
@@ -157,13 +157,13 @@ static int Create_S16ToF32( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( p_filter->output.i_format != VLC_CODEC_FI32
-          || p_filter->input.i_format != VLC_CODEC_S16N )
+    if ( p_filter->fmt_out.audio.i_format != VLC_CODEC_FI32
+          || p_filter->fmt_in.audio.i_format != VLC_CODEC_S16N )
     {
         return -1;
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
@@ -178,7 +178,7 @@ static void Do_S16ToF32( aout_instance_t * p_aout, aout_filter_t * p_filter,
                          aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     VLC_UNUSED(p_aout);
-    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->input );
+    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     /* We start from the end because b_in_place is true */
     int16_t * p_in = (int16_t *)p_in_buf->p_buffer + i - 1;
@@ -203,13 +203,13 @@ static int Create_U8ToF32( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( p_filter->input.i_format != VLC_CODEC_U8
-          || p_filter->output.i_format != VLC_CODEC_FI32 )
+    if ( p_filter->fmt_in.audio.i_format != VLC_CODEC_U8
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_FI32 )
     {
         return -1;
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
@@ -224,7 +224,7 @@ static void Do_U8ToF32( aout_instance_t * p_aout, aout_filter_t * p_filter,
                         aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     VLC_UNUSED(p_aout);
-    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->input );
+    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     /* We start from the end because b_in_place is true */
     uint8_t * p_in = (uint8_t *)p_in_buf->p_buffer + i - 1;
index 578566b5b944a0920fbeca6d472cceddb99374da..41bf5e456b3fd9c84d22cfb60f1419aab8c4844a 100644 (file)
@@ -132,20 +132,20 @@ static int Create_F32ToFL32( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if( ( p_filter->input.i_format != VLC_CODEC_FI32
-           || p_filter->output.i_format != VLC_CODEC_FL32 )
-      && ( p_filter->input.i_format != VLC_CODEC_FL32
-            || p_filter->output.i_format != VLC_CODEC_FI32 ) )
+    if( ( p_filter->fmt_in.audio.i_format != VLC_CODEC_FI32
+           || p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
+      && ( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32
+            || p_filter->fmt_out.audio.i_format != VLC_CODEC_FI32 ) )
     {
         return -1;
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
 
-    if( p_filter->input.i_format == VLC_CODEC_FI32 )
+    if( p_filter->fmt_in.audio.i_format == VLC_CODEC_FI32 )
     {
         p_filter->pf_do_work = Do_F32ToFL32;
     }
@@ -168,7 +168,7 @@ static void Do_F32ToFL32( aout_instance_t * p_aout, aout_filter_t * p_filter,
     float * p_out = (float *)p_out_buf->p_buffer;
 
     for ( i = p_in_buf->i_nb_samples
-               * aout_FormatNbChannels( &p_filter->input ) ; i-- ; )
+               * aout_FormatNbChannels( &p_filter->fmt_in.audio ) ; i-- ; )
     {
         *p_out++ = (float)*p_in++ / (float)FIXED32_ONE;
     }
@@ -186,7 +186,7 @@ static void Do_FL32ToF32( aout_instance_t * p_aout, aout_filter_t * p_filter,
     vlc_fixed_t * p_out = (vlc_fixed_t *)p_out_buf->p_buffer;
 
     for ( i = p_in_buf->i_nb_samples
-               * aout_FormatNbChannels( &p_filter->input ) ; i-- ; )
+               * aout_FormatNbChannels( &p_filter->fmt_in.audio ) ; i-- ; )
     {
         *p_out++ = (vlc_fixed_t)( *p_in++ * (float)FIXED32_ONE );
     }
@@ -202,13 +202,13 @@ static int Create_FL32ToS16( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( p_filter->input.i_format != VLC_CODEC_FL32
-          || p_filter->output.i_format != VLC_CODEC_S16N )
+    if ( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_S16N )
     {
         return -1;
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
@@ -228,7 +228,7 @@ static void Do_FL32ToS16( aout_instance_t * p_aout, aout_filter_t * p_filter,
     int16_t * p_out = (int16_t *)p_out_buf->p_buffer;
 
     for ( i = p_in_buf->i_nb_samples
-               * aout_FormatNbChannels( &p_filter->input ); i-- ; )
+               * aout_FormatNbChannels( &p_filter->fmt_in.audio ); i-- ; )
     {
 #if 0
         /* Slow version. */
@@ -257,13 +257,13 @@ static int Create_FL32ToS8( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( p_filter->input.i_format != VLC_CODEC_FL32
-          || p_filter->output.i_format != VLC_CODEC_S8 )
+    if ( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_S8 )
     {
         return -1;
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
@@ -283,7 +283,7 @@ static void Do_FL32ToS8( aout_instance_t * p_aout, aout_filter_t * p_filter,
     int8_t * p_out = (int8_t *)p_out_buf->p_buffer;
 
     for ( i = p_in_buf->i_nb_samples
-               * aout_FormatNbChannels( &p_filter->input ); i-- ; )
+               * aout_FormatNbChannels( &p_filter->fmt_in.audio ); i-- ; )
     {
         if ( *p_in >= 1.0 ) *p_out = 127;
         else if ( *p_in < -1.0 ) *p_out = -128;
@@ -302,13 +302,13 @@ static int Create_FL32ToU16( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( p_filter->input.i_format != VLC_CODEC_FL32
-          || p_filter->output.i_format != VLC_CODEC_U16N )
+    if ( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_U16N )
     {
         return -1;
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
@@ -328,7 +328,7 @@ static void Do_FL32ToU16( aout_instance_t * p_aout, aout_filter_t * p_filter,
     uint16_t * p_out = (uint16_t *)p_out_buf->p_buffer;
 
     for ( i = p_in_buf->i_nb_samples
-               * aout_FormatNbChannels( &p_filter->input ); i-- ; )
+               * aout_FormatNbChannels( &p_filter->fmt_in.audio ); i-- ; )
     {
         if ( *p_in >= 1.0 ) *p_out = 65535;
         else if ( *p_in < -1.0 ) *p_out = 0;
@@ -347,13 +347,13 @@ static int Create_FL32ToU8( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( p_filter->input.i_format != VLC_CODEC_FL32
-          || p_filter->output.i_format != VLC_CODEC_U8 )
+    if ( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_U8 )
     {
         return -1;
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
@@ -373,7 +373,7 @@ static void Do_FL32ToU8( aout_instance_t * p_aout, aout_filter_t * p_filter,
     uint8_t * p_out = (uint8_t *)p_out_buf->p_buffer;
 
     for ( i = p_in_buf->i_nb_samples
-               * aout_FormatNbChannels( &p_filter->input ); i-- ; )
+               * aout_FormatNbChannels( &p_filter->fmt_in.audio ); i-- ; )
     {
         if ( *p_in >= 1.0 ) *p_out = 255;
         else if ( *p_in < -1.0 ) *p_out = 0;
@@ -392,22 +392,22 @@ static int Create_S16ToFL32( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( ( p_filter->input.i_format != VLC_CODEC_S16N &&
-           p_filter->input.i_format != VLC_CODEC_S24N &&
-           p_filter->input.i_format != VLC_CODEC_S32N )
-          || p_filter->output.i_format != VLC_CODEC_FL32 )
+    if ( ( p_filter->fmt_in.audio.i_format != VLC_CODEC_S16N &&
+           p_filter->fmt_in.audio.i_format != VLC_CODEC_S24N &&
+           p_filter->fmt_in.audio.i_format != VLC_CODEC_S32N )
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         return -1;
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
 
-    if( p_filter->input.i_format == VLC_CODEC_S32N )
+    if( p_filter->fmt_in.audio.i_format == VLC_CODEC_S32N )
         p_filter->pf_do_work = Do_S32ToFL32;
-    else if( p_filter->input.i_format == VLC_CODEC_S24N )
+    else if( p_filter->fmt_in.audio.i_format == VLC_CODEC_S24N )
         p_filter->pf_do_work = Do_S24ToFL32;
     else
         p_filter->pf_do_work = Do_S16ToFL32;
@@ -421,7 +421,7 @@ static void Do_S16ToFL32( aout_instance_t * p_aout, aout_filter_t * p_filter,
                           aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     VLC_UNUSED(p_aout);
-    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->input );
+    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     /* We start from the end because b_in_place is true */
     int16_t * p_in = (int16_t *)p_in_buf->p_buffer + i - 1;
@@ -452,7 +452,7 @@ static void Do_S24ToFL32( aout_instance_t * p_aout, aout_filter_t * p_filter,
                           aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     VLC_UNUSED(p_aout);
-    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->input );
+    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     /* We start from the end because b_in_place is true */
     uint8_t * p_in = (uint8_t *)p_in_buf->p_buffer + (i - 1) * 3;
@@ -478,7 +478,7 @@ static void Do_S32ToFL32( aout_instance_t * p_aout, aout_filter_t * p_filter,
                           aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     VLC_UNUSED(p_aout);
-    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->input );
+    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     /* We start from the end because b_in_place is true */
     int32_t * p_in = (int32_t *)p_in_buf->p_buffer + i - 1;
@@ -500,15 +500,15 @@ static int Create_S16ToFL32_SW( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
 
-    if ( (p_filter->input.i_format == VLC_CODEC_S16L ||
-         p_filter->input.i_format == VLC_CODEC_S16B)
-         && p_filter->output.i_format == VLC_CODEC_FL32
-         && p_filter->input.i_format != VLC_CODEC_S16N )
+    if ( (p_filter->fmt_in.audio.i_format == VLC_CODEC_S16L ||
+         p_filter->fmt_in.audio.i_format == VLC_CODEC_S16B)
+         && p_filter->fmt_out.audio.i_format == VLC_CODEC_FL32
+         && p_filter->fmt_in.audio.i_format != VLC_CODEC_S16N )
     {
         p_filter->pf_do_work = Do_S16ToFL32_SW;
         p_filter->b_in_place = true;
@@ -516,10 +516,10 @@ static int Create_S16ToFL32_SW( vlc_object_t *p_this )
         return 0;
     }
 
-    if ( (p_filter->input.i_format == VLC_CODEC_S24L ||
-         p_filter->input.i_format == VLC_CODEC_S24B)
-         && p_filter->output.i_format == VLC_CODEC_FL32
-         && p_filter->input.i_format != VLC_CODEC_S24N )
+    if ( (p_filter->fmt_in.audio.i_format == VLC_CODEC_S24L ||
+         p_filter->fmt_in.audio.i_format == VLC_CODEC_S24B)
+         && p_filter->fmt_out.audio.i_format == VLC_CODEC_FL32
+         && p_filter->fmt_in.audio.i_format != VLC_CODEC_S24N )
     {
         p_filter->pf_do_work = Do_S24ToFL32_SW;
         p_filter->b_in_place = true;
@@ -527,10 +527,10 @@ static int Create_S16ToFL32_SW( vlc_object_t *p_this )
         return 0;
     }
 
-    if ( (p_filter->input.i_format == VLC_CODEC_S32L ||
-         p_filter->input.i_format == VLC_CODEC_S32B)
-         && p_filter->output.i_format == VLC_CODEC_FL32
-         && p_filter->input.i_format != VLC_CODEC_S32N )
+    if ( (p_filter->fmt_in.audio.i_format == VLC_CODEC_S32L ||
+         p_filter->fmt_in.audio.i_format == VLC_CODEC_S32B)
+         && p_filter->fmt_out.audio.i_format == VLC_CODEC_FL32
+         && p_filter->fmt_in.audio.i_format != VLC_CODEC_S32N )
     {
         p_filter->pf_do_work = Do_S32ToFL32_SW;
         p_filter->b_in_place = true;
@@ -545,7 +545,7 @@ static void Do_S16ToFL32_SW( aout_instance_t * p_aout, aout_filter_t * p_filter,
                              aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     VLC_UNUSED(p_aout);
-    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->input );
+    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     /* We start from the end because b_in_place is true */
     int16_t * p_in;
@@ -568,7 +568,7 @@ static void Do_S24ToFL32_SW( aout_instance_t * p_aout, aout_filter_t * p_filter,
                              aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     VLC_UNUSED(p_aout);
-    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->input );
+    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     /* We start from the end because b_in_place is true */
     uint8_t * p_in = (uint8_t *)p_in_buf->p_buffer + (i - 1) * 3;
@@ -600,7 +600,7 @@ static void Do_S32ToFL32_SW( aout_instance_t * p_aout, aout_filter_t * p_filter,
                              aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     VLC_UNUSED(p_aout);
-    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->input );
+    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     /* We start from the end because b_in_place is true */
     int32_t * p_in = (int32_t *)p_in_buf->p_buffer + i - 1;
@@ -623,13 +623,13 @@ static int Create_S8ToFL32( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( p_filter->input.i_format != VLC_CODEC_S8
-          || p_filter->output.i_format != VLC_CODEC_FL32 )
+    if ( p_filter->fmt_in.audio.i_format != VLC_CODEC_S8
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         return -1;
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
@@ -644,7 +644,7 @@ static void Do_S8ToFL32( aout_instance_t * p_aout, aout_filter_t * p_filter,
                          aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     VLC_UNUSED(p_aout);
-    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->input );
+    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     /* We start from the end because b_in_place is true */
     int8_t * p_in = (int8_t *)p_in_buf->p_buffer + i - 1;
@@ -667,13 +667,13 @@ static int Create_U8ToFL32( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( p_filter->input.i_format != VLC_CODEC_U8
-          || p_filter->output.i_format != VLC_CODEC_FL32 )
+    if ( p_filter->fmt_in.audio.i_format != VLC_CODEC_U8
+          || p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         return -1;
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
@@ -688,7 +688,7 @@ static void Do_U8ToFL32( aout_instance_t * p_aout, aout_filter_t * p_filter,
                          aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     VLC_UNUSED(p_aout);
-    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->input );
+    int i = p_in_buf->i_nb_samples * aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     /* We start from the end because b_in_place is true */
     uint8_t * p_in = (uint8_t *)p_in_buf->p_buffer + i - 1;
index 6de7d3e4ea7f40752337b0f9ba300fdb6745f05f..0a046edcee99d3d3aa41fe4243b4035ac473e87e 100644 (file)
@@ -88,15 +88,15 @@ static int Create( vlc_object_t *p_this )
     aout_filter_t *p_filter = (aout_filter_t *)p_this;
     struct filter_sys_t *p_sys;
 
-    if ( (p_filter->input.i_format != VLC_CODEC_MPGA
-           && p_filter->input.i_format != VLC_FOURCC('m','p','g','3'))
-            || (p_filter->output.i_format != VLC_CODEC_FL32
-                 && p_filter->output.i_format != VLC_CODEC_FI32) )
+    if ( (p_filter->fmt_in.audio.i_format != VLC_CODEC_MPGA
+           && p_filter->fmt_in.audio.i_format != VLC_FOURCC('m','p','g','3'))
+            || (p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32
+                 && p_filter->fmt_out.audio.i_format != VLC_CODEC_FI32) )
     {
         return -1;
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         return -1;
     }
@@ -130,7 +130,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
     p_out_buf->i_nb_samples = p_in_buf->i_nb_samples;
     p_out_buf->i_buffer = p_in_buf->i_nb_samples * sizeof(vlc_fixed_t) *
-                               aout_FormatNbChannels( &p_filter->output );
+                               aout_FormatNbChannels( &p_filter->fmt_out.audio );
 
     /* Do the actual decoding now. */
     mad_stream_buffer( &p_sys->mad_stream, p_in_buf->p_buffer,
@@ -148,7 +148,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
     if( p_sys->i_reject_count > 0 )
     {
-        if( p_filter->output.i_format == VLC_CODEC_FL32 )
+        if( p_filter->fmt_out.audio.i_format == VLC_CODEC_FL32 )
         {
             int i;
             int i_size = p_out_buf->i_buffer / sizeof(float);
@@ -168,7 +168,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
     mad_synth_frame( &p_sys->mad_synth, &p_sys->mad_frame );
 
-    if ( p_filter->output.i_format == VLC_CODEC_FI32 )
+    if ( p_filter->fmt_out.audio.i_format == VLC_CODEC_FI32 )
     {
         /* Interleave and keep buffers in mad_fixed_t format */
         mad_fixed_t * p_samples = (mad_fixed_t *)p_out_buf->p_buffer;
@@ -180,14 +180,14 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
         switch ( p_pcm->channels )
         {
         case 2:
-            if ( p_filter->output.i_physical_channels == AOUT_CHAN_CENTER )
+            if ( p_filter->fmt_out.audio.i_physical_channels == AOUT_CHAN_CENTER )
             {
                 while ( i_samples-- )
                 {
                     *p_samples++ = (*p_left++ >> 1) + (*p_right++ >> 1);
                 }
             }
-            else if ( p_filter->output.i_original_channels == AOUT_CHAN_LEFT )
+            else if ( p_filter->fmt_out.audio.i_original_channels == AOUT_CHAN_LEFT )
             {
                 while ( i_samples-- )
                 {
@@ -195,7 +195,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                     *p_samples++ = *p_left++;
                 }
             }
-            else if ( p_filter->output.i_original_channels == AOUT_CHAN_RIGHT )
+            else if ( p_filter->fmt_out.audio.i_original_channels == AOUT_CHAN_RIGHT )
             {
                 while ( i_samples-- )
                 {
@@ -235,7 +235,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
         switch ( p_pcm->channels )
         {
         case 2:
-            if ( p_filter->output.i_physical_channels == AOUT_CHAN_CENTER )
+            if ( p_filter->fmt_out.audio.i_physical_channels == AOUT_CHAN_CENTER )
             {
                 while ( i_samples-- )
                 {
@@ -243,7 +243,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                                    (float)*p_right++ / f_temp / 2;
                 }
             }
-            else if ( p_filter->output.i_original_channels == AOUT_CHAN_LEFT )
+            else if ( p_filter->fmt_out.audio.i_original_channels == AOUT_CHAN_LEFT )
             {
                 while ( i_samples-- )
                 {
@@ -251,7 +251,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                     *p_samples++ = (float)*p_left++ / f_temp;
                 }
             }
-            else if ( p_filter->output.i_original_channels == AOUT_CHAN_RIGHT )
+            else if ( p_filter->fmt_out.audio.i_original_channels == AOUT_CHAN_RIGHT )
             {
                 while ( i_samples-- )
                 {
@@ -389,10 +389,10 @@ static block_t *Convert( filter_t *p_filter, block_t *p_block )
     p_out->i_length = p_block->i_length;
 
     aout_filter.p_sys = (struct aout_filter_sys_t *)p_filter->p_sys;
-    aout_filter.input = p_filter->fmt_in.audio;
-    aout_filter.input.i_format = p_filter->fmt_in.i_codec;
-    aout_filter.output = p_filter->fmt_out.audio;
-    aout_filter.output.i_format = p_filter->fmt_out.i_codec;
+    aout_filter.fmt_in.audio = p_filter->fmt_in.audio;
+    aout_filter.fmt_in.audio.i_format = p_filter->fmt_in.i_codec;
+    aout_filter.fmt_out.audio = p_filter->fmt_out.audio;
+    aout_filter.fmt_out.audio.i_format = p_filter->fmt_out.i_codec;
 
     in_buf.p_buffer = p_block->p_buffer;
     in_buf.i_flags = 0;
index 27463259862803879d512f91995c410f65af5522..c79066ccf0b1c200d1570ba9ce23f46ac19e931c 100644 (file)
@@ -45,13 +45,13 @@ static int Open (vlc_object_t *obj)
 {
     aout_filter_t *filter = (aout_filter_t *)obj;
 
-    if (!AOUT_FMTS_SIMILAR (&filter->input, &filter->output))
+    if (!AOUT_FMTS_SIMILAR (&filter->fmt_in.audio, &filter->fmt_out.audio))
         return VLC_EGENERIC;
 
-    switch (filter->input.i_format)
+    switch (filter->fmt_in.audio.i_format)
     {
         case VLC_CODEC_FL32:
-            switch (filter->output.i_format)
+            switch (filter->fmt_out.audio.i_format)
             {
                 case VLC_CODEC_FI32:
                     filter->pf_do_work = Do_F32_S32;
@@ -62,7 +62,7 @@ static int Open (vlc_object_t *obj)
             break;
 
         case VLC_CODEC_FI32:
-            switch (filter->output.i_format)
+            switch (filter->fmt_out.audio.i_format)
             {
                 case VLC_CODEC_S16N:
                     filter->pf_do_work = Do_S32_S16;
@@ -86,7 +86,7 @@ static void Do_F32_S32 (aout_instance_t *aout, aout_filter_t *filter,
                         aout_buffer_t *inbuf, aout_buffer_t *outbuf)
 {
     unsigned nb_samples = inbuf->i_nb_samples
-                     * aout_FormatNbChannels (&filter->input);
+                     * aout_FormatNbChannels (&filter->fmt_in.audio);
     const float *inp = (float *)inbuf->p_buffer;
     const float *endp = inp + nb_samples;
     int32_t *outp = (int32_t *)outbuf->p_buffer;
@@ -144,7 +144,7 @@ static void Do_S32_S16 (aout_instance_t *aout, aout_filter_t *filter,
                         aout_buffer_t *inbuf, aout_buffer_t *outbuf)
 {
     unsigned nb_samples = inbuf->i_nb_samples
-                     * aout_FormatNbChannels (&filter->input);
+                     * aout_FormatNbChannels (&filter->fmt_in.audio);
     int32_t *inp = (int32_t *)inbuf->p_buffer;
     const int32_t *endp = inp + nb_samples;
     int16_t *outp = (int16_t *)outbuf->p_buffer;
index 148738ad8ed0d553bfb6f48d0960f145f6271f68..8d94ac31e915b46dcea62045c8cae1c6ec9bd1bb 100644 (file)
@@ -150,18 +150,18 @@ static int Open( vlc_object_t *p_this )
     aout_filter_sys_t *p_sys;
     bool         b_fit = true;
 
-    if( p_filter->input.i_format != VLC_CODEC_FL32 ||
-        p_filter->output.i_format != VLC_CODEC_FL32 )
+    if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 ||
+        p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         b_fit = false;
-        p_filter->input.i_format = VLC_CODEC_FL32;
-        p_filter->output.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_out.audio.i_format = VLC_CODEC_FL32;
         msg_Warn( p_filter, "bad input or output format" );
     }
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         b_fit = false;
-        memcpy( &p_filter->output, &p_filter->input,
+        memcpy( &p_filter->fmt_out.audio, &p_filter->fmt_in.audio,
                 sizeof(audio_sample_format_t) );
         msg_Warn( p_filter, "input and output formats are not similar" );
     }
@@ -180,7 +180,7 @@ static int Open( vlc_object_t *p_this )
         return VLC_ENOMEM;
 
     vlc_mutex_init( &p_sys->lock );
-    if( EqzInit( p_filter, p_filter->input.i_rate ) != VLC_SUCCESS )
+    if( EqzInit( p_filter, p_filter->fmt_in.audio.i_rate ) != VLC_SUCCESS )
     {
         vlc_mutex_destroy( &p_sys->lock );
         free( p_sys );
@@ -217,7 +217,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
     EqzFilter( p_filter, (float*)p_out_buf->p_buffer,
                (float*)p_in_buf->p_buffer, p_in_buf->i_nb_samples,
-               aout_FormatNbChannels( &p_filter->input ) );
+               aout_FormatNbChannels( &p_filter->fmt_in.audio ) );
 }
 
 /*****************************************************************************
index f67f24c6baa610312c9e7863a9213d1b50249385..ef80e2d67bb456ec65c4b54427ddb8a739dc0309 100644 (file)
@@ -103,19 +103,19 @@ static int Open( vlc_object_t *p_this )
     int i_channels;
     aout_filter_sys_t *p_sys;
 
-    if( p_filter->input.i_format != VLC_CODEC_FL32 ||
-        p_filter->output.i_format != VLC_CODEC_FL32 )
+    if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 ||
+        p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         b_fit = false;
-        p_filter->input.i_format = VLC_CODEC_FL32;
-        p_filter->output.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_out.audio.i_format = VLC_CODEC_FL32;
         msg_Warn( p_filter, "bad input or output format" );
     }
 
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         b_fit = false;
-        memcpy( &p_filter->output, &p_filter->input,
+        memcpy( &p_filter->fmt_out.audio, &p_filter->fmt_in.audio,
                 sizeof(audio_sample_format_t) );
         msg_Warn( p_filter, "input and output formats are not similar" );
     }
@@ -128,7 +128,7 @@ static int Open( vlc_object_t *p_this )
     p_filter->pf_do_work = DoWork;
     p_filter->b_in_place = true;
 
-    i_channels = aout_FormatNbChannels( &p_filter->input );
+    i_channels = aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     p_sys = p_filter->p_sys = malloc( sizeof( aout_filter_sys_t ) );
     if( !p_sys )
@@ -161,7 +161,7 @@ static int Open( vlc_object_t *p_this )
     int i, i_chan;
 
     int i_samples = p_in_buf->i_nb_samples;
-    int i_channels = aout_FormatNbChannels( &p_filter->input );
+    int i_channels = aout_FormatNbChannels( &p_filter->fmt_in.audio );
     float *p_out = (float*)p_out_buf->p_buffer;
     float *p_in =  (float*)p_in_buf->p_buffer;
 
index 39f2523c39364e584fd6017a27e32ea52e3809c0..54a77c514e60da9b66b2c49b6e4834c4576f89a7 100644 (file)
@@ -111,18 +111,18 @@ static int Open( vlc_object_t *p_this )
     bool         b_fit = true;
     int                i_samplerate;
 
-    if( p_filter->input.i_format != VLC_CODEC_FL32 ||
-        p_filter->output.i_format != VLC_CODEC_FL32 )
+    if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 ||
+        p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         b_fit = false;
-        p_filter->input.i_format = VLC_CODEC_FL32;
-        p_filter->output.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_out.audio.i_format = VLC_CODEC_FL32;
         msg_Warn( p_filter, "bad input or output format" );
     }
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         b_fit = false;
-        memcpy( &p_filter->output, &p_filter->input,
+        memcpy( &p_filter->fmt_out.audio, &p_filter->fmt_in.audio,
                 sizeof(audio_sample_format_t) );
         msg_Warn( p_filter, "input and output formats are not similar" );
     }
@@ -156,7 +156,7 @@ static int Open( vlc_object_t *p_this )
     p_sys->f_gain3 = config_GetFloat( p_this, "param-eq-gain3");
  
 
-    i_samplerate = p_filter->input.i_rate;
+    i_samplerate = p_filter->fmt_in.audio.i_rate;
     CalcPeakEQCoeffs(p_sys->f_f1, p_sys->f_Q1, p_sys->f_gain1,
                      i_samplerate, p_sys->coeffs+0*5);
     CalcPeakEQCoeffs(p_sys->f_f2, p_sys->f_Q2, p_sys->f_gain2,
@@ -167,7 +167,7 @@ static int Open( vlc_object_t *p_this )
                       i_samplerate, p_sys->coeffs+3*5);
     CalcShelfEQCoeffs(p_sys->f_highf, 1, p_sys->f_highgain, 0,
                       i_samplerate, p_sys->coeffs+4*5);
-    p_sys->p_state = (float*)calloc( p_filter->input.i_channels*5*4,
+    p_sys->p_state = (float*)calloc( p_filter->fmt_in.audio.i_channels*5*4,
                                      sizeof(float) );
 
     return VLC_SUCCESS;
@@ -194,7 +194,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
     ProcessEQ( (float*)p_in_buf->p_buffer, (float*)p_out_buf->p_buffer,
                p_filter->p_sys->p_state,
-               p_filter->input.i_channels, p_in_buf->i_nb_samples,
+               p_filter->fmt_in.audio.i_channels, p_in_buf->i_nb_samples,
                p_filter->p_sys->coeffs, 5 );
 }
 
index 8167271fa1801ae2e4540794f8767afd9aa7fb23..babcec6942055d3deece9836d6a6db2c643d1d9a 100644 (file)
@@ -115,13 +115,13 @@ static int Create( vlc_object_t *p_this )
     double d_factor;
     int i_filter_wing;
 
-    if ( p_filter->input.i_rate == p_filter->output.i_rate
-          || p_filter->input.i_format != p_filter->output.i_format
-          || p_filter->input.i_physical_channels
-              != p_filter->output.i_physical_channels
-          || p_filter->input.i_original_channels
-              != p_filter->output.i_original_channels
-          || p_filter->input.i_format != VLC_CODEC_FL32 )
+    if ( p_filter->fmt_in.audio.i_rate == p_filter->fmt_out.audio.i_rate
+          || p_filter->fmt_in.audio.i_format != p_filter->fmt_out.audio.i_format
+          || p_filter->fmt_in.audio.i_physical_channels
+              != p_filter->fmt_out.audio.i_physical_channels
+          || p_filter->fmt_in.audio.i_original_channels
+              != p_filter->fmt_out.audio.i_original_channels
+          || p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 )
     {
         return VLC_EGENERIC;
     }
@@ -140,11 +140,11 @@ static int Create( vlc_object_t *p_this )
     p_filter->p_sys = (struct aout_filter_sys_t *)p_sys;
 
     /* Calculate worst case for the length of the filter wing */
-    d_factor = (double)p_filter->output.i_rate
-                        / p_filter->input.i_rate / AOUT_MAX_INPUT_RATE;
+    d_factor = (double)p_filter->fmt_out.audio.i_rate
+                        / p_filter->fmt_in.audio.i_rate / AOUT_MAX_INPUT_RATE;
     i_filter_wing = ((SMALL_FILTER_NMULT + 1)/2.0)
                       * __MAX(1.0, 1.0/d_factor) + 10;
-    p_sys->i_buf_size = aout_FormatNbChannels( &p_filter->input ) *
+    p_sys->i_buf_size = aout_FormatNbChannels( &p_filter->fmt_in.audio ) *
         sizeof(int32_t) * 2 * i_filter_wing;
 
     /* Allocate enough memory to buffer previous samples */
@@ -186,7 +186,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     filter_sys_t *p_sys = (filter_sys_t *)p_filter->p_sys;
     float *p_out = (float *)p_out_buf->p_buffer;
 
-    int i_nb_channels = aout_FormatNbChannels( &p_filter->input );
+    int i_nb_channels = aout_FormatNbChannels( &p_filter->fmt_in.audio );
     int i_in_nb = p_in_buf->i_nb_samples;
     int i_in, i_out = 0;
     unsigned int i_out_rate;
@@ -194,12 +194,12 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     int i_filter_wing;
 
     if( p_sys->b_filter2 )
-        i_out_rate = p_filter->output.i_rate;
+        i_out_rate = p_filter->fmt_out.audio.i_rate;
     else
         i_out_rate = p_aout->mixer_format.i_rate;
 
     /* Check if we really need to run the resampler */
-    if( i_out_rate == p_filter->input.i_rate )
+    if( i_out_rate == p_filter->fmt_in.audio.i_rate )
     {
 #if 0   /* FIXME: needs audio filter2 to use block_Realloc */
         if( /*p_filter->b_continuity && /--* What difference does it make ? :) */
@@ -207,14 +207,14 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
         {
             /* output the whole thing with the samples from last time */
             p_in_buf = block_Realloc( p_in_buf,
-                p_sys->i_old_wing * p_filter->input.i_bytes_per_frame,
+                p_sys->i_old_wing * p_filter->fmt_in.audio.i_bytes_per_frame,
                 p_in_buf->i_buffer );
             if( !p_in_buf )
                 abort();
             memcpy( p_in_buf->p_buffer, p_sys->p_buf +
                     i_nb_channels * p_sys->i_old_wing,
                     p_sys->i_old_wing *
-                    p_filter->input.i_bytes_per_frame );
+                    p_filter->fmt_in.audio.i_bytes_per_frame );
 
             p_out_buf->i_nb_samples = p_in_buf->i_nb_samples +
                 p_sys->i_old_wing;
@@ -225,7 +225,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                                 p_out_buf->i_nb_samples ) - p_out_buf->i_pts;
 
             p_out_buf->i_buffer = p_out_buf->i_nb_samples *
-                p_filter->input.i_bytes_per_frame;
+                p_filter->fmt_in.audio.i_bytes_per_frame;
         }
 #endif
         p_filter->b_continuity = false;
@@ -241,7 +241,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
         p_sys->i_remainder = 0;
         date_Init( &p_sys->end_date, i_out_rate, 1 );
         date_Set( &p_sys->end_date, p_in_buf->i_pts );
-        p_sys->i_old_rate   = p_filter->input.i_rate;
+        p_sys->i_old_rate   = p_filter->fmt_in.audio.i_rate;
         p_sys->d_old_factor = 1;
         p_sys->i_old_wing   = 0;
     }
@@ -255,7 +255,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     /* Prepare the source buffer */
     i_in_nb += (p_sys->i_old_wing * 2);
 
-    float p_in_orig[i_in_nb * p_filter->input.i_bytes_per_frame / 4],
+    float p_in_orig[i_in_nb * p_filter->fmt_in.audio.i_bytes_per_frame / 4],
          *p_in = p_in_orig;
 
     /* Copy all our samples in p_in */
@@ -263,17 +263,17 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     {
         vlc_memcpy( p_in, p_sys->p_buf,
                     p_sys->i_old_wing * 2 *
-                      p_filter->input.i_bytes_per_frame );
+                      p_filter->fmt_in.audio.i_bytes_per_frame );
     }
     vlc_memcpy( p_in + p_sys->i_old_wing * 2 * i_nb_channels,
                 p_in_buf->p_buffer,
-                p_in_buf->i_nb_samples * p_filter->input.i_bytes_per_frame );
+                p_in_buf->i_nb_samples * p_filter->fmt_in.audio.i_bytes_per_frame );
 
     /* Make sure the output buffer is reset */
     memset( p_out, 0, p_out_buf->i_buffer );
 
     /* Calculate the new length of the filter wing */
-    d_factor = (double)i_out_rate / p_filter->input.i_rate;
+    d_factor = (double)i_out_rate / p_filter->fmt_in.audio.i_rate;
     i_filter_wing = ((SMALL_FILTER_NMULT+1)/2.0) * __MAX(1.0,1.0/d_factor) + 1;
 
     /* Account for increased filter gain when using factors less than 1 */
@@ -291,14 +291,14 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
         {
             /* Just copy the samples */
             memcpy( p_out, p_in,
-                    p_filter->input.i_bytes_per_frame );
+                    p_filter->fmt_in.audio.i_bytes_per_frame );
             p_in += i_nb_channels;
             p_out += i_nb_channels;
             i_out++;
             continue;
         }
 
-        while( p_sys->i_remainder < p_filter->output.i_rate )
+        while( p_sys->i_remainder < p_filter->fmt_out.audio.i_rate )
         {
 
             if( p_sys->d_old_factor >= 1 )
@@ -309,14 +309,14 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                 FilterFloatUP( SMALL_FILTER_FLOAT_IMP, SMALL_FILTER_FLOAT_IMPD,
                                SMALL_FILTER_NWING, p_in, p_out,
                                p_sys->i_remainder,
-                               p_filter->output.i_rate,
+                               p_filter->fmt_out.audio.i_rate,
                                -1, i_nb_channels );
                 /* Perform right-wing inner product */
                 FilterFloatUP( SMALL_FILTER_FLOAT_IMP, SMALL_FILTER_FLOAT_IMPD,
                                SMALL_FILTER_NWING, p_in + i_nb_channels, p_out,
-                               p_filter->output.i_rate -
+                               p_filter->fmt_out.audio.i_rate -
                                p_sys->i_remainder,
-                               p_filter->output.i_rate,
+                               p_filter->fmt_out.audio.i_rate,
                                1, i_nb_channels );
 
 #if 0
@@ -328,12 +328,12 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 #endif
 
                 /* Sanity check */
-                if( p_out_buf->i_buffer/p_filter->input.i_bytes_per_frame
+                if( p_out_buf->i_buffer/p_filter->fmt_in.audio.i_bytes_per_frame
                     <= (unsigned int)i_out+1 )
                 {
                     p_out += i_nb_channels;
                     i_out++;
-                    p_sys->i_remainder += p_filter->input.i_rate;
+                    p_sys->i_remainder += p_filter->fmt_in.audio.i_rate;
                     break;
                 }
             }
@@ -343,37 +343,37 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                 FilterFloatUD( SMALL_FILTER_FLOAT_IMP, SMALL_FILTER_FLOAT_IMPD,
                                SMALL_FILTER_NWING, p_in, p_out,
                                p_sys->i_remainder,
-                               p_filter->output.i_rate, p_filter->input.i_rate,
+                               p_filter->fmt_out.audio.i_rate, p_filter->fmt_in.audio.i_rate,
                                -1, i_nb_channels );
                 /* Perform right-wing inner product */
                 FilterFloatUD( SMALL_FILTER_FLOAT_IMP, SMALL_FILTER_FLOAT_IMPD,
                                SMALL_FILTER_NWING, p_in + i_nb_channels, p_out,
-                               p_filter->output.i_rate -
+                               p_filter->fmt_out.audio.i_rate -
                                p_sys->i_remainder,
-                               p_filter->output.i_rate, p_filter->input.i_rate,
+                               p_filter->fmt_out.audio.i_rate, p_filter->fmt_in.audio.i_rate,
                                1, i_nb_channels );
             }
 
             p_out += i_nb_channels;
             i_out++;
 
-            p_sys->i_remainder += p_filter->input.i_rate;
+            p_sys->i_remainder += p_filter->fmt_in.audio.i_rate;
         }
 
         p_in += i_nb_channels;
-        p_sys->i_remainder -= p_filter->output.i_rate;
+        p_sys->i_remainder -= p_filter->fmt_out.audio.i_rate;
     }
 
     /* Apply the new rate for the rest of the samples */
     if( i_in < i_in_nb - i_filter_wing )
     {
-        p_sys->i_old_rate   = p_filter->input.i_rate;
+        p_sys->i_old_rate   = p_filter->fmt_in.audio.i_rate;
         p_sys->d_old_factor = d_factor;
         p_sys->i_old_wing   = i_filter_wing;
     }
     for( ; i_in < i_in_nb - i_filter_wing; i_in++ )
     {
-        while( p_sys->i_remainder < p_filter->output.i_rate )
+        while( p_sys->i_remainder < p_filter->fmt_out.audio.i_rate )
         {
 
             if( d_factor >= 1 )
@@ -384,15 +384,15 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                 FilterFloatUP( SMALL_FILTER_FLOAT_IMP, SMALL_FILTER_FLOAT_IMPD,
                                SMALL_FILTER_NWING, p_in, p_out,
                                p_sys->i_remainder,
-                               p_filter->output.i_rate,
+                               p_filter->fmt_out.audio.i_rate,
                                -1, i_nb_channels );
 
                 /* Perform right-wing inner product */
                 FilterFloatUP( SMALL_FILTER_FLOAT_IMP, SMALL_FILTER_FLOAT_IMPD,
                                SMALL_FILTER_NWING, p_in + i_nb_channels, p_out,
-                               p_filter->output.i_rate -
+                               p_filter->fmt_out.audio.i_rate -
                                p_sys->i_remainder,
-                               p_filter->output.i_rate,
+                               p_filter->fmt_out.audio.i_rate,
                                1, i_nb_channels );
 
 #if 0
@@ -403,12 +403,12 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                 }
 #endif
                 /* Sanity check */
-                if( p_out_buf->i_buffer/p_filter->input.i_bytes_per_frame
+                if( p_out_buf->i_buffer/p_filter->fmt_in.audio.i_bytes_per_frame
                     <= (unsigned int)i_out+1 )
                 {
                     p_out += i_nb_channels;
                     i_out++;
-                    p_sys->i_remainder += p_filter->input.i_rate;
+                    p_sys->i_remainder += p_filter->fmt_in.audio.i_rate;
                     break;
                 }
             }
@@ -418,25 +418,25 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                 FilterFloatUD( SMALL_FILTER_FLOAT_IMP, SMALL_FILTER_FLOAT_IMPD,
                                SMALL_FILTER_NWING, p_in, p_out,
                                p_sys->i_remainder,
-                               p_filter->output.i_rate, p_filter->input.i_rate,
+                               p_filter->fmt_out.audio.i_rate, p_filter->fmt_in.audio.i_rate,
                                -1, i_nb_channels );
                 /* Perform right-wing inner product */
                 FilterFloatUD( SMALL_FILTER_FLOAT_IMP, SMALL_FILTER_FLOAT_IMPD,
                                SMALL_FILTER_NWING, p_in + i_nb_channels, p_out,
-                               p_filter->output.i_rate -
+                               p_filter->fmt_out.audio.i_rate -
                                p_sys->i_remainder,
-                               p_filter->output.i_rate, p_filter->input.i_rate,
+                               p_filter->fmt_out.audio.i_rate, p_filter->fmt_in.audio.i_rate,
                                1, i_nb_channels );
             }
 
             p_out += i_nb_channels;
             i_out++;
 
-            p_sys->i_remainder += p_filter->input.i_rate;
+            p_sys->i_remainder += p_filter->fmt_in.audio.i_rate;
         }
 
         p_in += i_nb_channels;
-        p_sys->i_remainder -= p_filter->output.i_rate;
+        p_sys->i_remainder -= p_filter->fmt_out.audio.i_rate;
     }
 
     /* Buffer i_filter_wing * 2 samples for next time */
@@ -445,12 +445,12 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
         memcpy( p_sys->p_buf,
                 p_in_orig + (i_in_nb - 2 * p_sys->i_old_wing) *
                 i_nb_channels, (2 * p_sys->i_old_wing) *
-                p_filter->input.i_bytes_per_frame );
+                p_filter->fmt_in.audio.i_bytes_per_frame );
     }
 
 #if 0
     msg_Err( p_filter, "p_out size: %i, nb bytes out: %i", p_out_buf->i_buffer,
-             i_out * p_filter->input.i_bytes_per_frame );
+             i_out * p_filter->fmt_in.audio.i_bytes_per_frame );
 #endif
 
     /* Finalize aout buffer */
@@ -577,11 +577,11 @@ static block_t *Resample( filter_t *p_filter, block_t *p_block )
     p_out->i_length = p_block->i_length;
 
     aout_filter.p_sys = (struct aout_filter_sys_t *)p_filter->p_sys;
-    aout_filter.input = p_filter->fmt_in.audio;
-    aout_filter.input.i_bytes_per_frame = p_filter->fmt_in.audio.i_channels *
+    aout_filter.fmt_in.audio = p_filter->fmt_in.audio;
+    aout_filter.fmt_in.audio.i_bytes_per_frame = p_filter->fmt_in.audio.i_channels *
                   p_filter->fmt_in.audio.i_bitspersample / 8;
-    aout_filter.output = p_filter->fmt_out.audio;
-    aout_filter.output.i_bytes_per_frame = p_filter->fmt_out.audio.i_channels *
+    aout_filter.fmt_out.audio = p_filter->fmt_out.audio;
+    aout_filter.fmt_out.audio.i_bytes_per_frame = p_filter->fmt_out.audio.i_channels *
                   p_filter->fmt_out.audio.i_bitspersample / 8;
     aout_filter.b_continuity = !p_filter->p_sys->b_first;
     p_filter->p_sys->b_first = false;
index d64d71e507e28b3fc5cb426fa11a09c55bc6ca87..b81446a0ab084c248b5fc89ecabbe05ee8fd9050 100644 (file)
@@ -84,13 +84,13 @@ static int Create( vlc_object_t *p_this )
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
     struct filter_sys_t * p_sys;
  
-    if ( p_filter->input.i_rate == p_filter->output.i_rate
-          || p_filter->input.i_format != p_filter->output.i_format
-          || p_filter->input.i_physical_channels
-              != p_filter->output.i_physical_channels
-          || p_filter->input.i_original_channels
-              != p_filter->output.i_original_channels
-          || p_filter->input.i_format != VLC_CODEC_FL32 )
+    if ( p_filter->fmt_in.audio.i_rate == p_filter->fmt_out.audio.i_rate
+          || p_filter->fmt_in.audio.i_format != p_filter->fmt_out.audio.i_format
+          || p_filter->fmt_in.audio.i_physical_channels
+              != p_filter->fmt_out.audio.i_physical_channels
+          || p_filter->fmt_in.audio.i_original_channels
+              != p_filter->fmt_out.audio.i_original_channels
+          || p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 )
     {
         return VLC_EGENERIC;
     }
@@ -101,13 +101,13 @@ static int Create( vlc_object_t *p_this )
     if( p_sys == NULL )
         return VLC_ENOMEM;
     p_sys->p_prev_sample = malloc(
-        p_filter->input.i_channels * sizeof(int32_t) );
+        p_filter->fmt_in.audio.i_channels * sizeof(int32_t) );
     if( p_sys->p_prev_sample == NULL )
     {
         free( p_sys );
         return VLC_ENOMEM;
     }
-    date_Init( &p_sys->end_date, p_filter->output.i_rate, 1 );
+    date_Init( &p_sys->end_date, p_filter->fmt_out.audio.i_rate, 1 );
 
     p_filter->pf_do_work = DoWork;
 
@@ -140,12 +140,12 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     float *p_out = (float *)p_out_buf->p_buffer;
     float *p_prev_sample = (float *)p_sys->p_prev_sample;
 
-    int i_nb_channels = p_filter->input.i_channels;
+    int i_nb_channels = p_filter->fmt_in.audio.i_channels;
     int i_in_nb = p_in_buf->i_nb_samples;
     int i_chan, i_in, i_out = 0;
 
     /* Check if we really need to run the resampler */
-    if( p_aout->mixer_format.i_rate == p_filter->input.i_rate )
+    if( p_aout->mixer_format.i_rate == p_filter->fmt_in.audio.i_rate )
     {
 #if 0   /* FIXME: needs audio filter2 for block_Realloc */
         if( p_filter->b_continuity )
@@ -172,11 +172,11 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     {
         p_filter->b_continuity = true;
         p_sys->i_remainder = 0;
-        date_Init( &p_sys->end_date, p_filter->output.i_rate, 1 );
+        date_Init( &p_sys->end_date, p_filter->fmt_out.audio.i_rate, 1 );
     }
     else
     {
-        while( p_sys->i_remainder < p_filter->output.i_rate )
+        while( p_sys->i_remainder < p_filter->fmt_out.audio.i_rate )
         {
             for( i_chan = i_nb_channels ; i_chan ; )
             {
@@ -184,20 +184,20 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                 p_out[i_chan] = p_prev_sample[i_chan];
                 p_out[i_chan] += ( ( p_in[i_chan] - p_prev_sample[i_chan] )
                                    * p_sys->i_remainder
-                                   / p_filter->output.i_rate );
+                                   / p_filter->fmt_out.audio.i_rate );
             }
             p_out += i_nb_channels;
               i_out++;
 
-            p_sys->i_remainder += p_filter->input.i_rate;
+            p_sys->i_remainder += p_filter->fmt_in.audio.i_rate;
         }
-        p_sys->i_remainder -= p_filter->output.i_rate;
+        p_sys->i_remainder -= p_filter->fmt_out.audio.i_rate;
     }
 
     /* Take care of the current input samples (minus last one) */
     for( i_in = 0; i_in < i_in_nb - 1; i_in++ )
     {
-        while( p_sys->i_remainder < p_filter->output.i_rate )
+        while( p_sys->i_remainder < p_filter->fmt_out.audio.i_rate )
         {
             for( i_chan = i_nb_channels ; i_chan ; )
             {
@@ -205,16 +205,16 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                 p_out[i_chan] = p_in[i_chan];
                 p_out[i_chan] += ( ( p_in[i_chan + i_nb_channels]
                     - p_in[i_chan] )
-                    * p_sys->i_remainder / p_filter->output.i_rate );
+                    * p_sys->i_remainder / p_filter->fmt_out.audio.i_rate );
             }
             p_out += i_nb_channels;
               i_out++;
 
-            p_sys->i_remainder += p_filter->input.i_rate;
+            p_sys->i_remainder += p_filter->fmt_in.audio.i_rate;
         }
 
         p_in += i_nb_channels;
-        p_sys->i_remainder -= p_filter->output.i_rate;
+        p_sys->i_remainder -= p_filter->fmt_out.audio.i_rate;
     }
 
     /* Backup the last input sample for next time */
@@ -333,8 +333,8 @@ static block_t *Resample( filter_t *p_filter, block_t *p_block )
     p_out->i_length = p_block->i_length;
 
     aout_filter.p_sys = (struct aout_filter_sys_t *)p_filter->p_sys;
-    aout_filter.input = p_filter->fmt_in.audio;
-    aout_filter.output = p_filter->fmt_out.audio;
+    aout_filter.fmt_in.audio = p_filter->fmt_in.audio;
+    aout_filter.fmt_out.audio = p_filter->fmt_out.audio;
     aout_filter.b_continuity = false;
 
     in_buf.p_buffer = p_block->p_buffer;
index d43f3e9325007aa3966d72a9d06dc5443ea435d1..4cc25d0b91b369642ef6934398cffb0cc70d6ac9 100644 (file)
@@ -59,14 +59,14 @@ static int Create( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( p_filter->input.i_rate == p_filter->output.i_rate
-          || p_filter->input.i_format != p_filter->output.i_format
-          || p_filter->input.i_physical_channels
-              != p_filter->output.i_physical_channels
-          || p_filter->input.i_original_channels
-              != p_filter->output.i_original_channels
-          || (p_filter->input.i_format != VLC_CODEC_FL32
-               && p_filter->input.i_format != VLC_CODEC_FI32) )
+    if ( p_filter->fmt_in.audio.i_rate == p_filter->fmt_out.audio.i_rate
+          || p_filter->fmt_in.audio.i_format != p_filter->fmt_out.audio.i_format
+          || p_filter->fmt_in.audio.i_physical_channels
+              != p_filter->fmt_out.audio.i_physical_channels
+          || p_filter->fmt_in.audio.i_original_channels
+              != p_filter->fmt_out.audio.i_original_channels
+          || (p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32
+               && p_filter->fmt_in.audio.i_format != VLC_CODEC_FI32) )
     {
         return -1;
     }
@@ -84,13 +84,13 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
                     aout_buffer_t * p_in_buf, aout_buffer_t * p_out_buf )
 {
     int i_in_nb = p_in_buf->i_nb_samples;
-    int i_out_nb = i_in_nb * p_filter->output.i_rate
-                    / p_filter->input.i_rate;
-    int i_sample_bytes = aout_FormatNbChannels( &p_filter->input )
+    int i_out_nb = i_in_nb * p_filter->fmt_out.audio.i_rate
+                    / p_filter->fmt_in.audio.i_rate;
+    int i_sample_bytes = aout_FormatNbChannels( &p_filter->fmt_in.audio )
                           * sizeof(int32_t);
 
     /* Check if we really need to run the resampler */
-    if( p_aout->mixer_format.i_rate == p_filter->input.i_rate )
+    if( p_aout->mixer_format.i_rate == p_filter->fmt_in.audio.i_rate )
     {
         return;
     }
@@ -114,5 +114,5 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     p_out_buf->i_buffer = i_out_nb * i_sample_bytes;
     p_out_buf->i_pts = p_in_buf->i_pts;
     p_out_buf->i_length = p_out_buf->i_nb_samples *
-        1000000 / p_filter->output.i_rate;
+        1000000 / p_filter->fmt_out.audio.i_rate;
 }
index 10abd9cf98acc5a19dc853ddec26624b3405a237..66d0e7868afbcc963ea827eebda14ff6116d836f 100644 (file)
@@ -59,14 +59,14 @@ static int Create( vlc_object_t *p_this )
 {
     aout_filter_t * p_filter = (aout_filter_t *)p_this;
 
-    if ( p_filter->input.i_rate == p_filter->output.i_rate
-          || p_filter->input.i_format != p_filter->output.i_format
-          || p_filter->input.i_physical_channels
-              != p_filter->output.i_physical_channels
-          || p_filter->input.i_original_channels
-              != p_filter->output.i_original_channels
-          || (p_filter->input.i_format != VLC_CODEC_FL32
-               && p_filter->input.i_format != VLC_CODEC_FI32) )
+    if ( p_filter->fmt_in.audio.i_rate == p_filter->fmt_out.audio.i_rate
+          || p_filter->fmt_in.audio.i_format != p_filter->fmt_out.audio.i_format
+          || p_filter->fmt_in.audio.i_physical_channels
+              != p_filter->fmt_out.audio.i_physical_channels
+          || p_filter->fmt_in.audio.i_original_channels
+              != p_filter->fmt_out.audio.i_original_channels
+          || (p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32
+               && p_filter->fmt_in.audio.i_format != VLC_CODEC_FI32) )
     {
         return VLC_EGENERIC;
     }
@@ -88,15 +88,15 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 {
     int32_t *p_out = (int32_t*)p_out_buf->p_buffer;
 
-    unsigned int i_nb_channels = aout_FormatNbChannels( &p_filter->input );
+    unsigned int i_nb_channels = aout_FormatNbChannels( &p_filter->fmt_in.audio );
     unsigned int i_in_nb = p_in_buf->i_nb_samples;
-    unsigned int i_out_nb = i_in_nb * p_filter->output.i_rate
-                                    / p_filter->input.i_rate;
+    unsigned int i_out_nb = i_in_nb * p_filter->fmt_out.audio.i_rate
+                                    / p_filter->fmt_in.audio.i_rate;
     unsigned int i_sample_bytes = i_nb_channels * sizeof(int32_t);
     unsigned int i_out, i_chan, i_remainder = 0;
 
     /* Check if we really need to run the resampler */
-    if( p_aout->mixer_format.i_rate == p_filter->input.i_rate )
+    if( p_aout->mixer_format.i_rate == p_filter->fmt_in.audio.i_rate )
     {
         return;
     }
@@ -115,11 +115,11 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
         }
         p_out += i_nb_channels;
 
-        i_remainder += p_filter->input.i_rate;
-        while( i_remainder >= p_filter->output.i_rate )
+        i_remainder += p_filter->fmt_in.audio.i_rate;
+        while( i_remainder >= p_filter->fmt_out.audio.i_rate )
         {
             p_in += i_nb_channels;
-            i_remainder -= p_filter->output.i_rate;
+            i_remainder -= p_filter->fmt_out.audio.i_rate;
         }
     }
 
@@ -127,5 +127,5 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     p_out_buf->i_buffer = i_out_nb * i_sample_bytes;
     p_out_buf->i_pts = p_in_buf->i_pts;
     p_out_buf->i_length = p_out_buf->i_nb_samples *
-        1000000 / p_filter->output.i_rate;
+        1000000 / p_filter->fmt_out.audio.i_rate;
 }
index 5eb18505b1e8f65202377f2b32801445a96db401..ecbaa5bd9598175545af013787b546af7af551bf 100644 (file)
@@ -392,17 +392,17 @@ static int Open( vlc_object_t *p_this )
     aout_filter_sys_t *p_sys;
     bool b_fit = true;
 
-    if( p_filter->input.i_format != VLC_CODEC_FL32 ||
-        p_filter->output.i_format != VLC_CODEC_FL32 )
+    if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 ||
+        p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         b_fit = false;
-        p_filter->input.i_format = p_filter->output.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_in.audio.i_format = p_filter->fmt_out.audio.i_format = VLC_CODEC_FL32;
         msg_Warn( p_filter, "bad input or output format" );
     }
-    if( ! AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if( ! AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         b_fit = false;
-        memcpy( &p_filter->output, &p_filter->input, sizeof(audio_sample_format_t) );
+        memcpy( &p_filter->fmt_out.audio, &p_filter->fmt_in.audio, sizeof(audio_sample_format_t) );
         msg_Warn( p_filter, "input and output formats are not similar" );
     }
 
@@ -418,8 +418,8 @@ static int Open( vlc_object_t *p_this )
         return VLC_ENOMEM;
 
     p_sys->scale             = 1.0;
-    p_sys->sample_rate       = p_filter->input.i_rate;
-    p_sys->samples_per_frame = aout_FormatNbChannels( &p_filter->input );
+    p_sys->sample_rate       = p_filter->fmt_in.audio.i_rate;
+    p_sys->samples_per_frame = aout_FormatNbChannels( &p_filter->fmt_in.audio );
     p_sys->bytes_per_sample  = 4;
     p_sys->bytes_per_frame   = p_sys->samples_per_frame * p_sys->bytes_per_sample;
 
@@ -481,14 +481,14 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
     VLC_UNUSED(p_aout);
     aout_filter_sys_t *p = p_filter->p_sys;
 
-    if( p_filter->input.i_rate == p->sample_rate ) {
+    if( p_filter->fmt_in.audio.i_rate == p->sample_rate ) {
       memcpy( p_out_buf->p_buffer, p_in_buf->p_buffer, p_in_buf->i_buffer );
       p_out_buf->i_buffer   = p_in_buf->i_buffer;
       p_out_buf->i_nb_samples = p_in_buf->i_nb_samples;
       return;
     }
 
-    double scale = p_filter->input.i_rate / (double)p->sample_rate;
+    double scale = p_filter->fmt_in.audio.i_rate / (double)p->sample_rate;
     if( scale != p->scale ) {
       p->scale = scale;
       p->bytes_stride_scaled  = p->bytes_stride * p->scale;
index 96df2059517667ee4bb89dbcf6301c854ad5fcd7..e5c392ce04843f4329842ba27e4a9a597a3bcd56 100644 (file)
@@ -132,18 +132,18 @@ static int Open( vlc_object_t *p_this )
     bool               b_fit = true;
     msg_Dbg( p_this, "Opening filter spatializer" );
 
-    if( p_filter->input.i_format != VLC_CODEC_FL32 ||
-        p_filter->output.i_format != VLC_CODEC_FL32 )
+    if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 ||
+        p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         b_fit = false;
-        p_filter->input.i_format = VLC_CODEC_FL32;
-        p_filter->output.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_in.audio.i_format = VLC_CODEC_FL32;
+        p_filter->fmt_out.audio.i_format = VLC_CODEC_FL32;
         msg_Warn( p_filter, "bad input or output format" );
     }
-    if ( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if ( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         b_fit = false;
-        memcpy( &p_filter->output, &p_filter->input,
+        memcpy( &p_filter->fmt_out.audio, &p_filter->fmt_in.audio,
                 sizeof(audio_sample_format_t) );
         msg_Warn( p_filter, "input and output formats are not similar" );
     }
@@ -239,7 +239,7 @@ static void DoWork( aout_instance_t * p_aout, aout_filter_t * p_filter,
 
     SpatFilter( p_aout, p_filter, (float*)p_out_buf->p_buffer,
                (float*)p_in_buf->p_buffer, p_in_buf->i_nb_samples,
-               aout_FormatNbChannels( &p_filter->input ) );
+               aout_FormatNbChannels( &p_filter->fmt_in.audio ) );
 }
 
 
index 2129cee9753307ccf775d1f70c5dbc8cba8d3d41..9bd7fa00f47dc02add75aa9d9d21c92140b867ea 100644 (file)
@@ -137,13 +137,13 @@ static int Open( vlc_object_t *p_this )
     video_format_t     fmt;
 
 
-    if( p_filter->input.i_format != VLC_CODEC_FL32 ||
-         p_filter->output.i_format != VLC_CODEC_FL32 )
+    if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 ||
+         p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         msg_Warn( p_filter, "bad input or output format" );
         return VLC_EGENERIC;
     }
-    if( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         msg_Warn( p_filter, "input and output formats are not similar" );
         return VLC_EGENERIC;
@@ -184,9 +184,9 @@ static int Open( vlc_object_t *p_this )
     vlc_cond_init( &p_thread->wait );
 
     p_thread->i_blocks = 0;
-    date_Init( &p_thread->date, p_filter->output.i_rate, 1 );
+    date_Init( &p_thread->date, p_filter->fmt_out.audio.i_rate, 1 );
     date_Set( &p_thread->date, 0 );
-    p_thread->i_channels = aout_FormatNbChannels( &p_filter->input );
+    p_thread->i_channels = aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     p_thread->psz_title = TitleGet( VLC_OBJECT( p_filter ) );
 
index 681f847a39945a1d975c523529bfee09cb081c19..21fce3648a13ec3629a1f3545ce20021828e594b 100644 (file)
@@ -162,13 +162,13 @@ static int Open( vlc_object_t * p_this )
     projectm_thread_t   *p_thread;
 
     /* Test the audio format */
-    if( p_filter->input.i_format != VLC_CODEC_FL32 ||
-        p_filter->output.i_format != VLC_CODEC_FL32 )
+    if( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 ||
+        p_filter->fmt_out.audio.i_format != VLC_CODEC_FL32 )
     {
         msg_Warn( p_filter, "bad input or output format" );
         return VLC_EGENERIC;
     }
-    if( !AOUT_FMTS_SIMILAR( &p_filter->input, &p_filter->output ) )
+    if( !AOUT_FMTS_SIMILAR( &p_filter->fmt_in.audio, &p_filter->fmt_out.audio ) )
     {
         msg_Warn( p_filter, "input and outut are not similar" );
         return VLC_EGENERIC;
@@ -198,7 +198,7 @@ static int Open( vlc_object_t * p_this )
         return i_ret;
     }
 
-    p_thread->i_channels = aout_FormatNbChannels( &p_filter->input );
+    p_thread->i_channels = aout_FormatNbChannels( &p_filter->fmt_in.audio );
     p_thread->psz_config = var_CreateGetString( p_filter, "projectm-config" );
     vlc_mutex_init( &p_thread->lock );
     p_thread->p_buffer = NULL;
index a60d0c0a031e37d245022a3db5dea8c33f63d42c..8f883b3c89bcf79108d91041f80efdaf7c954b96 100644 (file)
@@ -194,8 +194,8 @@ static int Open( vlc_object_t *p_this )
     char *psz_effects, *psz_parser;
     video_format_t fmt;
 
-    if( ( p_filter->input.i_format != VLC_CODEC_FL32 &&
-          p_filter->input.i_format != VLC_CODEC_FI32 ) )
+    if( ( p_filter->fmt_in.audio.i_format != VLC_CODEC_FL32 &&
+          p_filter->fmt_in.audio.i_format != VLC_CODEC_FI32 ) )
     {
         return VLC_EGENERIC;
     }
@@ -229,7 +229,7 @@ static int Open( vlc_object_t *p_this )
             break;
         p_effect->i_width = p_sys->i_width;
         p_effect->i_height= p_sys->i_height;
-        p_effect->i_nb_chans = aout_FormatNbChannels( &p_filter->input);
+        p_effect->i_nb_chans = aout_FormatNbChannels( &p_filter->fmt_in.audio);
         p_effect->i_idx_left  = 0;
         p_effect->i_idx_right = __MIN( 1, p_effect->i_nb_chans-1 );
 
@@ -344,8 +344,8 @@ static void DoWork( aout_instance_t *p_aout, aout_filter_t *p_filter,
 
     p_out_buf->i_nb_samples = p_in_buf->i_nb_samples;
     p_out_buf->i_buffer = p_in_buf->i_buffer *
-                            aout_FormatNbChannels( &p_filter->output ) /
-                            aout_FormatNbChannels( &p_filter->input );
+                            aout_FormatNbChannels( &p_filter->fmt_out.audio ) /
+                            aout_FormatNbChannels( &p_filter->fmt_in.audio );
 
     /* First, get a new picture */
     while( ( p_outpic = vout_CreatePicture( p_sys->p_vout, 0, 0, 3 ) ) == NULL)
index b2f1bf66d630e52ac61d6d8032bddb1705ea1063..d150961b760fc5d8a9384a572661d548514a5acd 100644 (file)
@@ -53,8 +53,8 @@ static aout_filter_t * FindFilter( aout_instance_t * p_aout,
     if ( p_filter == NULL ) return NULL;
     vlc_object_attach( p_filter, p_aout );
 
-    memcpy( &p_filter->input, p_input_format, sizeof(audio_sample_format_t) );
-    memcpy( &p_filter->output, p_output_format,
+    memcpy( &p_filter->fmt_in.audio, p_input_format, sizeof(audio_sample_format_t) );
+    memcpy( &p_filter->fmt_out.audio, p_output_format,
             sizeof(audio_sample_format_t) );
     p_filter->p_module = module_need( p_filter, "audio filter", NULL, false );
     if ( p_filter->p_module == NULL )
@@ -206,12 +206,12 @@ int aout_FiltersCreatePipeline( aout_instance_t * p_aout,
                       AOUT_MAX_FILTERS );
         return -1;
     }
-    pp_filters[1] = FindFilter( p_aout, &pp_filters[0]->output,
+    pp_filters[1] = FindFilter( p_aout, &pp_filters[0]->fmt_out.audio,
                                 p_output_format );
     if ( pp_filters[1] == NULL )
     {
         /* Try to split the conversion. */
-        i_nb_conversions = SplitConversion( &pp_filters[0]->output,
+        i_nb_conversions = SplitConversion( &pp_filters[0]->fmt_out.audio,
                                            p_output_format, &temp_format );
         if ( !i_nb_conversions )
         {
@@ -229,7 +229,7 @@ int aout_FiltersCreatePipeline( aout_instance_t * p_aout,
                           AOUT_MAX_FILTERS );
             return -1;
         }
-        pp_filters[1] = FindFilter( p_aout, &pp_filters[0]->output,
+        pp_filters[1] = FindFilter( p_aout, &pp_filters[0]->fmt_out.audio,
                                     &temp_format );
         pp_filters[2] = FindFilter( p_aout, &temp_format,
                                     p_output_format );
@@ -298,12 +298,12 @@ void aout_FiltersHintBuffers( aout_instance_t * p_aout,
     {
         aout_filter_t * p_filter = pp_filters[i];
 
-        int i_output_size = p_filter->output.i_bytes_per_frame
-                             * p_filter->output.i_rate * AOUT_MAX_INPUT_RATE
-                             / p_filter->output.i_frame_length;
-        int i_input_size = p_filter->input.i_bytes_per_frame
-                             * p_filter->input.i_rate * AOUT_MAX_INPUT_RATE
-                             / p_filter->input.i_frame_length;
+        int i_output_size = p_filter->fmt_out.audio.i_bytes_per_frame
+                         * p_filter->fmt_out.audio.i_rate * AOUT_MAX_INPUT_RATE
+                         / p_filter->fmt_out.audio.i_frame_length;
+        int i_input_size = p_filter->fmt_in.audio.i_bytes_per_frame
+                         * p_filter->fmt_in.audio.i_rate * AOUT_MAX_INPUT_RATE
+                         / p_filter->fmt_in.audio.i_frame_length;
 
         p_first_alloc->i_bytes_per_sec = __MAX( p_first_alloc->i_bytes_per_sec,
                                                 i_output_size );
@@ -345,7 +345,7 @@ void aout_FiltersPlay( aout_instance_t * p_aout,
          * slightly bigger buffers. */
         p_output_buffer = aout_BufferAlloc( &p_filter->output_alloc,
                               ((mtime_t)(*pp_input_buffer)->i_nb_samples + 2)
-                              * 1000000 / p_filter->input.i_rate,
+                              * 1000000 / p_filter->fmt_in.audio.i_rate,
                               *pp_input_buffer );
         if( p_output_buffer == NULL )
             return;
index f376d47d60dabafb0df6b93fb3ef4dd07847f00d..4c2cafca5600a74e234231952b317186a2cb63ed 100644 (file)
@@ -288,9 +288,9 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input, const aout_
             p_filter->p_owner->p_input = p_input;
 
             /* request format */
-            memcpy( &p_filter->input, &chain_output_format,
+            memcpy( &p_filter->fmt_in.audio, &chain_output_format,
                     sizeof(audio_sample_format_t) );
-            memcpy( &p_filter->output, &chain_output_format,
+            memcpy( &p_filter->fmt_out.audio, &chain_output_format,
                     sizeof(audio_sample_format_t) );
 
 
@@ -308,13 +308,13 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input, const aout_
                 if ( p_filter->p_module == NULL )
                 {
                     /* if the filter requested a special format, retry */
-                    if ( !( AOUT_FMTS_IDENTICAL( &p_filter->input,
+                    if ( !( AOUT_FMTS_IDENTICAL( &p_filter->fmt_in.audio,
                                                  &chain_input_format )
-                            && AOUT_FMTS_IDENTICAL( &p_filter->output,
+                            && AOUT_FMTS_IDENTICAL( &p_filter->fmt_out.audio,
                                                     &chain_output_format ) ) )
                     {
-                        aout_FormatPrepare( &p_filter->input );
-                        aout_FormatPrepare( &p_filter->output );
+                        aout_FormatPrepare( &p_filter->fmt_in.audio );
+                        aout_FormatPrepare( &p_filter->fmt_out.audio );
                         p_filter->p_module = module_need( p_filter,
                                                           "audio filter",
                                                           psz_parser, true );
@@ -322,9 +322,9 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input, const aout_
                     /* try visual filters */
                     else
                     {
-                        memcpy( &p_filter->input, &chain_output_format,
+                        memcpy( &p_filter->fmt_in.audio, &chain_output_format,
                                 sizeof(audio_sample_format_t) );
-                        memcpy( &p_filter->output, &chain_output_format,
+                        memcpy( &p_filter->fmt_out.audio, &chain_output_format,
                                 sizeof(audio_sample_format_t) );
                         p_filter->p_module = module_need( p_filter,
                                                           "visualization",
@@ -348,12 +348,13 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input, const aout_
             }
 
             /* complete the filter chain if necessary */
-            if ( !AOUT_FMTS_IDENTICAL( &chain_input_format, &p_filter->input ) )
+            if ( !AOUT_FMTS_IDENTICAL( &chain_input_format,
+                                       &p_filter->fmt_in.audio ) )
             {
                 if ( aout_FiltersCreatePipeline( p_aout, p_input->pp_filters,
                                                  &p_input->i_nb_filters,
                                                  &chain_input_format,
-                                                 &p_filter->input ) < 0 )
+                                                 &p_filter->fmt_in.audio ) < 0 )
                 {
                     msg_Err( p_aout, "cannot add user filter %s (skipped)",
                              psz_parser );
@@ -371,7 +372,7 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input, const aout_
             /* success */
             p_filter->b_continuity = false;
             p_input->pp_filters[p_input->i_nb_filters++] = p_filter;
-            memcpy( &chain_input_format, &p_filter->output,
+            memcpy( &chain_input_format, &p_filter->fmt_out.audio,
                     sizeof( audio_sample_format_t ) );
 
             if( i_visual == 0 ) /* scaletempo */
@@ -428,7 +429,7 @@ int aout_InputNew( aout_instance_t * p_aout, aout_input_t * p_input, const aout_
         p_input->input_alloc.b_alloc = true;
 
         /* Setup the initial rate of the resampler */
-        p_input->pp_resamplers[0]->input.i_rate = p_input->input.i_rate;
+        p_input->pp_resamplers[0]->fmt_in.audio.i_rate = p_input->input.i_rate;
     }
     p_input->i_resampling_type = AOUT_RESAMPLING_NONE;
 
@@ -563,7 +564,7 @@ int aout_InputPlay( aout_instance_t * p_aout, aout_input_t * p_input,
     /* Handle input rate change, but keep drift correction */
     if( i_input_rate != p_input->i_last_input_rate )
     {
-        unsigned int * const pi_rate = &p_input->p_playback_rate_filter->input.i_rate;
+        unsigned int * const pi_rate = &p_input->p_playback_rate_filter->fmt_in.audio.i_rate;
 #define F(r,ir) ( INPUT_RATE_DEFAULT * (r) / (ir) )
         const int i_delta = *pi_rate - F(p_input->input.i_rate,p_input->i_last_input_rate);
         *pi_rate = F(p_input->input.i_rate + i_delta, i_input_rate);
@@ -679,11 +680,11 @@ int aout_InputPlay( aout_instance_t * p_aout, aout_input_t * p_input,
 
         if( p_input->i_resampling_type == AOUT_RESAMPLING_UP )
         {
-            p_input->pp_resamplers[0]->input.i_rate += 2; /* Hz */
+            p_input->pp_resamplers[0]->fmt_in.audio.i_rate += 2; /* Hz */
         }
         else
         {
-            p_input->pp_resamplers[0]->input.i_rate -= 2; /* Hz */
+            p_input->pp_resamplers[0]->fmt_in.audio.i_rate -= 2; /* Hz */
         }
 
         /* Check if everything is back to normal, in which case we can stop the
@@ -692,7 +693,7 @@ int aout_InputPlay( aout_instance_t * p_aout, aout_input_t * p_input,
           (p_input->pp_resamplers[0] == p_input->p_playback_rate_filter)
           ? INPUT_RATE_DEFAULT * p_input->input.i_rate / i_input_rate
           : p_input->input.i_rate;
-        if( p_input->pp_resamplers[0]->input.i_rate == i_nominal_rate )
+        if( p_input->pp_resamplers[0]->fmt_in.audio.i_rate == i_nominal_rate )
         {
             p_input->i_resampling_type = AOUT_RESAMPLING_NONE;
             msg_Warn( p_aout, "resampling stopped after %"PRIi64" usec "
@@ -789,7 +790,7 @@ static void inputResamplingStop( aout_input_t *p_input )
     p_input->i_resampling_type = AOUT_RESAMPLING_NONE;
     if( p_input->i_nb_resamplers != 0 )
     {
-        p_input->pp_resamplers[0]->input.i_rate =
+        p_input->pp_resamplers[0]->fmt_in.audio.i_rate =
             ( p_input->pp_resamplers[0] == p_input->p_playback_rate_filter )
             ? INPUT_RATE_DEFAULT * p_input->input.i_rate / p_input->i_last_input_rate
             : p_input->input.i_rate;