]> git.sesse.net Git - vlc/commitdiff
Merge aout_output_t into aout_instance_t
authorRémi Denis-Courmont <remi@remlab.net>
Mon, 25 Jul 2011 14:53:13 +0000 (17:53 +0300)
committerRémi Denis-Courmont <remi@remlab.net>
Mon, 25 Jul 2011 15:15:37 +0000 (18:15 +0300)
This prepares for a possible cleanup of the audio output object,
especially hiding more stuff into the core.

19 files changed:
include/vlc_aout.h
modules/audio_output/alsa.c
modules/audio_output/amem.c
modules/audio_output/audioqueue.c
modules/audio_output/auhal.c
modules/audio_output/directx.c
modules/audio_output/file.c
modules/audio_output/jack.c
modules/audio_output/opensles_android.c
modules/audio_output/oss.c
modules/audio_output/portaudio.c
modules/audio_output/pulse.c
modules/audio_output/sdl.c
modules/audio_output/waveout.c
modules/misc/dummy/aout.c
src/audio_output/common.c
src/audio_output/intf.c
src/audio_output/mixer.c
src/audio_output/output.c

index 27178e5a90fc2887503a4983de1d937e4bf057e4..3c53fee95e74af759c87c6429fa439d82b79405a 100644 (file)
@@ -164,31 +164,9 @@ struct aout_fifo_t
 /* FIXME to remove once aout.h is cleaned a bit more */
 #include <vlc_block.h>
 
-/** an output stream for the audio output */
-typedef struct aout_output_t
-{
-    audio_sample_format_t   output;
-    /* Indicates whether the audio output is currently starving, to avoid
-     * printing a 1,000 "output is starving" messages. */
-    bool              b_starving;
-
-    /* post-filters */
-    filter_t *              pp_filters[AOUT_MAX_FILTERS];
-    int                     i_nb_filters;
-
-    aout_fifo_t             fifo;
-
-    struct module_t *       p_module;
-    struct aout_sys_t *     p_sys;
-    void (*pf_play)( aout_instance_t * );
-    void (* pf_pause)( aout_instance_t *, bool, mtime_t );
-    int (* pf_volume_set )( aout_instance_t *, float, bool );
-    int                     i_nb_samples;
-} aout_output_t;
-
 struct aout_mixer_t;
 
-/** audio output thread descriptor */
+/** Audio output object */
 struct aout_instance_t
 {
     VLC_COMMON_MEMBERS
@@ -205,8 +183,27 @@ struct aout_instance_t
     float                   mixer_multiplier;
     struct aout_mixer_t    *p_mixer;
 
-    /* Output plug-in */
-    aout_output_t           output;
+    audio_sample_format_t format; /**< Output format (plugin can modify it
+        only when succesfully probed and not afterward) */
+
+    /* Indicates whether the audio output is currently starving, to avoid
+     * printing a 1,000 "output is starving" messages. */
+    bool              b_starving;
+
+    /* post-filters */
+    filter_t *              pp_filters[AOUT_MAX_FILTERS];
+    int                     i_nb_filters;
+
+    aout_fifo_t             fifo;
+
+    struct module_t *module; /**< Output plugin */
+    struct aout_sys_t *sys; /**< Output plugin private data */
+    void (*pf_play)( aout_instance_t * ); /**< Audio buffer callback */
+    void (* pf_pause)( aout_instance_t *, bool, mtime_t ); /**< Pause/resume
+        callback (optional, may be NULL) */
+    int (* pf_volume_set )(aout_instance_t *, float, bool); /**< Volume setter
+        (optional, may be NULL) */
+    int                     i_nb_samples;
 };
 
 /**
index 3f3804a24e8e5a4c4dc4e0333ebd9a316164820a..f19844d1b0efe558ea929a8182841925c73361e8 100644 (file)
@@ -184,7 +184,7 @@ static int Open (vlc_object_t *obj)
         return VLC_ENOMEM;
 
     snd_pcm_format_t pcm_format; /* ALSA sample format */
-    vlc_fourcc_t fourcc = p_aout->output.output.i_format;
+    vlc_fourcc_t fourcc = p_aout->format.i_format;
     bool spdif = false;
 
     switch (fourcc)
@@ -242,7 +242,7 @@ static int Open (vlc_object_t *obj)
             pcm_format = SND_PCM_FORMAT_U8;
             break;
         default:
-            if (AOUT_FMT_NON_LINEAR(&p_aout->output.output))
+            if (AOUT_FMT_NON_LINEAR(&p_aout->format))
                 spdif = var_InheritBool (p_aout, "spdif");
             if (HAVE_FPU)
             {
@@ -263,7 +263,7 @@ static int Open (vlc_object_t *obj)
     {
         unsigned aes3;
 
-        switch (p_aout->output.output.i_rate)
+        switch (p_aout->format.i_rate)
         {
 #define FS(freq) \
             case freq: aes3 = IEC958_AES3_CON_FS_ ## freq; break;
@@ -293,7 +293,7 @@ static int Open (vlc_object_t *obj)
         free (psz_device);
         return VLC_ENOMEM;
     }
-    p_aout->output.p_sys = p_sys;
+    p_aout->sys = p_sys;
 
 #ifdef ALSA_DEBUG
     snd_output_stdio_attach( &p_sys->p_snd_stderr, stderr, 0 );
@@ -349,24 +349,24 @@ static int Open (vlc_object_t *obj)
         pcm_format = SND_PCM_FORMAT_S16;
         i_channels = 2;
 
-        p_aout->output.i_nb_samples = i_period_size = ALSA_SPDIF_PERIOD_SIZE;
-        p_aout->output.output.i_bytes_per_frame = AOUT_SPDIF_SIZE;
-        p_aout->output.output.i_frame_length = A52_FRAME_NB;
+        p_aout->i_nb_samples = i_period_size = ALSA_SPDIF_PERIOD_SIZE;
+        p_aout->format.i_bytes_per_frame = AOUT_SPDIF_SIZE;
+        p_aout->format.i_frame_length = A52_FRAME_NB;
 
         aout_VolumeNoneInit( p_aout );
     }
     else
     {
         i_buffer_size = ALSA_DEFAULT_BUFFER_SIZE;
-        i_channels = aout_FormatNbChannels( &p_aout->output.output );
+        i_channels = aout_FormatNbChannels( &p_aout->format );
 
-        p_aout->output.i_nb_samples = i_period_size = ALSA_DEFAULT_PERIOD_SIZE;
+        p_aout->i_nb_samples = i_period_size = ALSA_DEFAULT_PERIOD_SIZE;
 
         aout_VolumeSoftInit( p_aout );
     }
 
-    p_aout->output.pf_play = Play;
-    p_aout->output.pf_pause = NULL;
+    p_aout->pf_play = Play;
+    p_aout->pf_pause = NULL;
 
     snd_pcm_hw_params_t *p_hw;
     snd_pcm_sw_params_t *p_sw;
@@ -391,7 +391,7 @@ static int Open (vlc_object_t *obj)
         goto error;
     }
 
-    p_aout->output.output.i_format = fourcc;
+    p_aout->format.i_format = fourcc;
 
     val = snd_pcm_hw_params_set_access( p_sys->p_snd_pcm, p_hw,
                                         SND_PCM_ACCESS_RW_INTERLEAVED );
@@ -412,9 +412,9 @@ static int Open (vlc_object_t *obj)
     }
 
     /* Set rate. */
-    unsigned old_rate = p_aout->output.output.i_rate;
+    unsigned old_rate = p_aout->format.i_rate;
     val = snd_pcm_hw_params_set_rate_near (p_sys->p_snd_pcm, p_hw,
-                                           &p_aout->output.output.i_rate,
+                                           &p_aout->format.i_rate,
                                            NULL);
     if (val < 0)
     {
@@ -422,9 +422,9 @@ static int Open (vlc_object_t *obj)
                  snd_strerror (val));
         goto error;
     }
-    if (p_aout->output.output.i_rate != old_rate)
+    if (p_aout->format.i_rate != old_rate)
         msg_Warn (p_aout, "resampling from %d Hz to %d Hz", old_rate,
-                  p_aout->output.output.i_rate);
+                  p_aout->format.i_rate);
 
     /* Set period size. */
     val = snd_pcm_hw_params_set_period_size_near( p_sys->p_snd_pcm, p_hw,
@@ -435,7 +435,7 @@ static int Open (vlc_object_t *obj)
                  snd_strerror( val ) );
         goto error;
     }
-    p_aout->output.i_nb_samples = i_period_size;
+    p_aout->i_nb_samples = i_period_size;
 
     /* Set buffer size. */
     val = snd_pcm_hw_params_set_buffer_size_near( p_sys->p_snd_pcm, p_hw,
@@ -469,7 +469,7 @@ static int Open (vlc_object_t *obj)
     snd_pcm_sw_params_current( p_sys->p_snd_pcm, p_sw );
 
     snd_pcm_sw_params_set_avail_min( p_sys->p_snd_pcm, p_sw,
-                                     p_aout->output.i_nb_samples );
+                                     p_aout->i_nb_samples );
     /* start playing when one period has been written */
     val = snd_pcm_sw_params_set_start_threshold( p_sys->p_snd_pcm, p_sw,
                                                  ALSA_DEFAULT_PERIOD_SIZE);
@@ -529,13 +529,13 @@ static void PlayIgnore( aout_instance_t *p_aout )
  *****************************************************************************/
 static void Play( aout_instance_t *p_aout )
 {
-    p_aout->output.pf_play = PlayIgnore;
+    p_aout->pf_play = PlayIgnore;
 
     /* get the playing date of the first aout buffer */
-    p_aout->output.p_sys->start_date = aout_FifoFirstDate( &p_aout->output.fifo );
+    p_aout->sys->start_date = aout_FifoFirstDate( &p_aout->fifo );
 
     /* wake up the audio output thread */
-    sem_post( &p_aout->output.p_sys->wait );
+    sem_post( &p_aout->sys->wait );
 }
 
 /*****************************************************************************
@@ -544,7 +544,7 @@ static void Play( aout_instance_t *p_aout )
 static void Close (vlc_object_t *obj)
 {
     aout_instance_t *p_aout = (aout_instance_t *)obj;
-    struct aout_sys_t * p_sys = p_aout->output.p_sys;
+    struct aout_sys_t * p_sys = p_aout->sys;
 
     /* Make sure that the thread will stop once it is waken up */
     vlc_cancel( p_sys->thread );
@@ -565,7 +565,7 @@ static void Close (vlc_object_t *obj)
 static void* ALSAThread( void *data )
 {
     aout_instance_t * p_aout = data;
-    struct aout_sys_t * p_sys = p_aout->output.p_sys;
+    struct aout_sys_t * p_sys = p_aout->sys;
 
     /* Wait for the exact time to start playing (avoids resampling) */
     vlc_sem_wait( &p_sys->wait );
@@ -583,7 +583,7 @@ static void* ALSAThread( void *data )
  *****************************************************************************/
 static void ALSAFill( aout_instance_t * p_aout )
 {
-    struct aout_sys_t * p_sys = p_aout->output.p_sys;
+    struct aout_sys_t * p_sys = p_aout->sys;
     snd_pcm_t *p_pcm = p_sys->p_snd_pcm;
     snd_pcm_status_t * p_status;
     int i_snd_rc;
@@ -635,9 +635,9 @@ static void ALSAFill( aout_instance_t * p_aout )
 
         size_t i_bytes = snd_pcm_frames_to_bytes( p_pcm, delay );
         mtime_t delay_us = CLOCK_FREQ * i_bytes
-                / p_aout->output.output.i_bytes_per_frame
-                / p_aout->output.output.i_rate
-                * p_aout->output.output.i_frame_length;
+                / p_aout->format.i_bytes_per_frame
+                / p_aout->format.i_rate
+                * p_aout->format.i_frame_length;
 
 #ifdef ALSA_DEBUG
         snd_pcm_state_t state = snd_pcm_status_get_state( p_status );
@@ -646,16 +646,16 @@ static void ALSAFill( aout_instance_t * p_aout )
 
         msg_Dbg( p_aout, "Delay is %ld frames (%zu bytes)", delay, i_bytes );
 
-        msg_Dbg( p_aout, "Bytes per frame: %d", p_aout->output.output.i_bytes_per_frame );
-        msg_Dbg( p_aout, "Rate: %d", p_aout->output.output.i_rate );
-        msg_Dbg( p_aout, "Frame length: %d", p_aout->output.output.i_frame_length );
+        msg_Dbg( p_aout, "Bytes per frame: %d", p_aout->format.i_bytes_per_frame );
+        msg_Dbg( p_aout, "Rate: %d", p_aout->format.i_rate );
+        msg_Dbg( p_aout, "Frame length: %d", p_aout->format.i_frame_length );
         msg_Dbg( p_aout, "Next date: in %"PRId64" microseconds", delay_us );
 #endif
         next_date = mdate() + delay_us;
     }
 
     block_t *p_buffer = aout_OutputNextBuffer( p_aout, next_date,
-           (p_aout->output.output.i_format ==  VLC_CODEC_SPDIFL) );
+           (p_aout->format.i_format ==  VLC_CODEC_SPDIFL) );
 
     /* Audio output buffer shortage -> stop the fill process and wait */
     if( p_buffer == NULL )
index 60e6977abfe82be14857ad4911e0b9d0038588af..6dc59fcceb5b7e8111f175cb584365e75e35b698 100644 (file)
@@ -61,10 +61,10 @@ struct aout_sys_t
 
 static void Play (aout_instance_t *aout)
 {
-    aout_sys_t *sys = aout->output.p_sys;
+    aout_sys_t *sys = aout->sys;
     block_t *block;
 
-    while ((block = aout_FifoPop(&aout->output.fifo)) != NULL)
+    while ((block = aout_FifoPop(&aout->fifo)) != NULL)
     {
         sys->play (sys->opaque, block->p_buffer, block->i_nb_samples,
                    block->i_pts);
@@ -74,7 +74,7 @@ static void Play (aout_instance_t *aout)
 
 static int VolumeSet (aout_instance_t *aout, float vol, bool mute)
 {
-    aout_sys_t *sys = aout->output.p_sys;
+    aout_sys_t *sys = aout->sys;
 
     return sys->set_volume (sys->opaque, vol, mute) ? -1 : 0;
 }
@@ -88,7 +88,7 @@ static int Open (vlc_object_t *obj)
     if (unlikely(sys == NULL))
         return VLC_ENOMEM;
 
-    aout->output.p_sys = sys;
+    aout->sys = sys;
     sys->opaque = var_InheritAddress (obj, "amem-data");
     sys->play = var_InheritAddress (obj, "amem-play");
     sys->set_volume = var_InheritAddress (obj, "amem-set-volume");
@@ -102,8 +102,8 @@ static int Open (vlc_object_t *obj)
 
     if (setup != NULL)
     {
-        rate = aout->output.output.i_rate;
-        channels = aout_FormatNbChannels(&aout->output.output);
+        rate = aout->format.i_rate;
+        channels = aout_FormatNbChannels(&aout->format);
 
         if (setup (&sys->opaque, format, &rate, &channels))
             goto error;
@@ -122,18 +122,18 @@ static int Open (vlc_object_t *obj)
 
     /* TODO: amem-format */
     /* FIXME/TODO channel mapping */
-    if (strcmp(format, "S16N") || aout->output.output.i_channels != channels)
+    if (strcmp(format, "S16N") || aout->format.i_channels != channels)
     {
         msg_Err (aout, "format not supported");
         goto error;
     }
-    aout->output.output.i_format = VLC_CODEC_S16N;
-    aout->output.output.i_rate = rate;
+    aout->format.i_format = VLC_CODEC_S16N;
+    aout->format.i_rate = rate;
 
-    aout->output.pf_play = Play;
-    aout->output.pf_pause = NULL;
+    aout->pf_play = Play;
+    aout->pf_pause = NULL;
     if (sys->set_volume != NULL)
-        aout->output.pf_volume_set = VolumeSet;
+        aout->pf_volume_set = VolumeSet;
     else
         aout_VolumeSoftInit (aout);
     return VLC_SUCCESS;
@@ -146,7 +146,7 @@ error:
 static void Close (vlc_object_t *obj)
 {
     aout_instance_t *aout = (aout_instance_t *)obj;
-    aout_sys_t *sys = aout->output.p_sys;
+    aout_sys_t *sys = aout->sys;
 
     if (sys->cleanup != NULL)
         sys->cleanup (sys->opaque);
index d3d0e0babd10c565eac42ea4de4352681cbc94a1..50b98fb64de9b5b221d35b20a8c989c5a75e4c70 100644 (file)
@@ -78,7 +78,7 @@ static int Open ( vlc_object_t *p_this )
 {
     aout_instance_t *p_aout = (aout_instance_t *)p_this;
     struct aout_sys_t *p_sys = malloc(sizeof(aout_sys_t));
-    p_aout->output.p_sys = p_sys;
+    p_aout->sys = p_sys;
 
     OSStatus status = 0;
 
@@ -118,12 +118,12 @@ static int Open ( vlc_object_t *p_this )
     /* Volume is entirely done in software. */
     aout_VolumeSoftInit( p_aout );
 
-    p_aout->output.output.i_format = VLC_CODEC_S16L;
-    p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
-    p_aout->output.output.i_rate = 44100;
-    p_aout->output.i_nb_samples = FRAME_SIZE;
-    p_aout->output.pf_play = Play;
-    p_aout->output.pf_pause = NULL;
+    p_aout->format.i_format = VLC_CODEC_S16L;
+    p_aout->format.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
+    p_aout->format.i_rate = 44100;
+    p_aout->format.i_nb_samples = FRAME_SIZE;
+    p_aout->format.pf_play = Play;
+    p_aout->format.pf_pause = NULL;
 
     msg_Dbg(p_aout, "Starting AudioQueue (status = %i)", status);
     status = AudioQueueStart(p_sys->audioQueue, NULL);
@@ -145,7 +145,7 @@ static void Play( aout_instance_t * p_aout )
 static void Close ( vlc_object_t *p_this )
 {
     aout_instance_t *p_aout = (aout_instance_t *)p_this;
-    struct aout_sys_t * p_sys = p_aout->output.p_sys;
+    struct aout_sys_t * p_sys = p_aout->sys;
 
     msg_Dbg(p_aout, "Stopping AudioQueue");
     AudioQueueStop(p_sys->audioQueue, false);
@@ -160,7 +160,7 @@ void AudioQueueCallback(void * inUserData, AudioQueueRef inAQ, AudioQueueBufferR
 
     if (p_aout) {
         vlc_mutex_lock( &p_aout->lock );
-        p_buffer = aout_FifoPop( &p_aout->output.fifo );
+        p_buffer = aout_FifoPop( &p_aout->fifo );
         vlc_mutex_unlock( &p_aout->lock );
     }
 
index 24198e37a910840be75cf42a7827278ed9d8b669..b008573d2f9d7efda22e07d3925a05b6973de7d5 100644 (file)
@@ -165,11 +165,11 @@ static int Open( vlc_object_t * p_this )
     int                     b_alive = false;
 
     /* Allocate structure */
-    p_aout->output.p_sys = malloc( sizeof( aout_sys_t ) );
-    if( p_aout->output.p_sys == NULL )
+    p_aout->sys = malloc( sizeof( aout_sys_t ) );
+    if( p_aout->sys == NULL )
         return VLC_ENOMEM;
 
-    p_sys = p_aout->output.p_sys;
+    p_sys = p_aout->sys;
     p_sys->i_default_dev = 0;
     p_sys->i_selected_dev = 0;
     p_sys->i_devices = 0;
@@ -187,10 +187,10 @@ static int Open( vlc_object_t * p_this )
     p_sys->b_changed_mixing = false;
     memset( p_sys->p_remainder_buffer, 0, sizeof(uint8_t) * BUFSIZE );
 
-    p_aout->output.pf_play = Play;
-    p_aout->output.pf_pause = NULL;
+    p_aout->pf_play = Play;
+    p_aout->pf_pause = NULL;
 
-    aout_FormatPrint( p_aout, "VLC is looking for:", (audio_sample_format_t *)&p_aout->output.output );
+    aout_FormatPrint( p_aout, "VLC is looking for:", &p_aout->format );
 
     /* Persistent device variable */
     if( var_Type( p_aout->p_libvlc, "macosx-audio-device" ) == 0 )
@@ -262,7 +262,7 @@ static int Open( vlc_object_t * p_this )
     }
 
     /* Check for Digital mode or Analog output mode */
-    if( AOUT_FMT_NON_LINEAR( &p_aout->output.output ) && p_sys->b_supports_digital )
+    if( AOUT_FMT_NON_LINEAR( &p_aout->format ) && p_sys->b_supports_digital )
     {
         if( OpenSPDIF( p_aout ) )
         {
@@ -292,7 +292,7 @@ error:
  *****************************************************************************/
 static int OpenAnalog( aout_instance_t *p_aout )
 {
-    struct aout_sys_t           *p_sys = p_aout->output.p_sys;
+    struct aout_sys_t           *p_sys = p_aout->sys;
     OSStatus                    err = noErr;
     UInt32                      i_param_size = 0;
     int                         i_original;
@@ -390,18 +390,18 @@ static int OpenAnalog( aout_instance_t *p_aout )
         msg_Dbg( p_aout, "layout of AUHAL has %d channels" , (int)layout->mNumberChannelDescriptions );
 
         /* Initialize the VLC core channel count */
-        p_aout->output.output.i_physical_channels = 0;
-        i_original = p_aout->output.output.i_original_channels & AOUT_CHAN_PHYSMASK;
+        p_aout->format.i_physical_channels = 0;
+        i_original = p_aout->format.i_original_channels & AOUT_CHAN_PHYSMASK;
 
         if( i_original == AOUT_CHAN_CENTER || layout->mNumberChannelDescriptions < 2 )
         {
             /* We only need Mono or cannot output more than 1 channel */
-            p_aout->output.output.i_physical_channels = AOUT_CHAN_CENTER;
+            p_aout->format.i_physical_channels = AOUT_CHAN_CENTER;
         }
         else if( i_original == (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT) || layout->mNumberChannelDescriptions < 3 )
         {
             /* We only need Stereo or cannot output more than 2 channels */
-            p_aout->output.output.i_physical_channels = AOUT_CHAN_RIGHT | AOUT_CHAN_LEFT;
+            p_aout->format.i_physical_channels = AOUT_CHAN_RIGHT | AOUT_CHAN_LEFT;
         }
         else
         {
@@ -413,39 +413,39 @@ static int OpenAnalog( aout_instance_t *p_aout )
                 switch( layout->mChannelDescriptions[i].mChannelLabel )
                 {
                     case kAudioChannelLabel_Left:
-                        p_aout->output.output.i_physical_channels |= AOUT_CHAN_LEFT;
+                        p_aout->format.i_physical_channels |= AOUT_CHAN_LEFT;
                         continue;
                     case kAudioChannelLabel_Right:
-                        p_aout->output.output.i_physical_channels |= AOUT_CHAN_RIGHT;
+                        p_aout->format.i_physical_channels |= AOUT_CHAN_RIGHT;
                         continue;
                     case kAudioChannelLabel_Center:
-                        p_aout->output.output.i_physical_channels |= AOUT_CHAN_CENTER;
+                        p_aout->format.i_physical_channels |= AOUT_CHAN_CENTER;
                         continue;
                     case kAudioChannelLabel_LFEScreen:
-                        p_aout->output.output.i_physical_channels |= AOUT_CHAN_LFE;
+                        p_aout->format.i_physical_channels |= AOUT_CHAN_LFE;
                         continue;
                     case kAudioChannelLabel_LeftSurround:
-                        p_aout->output.output.i_physical_channels |= AOUT_CHAN_REARLEFT;
+                        p_aout->format.i_physical_channels |= AOUT_CHAN_REARLEFT;
                         continue;
                     case kAudioChannelLabel_RightSurround:
-                        p_aout->output.output.i_physical_channels |= AOUT_CHAN_REARRIGHT;
+                        p_aout->format.i_physical_channels |= AOUT_CHAN_REARRIGHT;
                         continue;
                     case kAudioChannelLabel_RearSurroundLeft:
-                        p_aout->output.output.i_physical_channels |= AOUT_CHAN_MIDDLELEFT;
+                        p_aout->format.i_physical_channels |= AOUT_CHAN_MIDDLELEFT;
                         continue;
                     case kAudioChannelLabel_RearSurroundRight:
-                        p_aout->output.output.i_physical_channels |= AOUT_CHAN_MIDDLERIGHT;
+                        p_aout->format.i_physical_channels |= AOUT_CHAN_MIDDLERIGHT;
                         continue;
                     case kAudioChannelLabel_CenterSurround:
-                        p_aout->output.output.i_physical_channels |= AOUT_CHAN_REARCENTER;
+                        p_aout->format.i_physical_channels |= AOUT_CHAN_REARCENTER;
                         continue;
                     default:
                         msg_Warn( p_aout, "unrecognized channel form provided by driver: %d", (int)layout->mChannelDescriptions[i].mChannelLabel );
                 }
             }
-            if( p_aout->output.output.i_physical_channels == 0 )
+            if( p_aout->format.i_physical_channels == 0 )
             {
-                p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
+                p_aout->format.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
                 msg_Err( p_aout, "You should configure your speaker layout with Audio Midi Setup Utility in /Applications/Utilities. Now using Stereo mode." );
                 dialog_Fatal( p_aout, _("Audio device is not configured"), "%s",
                                 _("You should configure your speaker layout with "
@@ -458,14 +458,14 @@ static int OpenAnalog( aout_instance_t *p_aout )
     else
     {
         msg_Warn( p_aout, "this driver does not support kAudioDevicePropertyPreferredChannelLayout. BAD DRIVER AUTHOR !!!" );
-        p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
+        p_aout->format.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
     }
 
-    msg_Dbg( p_aout, "selected %d physical channels for device output", aout_FormatNbChannels( &p_aout->output.output ) );
-    msg_Dbg( p_aout, "VLC will output: %s", aout_FormatPrintChannels( &p_aout->output.output ));
+    msg_Dbg( p_aout, "selected %d physical channels for device output", aout_FormatNbChannels( &p_aout->format ) );
+    msg_Dbg( p_aout, "VLC will output: %s", aout_FormatPrintChannels( &p_aout->format ));
 
     memset (&new_layout, 0, sizeof(new_layout));
-    switch( aout_FormatNbChannels( &p_aout->output.output ) )
+    switch( aout_FormatNbChannels( &p_aout->format ) )
     {
         case 1:
             new_layout.mChannelLayoutTag = kAudioChannelLayoutTag_Mono;
@@ -474,41 +474,41 @@ static int OpenAnalog( aout_instance_t *p_aout )
             new_layout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo;
             break;
         case 3:
-            if( p_aout->output.output.i_physical_channels & AOUT_CHAN_CENTER )
+            if( p_aout->format.i_physical_channels & AOUT_CHAN_CENTER )
             {
                 new_layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_7; // L R C
             }
-            else if( p_aout->output.output.i_physical_channels & AOUT_CHAN_LFE )
+            else if( p_aout->format.i_physical_channels & AOUT_CHAN_LFE )
             {
                 new_layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_4; // L R LFE
             }
             break;
         case 4:
-            if( p_aout->output.output.i_physical_channels & ( AOUT_CHAN_CENTER | AOUT_CHAN_LFE ) )
+            if( p_aout->format.i_physical_channels & ( AOUT_CHAN_CENTER | AOUT_CHAN_LFE ) )
             {
                 new_layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_10; // L R C LFE
             }
-            else if( p_aout->output.output.i_physical_channels & ( AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT ) )
+            else if( p_aout->format.i_physical_channels & ( AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT ) )
             {
                 new_layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_3; // L R Ls Rs
             }
-            else if( p_aout->output.output.i_physical_channels & ( AOUT_CHAN_CENTER | AOUT_CHAN_REARCENTER ) )
+            else if( p_aout->format.i_physical_channels & ( AOUT_CHAN_CENTER | AOUT_CHAN_REARCENTER ) )
             {
                 new_layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_3; // L R C Cs
             }
             break;
         case 5:
-            if( p_aout->output.output.i_physical_channels & ( AOUT_CHAN_CENTER ) )
+            if( p_aout->format.i_physical_channels & ( AOUT_CHAN_CENTER ) )
             {
                 new_layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_19; // L R Ls Rs C
             }
-            else if( p_aout->output.output.i_physical_channels & ( AOUT_CHAN_LFE ) )
+            else if( p_aout->format.i_physical_channels & ( AOUT_CHAN_LFE ) )
             {
                 new_layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_18; // L R Ls Rs LFE
             }
             break;
         case 6:
-            if( p_aout->output.output.i_physical_channels & ( AOUT_CHAN_LFE ) )
+            if( p_aout->format.i_physical_channels & ( AOUT_CHAN_LFE ) )
             {
                 new_layout.mChannelLayoutTag = kAudioChannelLayoutTag_DVD_20; // L R Ls Rs C LFE
             }
@@ -528,14 +528,14 @@ static int OpenAnalog( aout_instance_t *p_aout )
     }
 
     /* Set up the format to be used */
-    DeviceFormat.mSampleRate = p_aout->output.output.i_rate;
+    DeviceFormat.mSampleRate = p_aout->format.i_rate;
     DeviceFormat.mFormatID = kAudioFormatLinearPCM;
 
     /* We use float 32. It's the best supported format by both VLC and Coreaudio */
-    p_aout->output.output.i_format = VLC_CODEC_FL32;
+    p_aout->format.i_format = VLC_CODEC_FL32;
     DeviceFormat.mFormatFlags = kAudioFormatFlagsNativeFloatPacked;
     DeviceFormat.mBitsPerChannel = 32;
-    DeviceFormat.mChannelsPerFrame = aout_FormatNbChannels( &p_aout->output.output );
+    DeviceFormat.mChannelsPerFrame = aout_FormatNbChannels( &p_aout->format );
 
     /* Calculate framesizes and stuff */
     DeviceFormat.mFramesPerPacket = 1;
@@ -564,8 +564,8 @@ static int OpenAnalog( aout_instance_t *p_aout )
     msg_Dbg( p_aout, STREAM_FORMAT_MSG( "the actual set AU format is " , DeviceFormat ) );
 
     /* Do the last VLC aout setups */
-    aout_FormatPrepare( &p_aout->output.output );
-    p_aout->output.i_nb_samples = FRAMESIZE;
+    aout_FormatPrepare( &p_aout->format );
+    p_aout->i_nb_samples = FRAMESIZE;
     aout_VolumeSoftInit( p_aout );
 
     /* set the IOproc callback */
@@ -608,7 +608,7 @@ static int OpenAnalog( aout_instance_t *p_aout )
  *****************************************************************************/
 static int OpenSPDIF( aout_instance_t * p_aout )
 {
-    struct aout_sys_t       *p_sys = p_aout->output.p_sys;
+    struct aout_sys_t       *p_sys = p_aout->sys;
     OSStatus                err = noErr;
     UInt32                  i_param_size = 0, b_mix = 0;
     Boolean                 b_writeable = false;
@@ -741,7 +741,7 @@ static int OpenSPDIF( aout_instance_t * p_aout )
                 if( p_format_list[j].mFormatID == 'IAC3' ||
                       p_format_list[j].mFormatID == kAudioFormat60958AC3 )
                 {
-                    if( p_format_list[j].mSampleRate == p_aout->output.output.i_rate )
+                    if( p_format_list[j].mSampleRate == p_aout->format.i_rate )
                     {
                         i_requested_rate_format = j;
                         break;
@@ -776,14 +776,14 @@ static int OpenSPDIF( aout_instance_t * p_aout )
 
     /* Set the format flags */
     if( p_sys->stream_format.mFormatFlags & kAudioFormatFlagIsBigEndian )
-        p_aout->output.output.i_format = VLC_CODEC_SPDIFB;
+        p_aout->format.i_format = VLC_CODEC_SPDIFB;
     else
-        p_aout->output.output.i_format = VLC_CODEC_SPDIFL;
-    p_aout->output.output.i_bytes_per_frame = AOUT_SPDIF_SIZE;
-    p_aout->output.output.i_frame_length = A52_FRAME_NB;
-    p_aout->output.i_nb_samples = p_aout->output.output.i_frame_length;
-    p_aout->output.output.i_rate = (unsigned int)p_sys->stream_format.mSampleRate;
-    aout_FormatPrepare( &p_aout->output.output );
+        p_aout->format.i_format = VLC_CODEC_SPDIFL;
+    p_aout->format.i_bytes_per_frame = AOUT_SPDIF_SIZE;
+    p_aout->format.i_frame_length = A52_FRAME_NB;
+    p_aout->format.i_nb_samples = p_aout->format.i_frame_length;
+    p_aout->format.i_rate = (unsigned int)p_sys->stream_format.mSampleRate;
+    aout_FormatPrepare( &p_aout->format );
     aout_VolumeNoneInit( p_aout );
 
     /* Add IOProc callback */
@@ -827,7 +827,7 @@ static int OpenSPDIF( aout_instance_t * p_aout )
 static void Close( vlc_object_t * p_this )
 {
     aout_instance_t     *p_aout = (aout_instance_t *)p_this;
-    struct aout_sys_t   *p_sys = p_aout->output.p_sys;
+    struct aout_sys_t   *p_sys = p_aout->sys;
     OSStatus            err = noErr;
     UInt32              i_param_size = 0;
 
@@ -926,7 +926,7 @@ static void Probe( aout_instance_t * p_aout )
     AudioDeviceID       *p_devices = NULL;
     vlc_value_t         val, text;
 
-    struct aout_sys_t   *p_sys = p_aout->output.p_sys;
+    struct aout_sys_t   *p_sys = p_aout->sys;
 
     /* Get number of devices */
     AudioObjectPropertyAddress audioDevicesAddress = { kAudioHardwarePropertyDevices, kAudioDevicePropertyScopeOutput, kAudioObjectPropertyElementMaster };
@@ -1262,7 +1262,7 @@ static OSStatus RenderCallbackAnalog( vlc_object_t *_p_aout,
     uint32_t        i_mData_bytes = 0;
 
     aout_instance_t * p_aout = (aout_instance_t *)_p_aout;
-    struct aout_sys_t * p_sys = p_aout->output.p_sys;
+    struct aout_sys_t * p_sys = p_aout->sys;
 
     VLC_UNUSED(ioActionFlags);
     VLC_UNUSED(inBusNumber);
@@ -1278,7 +1278,7 @@ static OSStatus RenderCallbackAnalog( vlc_object_t *_p_aout,
 
     current_date = p_sys->clock_diff +
                    AudioConvertHostTimeToNanos( host_time.mHostTime ) / 1000;
-                   //- ((mtime_t) 1000000 / p_aout->output.output.i_rate * 31 ); // 31 = Latency in Frames. retrieve somewhere
+                   //- ((mtime_t) 1000000 / p_aout->format.i_rate * 31 ); // 31 = Latency in Frames. retrieve somewhere
 
     if( ioData == NULL && ioData->mNumberBuffers < 1 )
     {
@@ -1296,8 +1296,8 @@ static OSStatus RenderCallbackAnalog( vlc_object_t *_p_aout,
                     &p_sys->p_remainder_buffer[p_sys->i_read_bytes],
                     i_mData_bytes );
         p_sys->i_read_bytes += i_mData_bytes;
-        current_date += (mtime_t) ( (mtime_t) 1000000 / p_aout->output.output.i_rate ) *
-                        ( i_mData_bytes / 4 / aout_FormatNbChannels( &p_aout->output.output )  ); // 4 is fl32 specific
+        current_date += (mtime_t) ( (mtime_t) 1000000 / p_aout->format.i_rate ) *
+                        ( i_mData_bytes / 4 / aout_FormatNbChannels( &p_aout->format )  ); // 4 is fl32 specific
 
         if( p_sys->i_read_bytes >= p_sys->i_total_bytes )
             p_sys->i_read_bytes = p_sys->i_total_bytes = 0;
@@ -1329,8 +1329,8 @@ static OSStatus RenderCallbackAnalog( vlc_object_t *_p_aout,
             else
             {
                 /* update current_date */
-                current_date += (mtime_t) ( (mtime_t) 1000000 / p_aout->output.output.i_rate ) *
-                                ( i_second_mData_bytes / 4 / aout_FormatNbChannels( &p_aout->output.output )  ); // 4 is fl32 specific
+                current_date += (mtime_t) ( (mtime_t) 1000000 / p_aout->format.i_rate ) *
+                                ( i_second_mData_bytes / 4 / aout_FormatNbChannels( &p_aout->format )  ); // 4 is fl32 specific
             }
             aout_BufferFree( p_buffer );
         }
@@ -1359,7 +1359,7 @@ static OSStatus RenderCallbackSPDIF( AudioDeviceID inDevice,
     mtime_t         current_date;
 
     aout_instance_t * p_aout = (aout_instance_t *)threadGlobals;
-    struct aout_sys_t * p_sys = p_aout->output.p_sys;
+    struct aout_sys_t * p_sys = p_aout->sys;
 
     VLC_UNUSED(inDevice);
     VLC_UNUSED(inInputData);
@@ -1372,7 +1372,7 @@ static OSStatus RenderCallbackSPDIF( AudioDeviceID inDevice,
 
     current_date = p_sys->clock_diff +
                    AudioConvertHostTimeToNanos( inOutputTime->mHostTime ) / 1000;
-                   //- ((mtime_t) 1000000 / p_aout->output.output.i_rate * 31 ); // 31 = Latency in Frames. retrieve somewhere
+                   //- ((mtime_t) 1000000 / p_aout->format.i_rate * 31 ); // 31 = Latency in Frames. retrieve somewhere
 
     p_buffer = aout_OutputNextBuffer( p_aout, current_date, true );
 
index 773bf86dd16c17ea1f3c6e9d21fe3cc4eefc2054..2dcb10b7e74357679c7d79cdfbc0368668a3d869 100644 (file)
@@ -37,7 +37,7 @@
 
 #include "windows_audio_common.h"
 
-#define FRAME_SIZE ((int)p_aout->output.output.i_rate/20) /* Size in samples */
+#define FRAME_SIZE ((int)p_aout->format.i_rate/20) /* Size in samples */
 
 /*****************************************************************************
  * notification_thread_t: DirectX event thread
@@ -163,18 +163,18 @@ static int OpenAudio( vlc_object_t *p_this )
     msg_Dbg( p_aout, "Opening DirectSound Audio Output" );
 
    /* Allocate structure */
-    p_aout->output.p_sys = malloc( sizeof( aout_sys_t ) );
-    if( p_aout->output.p_sys == NULL )
+    p_aout->sys = malloc( sizeof( aout_sys_t ) );
+    if( p_aout->sys == NULL )
         return VLC_ENOMEM;
 
     /* Initialize some variables */
-    p_aout->output.p_sys->p_dsobject = NULL;
-    p_aout->output.p_sys->p_dsbuffer = NULL;
-    p_aout->output.p_sys->p_notif = NULL;
-    p_aout->output.p_sys->b_playing = 0;
+    p_aout->sys->p_dsobject = NULL;
+    p_aout->sys->p_dsbuffer = NULL;
+    p_aout->sys->p_notif = NULL;
+    p_aout->sys->b_playing = 0;
 
-    p_aout->output.pf_play = Play;
-    p_aout->output.pf_pause = NULL;
+    p_aout->pf_play = Play;
+    p_aout->pf_pause = NULL;
     aout_VolumeSoftInit( p_aout );
 
     /* Retrieve config values */
@@ -198,9 +198,9 @@ static int OpenAudio( vlc_object_t *p_this )
         i = 0;
     }
     free( psz_speaker );
-    p_aout->output.p_sys->i_speaker_setup = i;
+    p_aout->sys->i_speaker_setup = i;
 
-    p_aout->output.p_sys->p_device_guid = 0;
+    p_aout->sys->p_device_guid = 0;
 
     /* Initialise DirectSound */
     if( InitDirectSound( p_aout ) )
@@ -223,24 +223,23 @@ static int OpenAudio( vlc_object_t *p_this )
     /* Open the device */
     if( val.i_int == AOUT_VAR_SPDIF )
     {
-        p_aout->output.output.i_format = VLC_CODEC_SPDIFL;
+        p_aout->format.i_format = VLC_CODEC_SPDIFL;
 
         /* Calculate the frame size in bytes */
-        p_aout->output.i_nb_samples = A52_FRAME_NB;
-        p_aout->output.output.i_bytes_per_frame = AOUT_SPDIF_SIZE;
-        p_aout->output.output.i_frame_length = A52_FRAME_NB;
-        p_aout->output.p_sys->i_frame_size =
-            p_aout->output.output.i_bytes_per_frame;
+        p_aout->i_nb_samples = A52_FRAME_NB;
+        p_aout->format.i_bytes_per_frame = AOUT_SPDIF_SIZE;
+        p_aout->format.i_frame_length = A52_FRAME_NB;
+        p_aout->sys->i_frame_size = p_aout->format.i_bytes_per_frame;
 
         if( CreateDSBuffer( p_aout, VLC_CODEC_SPDIFL,
-                            p_aout->output.output.i_physical_channels,
-                            aout_FormatNbChannels( &p_aout->output.output ),
-                            p_aout->output.output.i_rate,
-                            p_aout->output.p_sys->i_frame_size, false )
+                            p_aout->format.i_physical_channels,
+                            aout_FormatNbChannels( &p_aout->format ),
+                            p_aout->format.i_rate,
+                            p_aout->sys->i_frame_size, false )
             != VLC_SUCCESS )
         {
             msg_Err( p_aout, "cannot open directx audio device" );
-            free( p_aout->output.p_sys );
+            free( p_aout->sys );
             return VLC_EGENERIC;
         }
 
@@ -250,14 +249,14 @@ static int OpenAudio( vlc_object_t *p_this )
     {
         if( val.i_int == AOUT_VAR_5_1 )
         {
-            p_aout->output.output.i_physical_channels
+            p_aout->format.i_physical_channels
                 = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
                    | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT
                    | AOUT_CHAN_LFE;
         }
         else if( val.i_int == AOUT_VAR_7_1 )
         {
-                    p_aout->output.output.i_physical_channels
+                    p_aout->format.i_physical_channels
                         = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
                            | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT
                            | AOUT_CHAN_MIDDLELEFT | AOUT_CHAN_MIDDLERIGHT
@@ -265,62 +264,61 @@ static int OpenAudio( vlc_object_t *p_this )
         }
         else if( val.i_int == AOUT_VAR_3F2R )
         {
-            p_aout->output.output.i_physical_channels
+            p_aout->format.i_physical_channels
                 = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
                    | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT;
         }
         else if( val.i_int == AOUT_VAR_2F2R )
         {
-            p_aout->output.output.i_physical_channels
+            p_aout->format.i_physical_channels
                 = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
                    | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT;
         }
         else if( val.i_int == AOUT_VAR_MONO )
         {
-            p_aout->output.output.i_physical_channels = AOUT_CHAN_CENTER;
+            p_aout->format.i_physical_channels = AOUT_CHAN_CENTER;
         }
         else
         {
-            p_aout->output.output.i_physical_channels
+            p_aout->format.i_physical_channels
                 = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
         }
 
-        if( CreateDSBufferPCM( p_aout, &p_aout->output.output.i_format,
-                               p_aout->output.output.i_physical_channels,
-                               aout_FormatNbChannels( &p_aout->output.output ),
-                               p_aout->output.output.i_rate, false )
+        if( CreateDSBufferPCM( p_aout, &p_aout->format.i_format,
+                               p_aout->format.i_physical_channels,
+                               aout_FormatNbChannels( &p_aout->format ),
+                               p_aout->format.i_rate, false )
             != VLC_SUCCESS )
         {
             msg_Err( p_aout, "cannot open directx audio device" );
-            free( p_aout->output.p_sys );
+            free( p_aout->sys );
             return VLC_EGENERIC;
         }
 
         /* Calculate the frame size in bytes */
-        p_aout->output.i_nb_samples = FRAME_SIZE;
-        aout_FormatPrepare( &p_aout->output.output );
+        p_aout->i_nb_samples = FRAME_SIZE;
+        aout_FormatPrepare( &p_aout->format );
         aout_VolumeSoftInit( p_aout );
     }
 
     /* Now we need to setup our DirectSound play notification structure */
-    p_aout->output.p_sys->p_notif = calloc( 1, sizeof( *p_aout->output.p_sys->p_notif ) );
-    p_aout->output.p_sys->p_notif->p_aout = p_aout;
+    p_aout->sys->p_notif = calloc( 1, sizeof( *p_aout->sys->p_notif ) );
+    p_aout->sys->p_notif->p_aout = p_aout;
 
-    vlc_atomic_set(&p_aout->output.p_sys->p_notif->abort, 0);
-    p_aout->output.p_sys->p_notif->event = CreateEvent( 0, FALSE, FALSE, 0 );
-    p_aout->output.p_sys->p_notif->i_frame_size =
-        p_aout->output.p_sys->i_frame_size;
+    vlc_atomic_set(&p_aout->sys->p_notif->abort, 0);
+    p_aout->sys->p_notif->event = CreateEvent( 0, FALSE, FALSE, 0 );
+    p_aout->sys->p_notif->i_frame_size =  p_aout->sys->i_frame_size;
 
     /* then launch the notification thread */
     msg_Dbg( p_aout, "creating DirectSoundThread" );
-    if( vlc_clone( &p_aout->output.p_sys->p_notif->thread,
-                   DirectSoundThread, p_aout->output.p_sys->p_notif,
+    if( vlc_clone( &p_aout->sys->p_notif->thread,
+                   DirectSoundThread, p_aout->sys->p_notif,
                    VLC_THREAD_PRIORITY_HIGHEST ) )
     {
         msg_Err( p_aout, "cannot create DirectSoundThread" );
-        CloseHandle( p_aout->output.p_sys->p_notif->event );
-        free( p_aout->output.p_sys->p_notif );
-        p_aout->output.p_sys->p_notif = NULL;
+        CloseHandle( p_aout->sys->p_notif->event );
+        free( p_aout->sys->p_notif );
+        p_aout->sys->p_notif = NULL;
         goto error;
     }
 
@@ -350,10 +348,10 @@ static void Probe( aout_instance_t * p_aout )
     i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT |
                           AOUT_CHAN_CENTER | AOUT_CHAN_REARLEFT |
                           AOUT_CHAN_REARRIGHT | AOUT_CHAN_LFE;
-    if( p_aout->output.output.i_physical_channels == i_physical_channels )
+    if( p_aout->format.i_physical_channels == i_physical_channels )
     {
         if( CreateDSBufferPCM( p_aout, &i_format, i_physical_channels, 6,
-                               p_aout->output.output.i_rate, true )
+                               p_aout->format.i_rate, true )
             == VLC_SUCCESS )
         {
             val.i_int = AOUT_VAR_5_1;
@@ -371,10 +369,10 @@ static void Probe( aout_instance_t * p_aout )
                              AOUT_CHAN_CENTER | AOUT_CHAN_REARLEFT |
                              AOUT_CHAN_MIDDLELEFT | AOUT_CHAN_MIDDLERIGHT |
                              AOUT_CHAN_REARRIGHT | AOUT_CHAN_LFE;
-    if( p_aout->output.output.i_physical_channels == i_physical_channels )
+    if( p_aout->format.i_physical_channels == i_physical_channels )
     {
         if( CreateDSBufferPCM( p_aout, &i_format, i_physical_channels, 8,
-                                  p_aout->output.output.i_rate, true )
+                                  p_aout->format.i_rate, true )
             == VLC_SUCCESS )
         {
             val.i_int = AOUT_VAR_7_1;
@@ -391,10 +389,10 @@ static void Probe( aout_instance_t * p_aout )
     i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT |
                           AOUT_CHAN_CENTER | AOUT_CHAN_REARLEFT |
                           AOUT_CHAN_REARRIGHT;
-    if( p_aout->output.output.i_physical_channels == i_physical_channels )
+    if( p_aout->format.i_physical_channels == i_physical_channels )
     {
         if( CreateDSBufferPCM( p_aout, &i_format, i_physical_channels, 5,
-                               p_aout->output.output.i_rate, true )
+                               p_aout->format.i_rate, true )
             == VLC_SUCCESS )
         {
             val.i_int = AOUT_VAR_3F2R;
@@ -413,11 +411,11 @@ static void Probe( aout_instance_t * p_aout )
     /* Test for 2 Front 2 Rear support */
     i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT |
                           AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT;
-    if( ( p_aout->output.output.i_physical_channels & i_physical_channels )
+    if( ( p_aout->format.i_physical_channels & i_physical_channels )
         == i_physical_channels )
     {
         if( CreateDSBufferPCM( p_aout, &i_format, i_physical_channels, 4,
-                               p_aout->output.output.i_rate, true )
+                               p_aout->format.i_rate, true )
             == VLC_SUCCESS )
         {
             val.i_int = AOUT_VAR_2F2R;
@@ -436,7 +434,7 @@ static void Probe( aout_instance_t * p_aout )
     /* Test for stereo support */
     i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
     if( CreateDSBufferPCM( p_aout, &i_format, i_physical_channels, 2,
-                           p_aout->output.output.i_rate, true )
+                           p_aout->format.i_rate, true )
         == VLC_SUCCESS )
     {
         val.i_int = AOUT_VAR_STEREO;
@@ -454,7 +452,7 @@ static void Probe( aout_instance_t * p_aout )
     /* Test for mono support */
     i_physical_channels = AOUT_CHAN_CENTER;
     if( CreateDSBufferPCM( p_aout, &i_format, i_physical_channels, 1,
-                           p_aout->output.output.i_rate, true )
+                           p_aout->format.i_rate, true )
         == VLC_SUCCESS )
     {
         val.i_int = AOUT_VAR_MONO;
@@ -465,7 +463,7 @@ static void Probe( aout_instance_t * p_aout )
 
     /* Check the speaker configuration to determine which channel config should
      * be the default */
-    if FAILED( IDirectSound_GetSpeakerConfig( p_aout->output.p_sys->p_dsobject,
+    if FAILED( IDirectSound_GetSpeakerConfig( p_aout->sys->p_dsobject,
                                               &ui_speaker_config ) )
     {
         ui_speaker_config = DSSPEAKER_STEREO;
@@ -502,7 +500,7 @@ static void Probe( aout_instance_t * p_aout )
     }
 
     /* Check if we want to override speaker config */
-    switch( p_aout->output.p_sys->i_speaker_setup )
+    switch( p_aout->sys->i_speaker_setup )
     {
     case 0: /* Default value aka Windows default speaker setup */
         break;
@@ -534,12 +532,12 @@ static void Probe( aout_instance_t * p_aout )
     var_Set( p_aout, "audio-device", val );
 
     /* Test for SPDIF support */
-    if ( AOUT_FMT_NON_LINEAR( &p_aout->output.output ) )
+    if ( AOUT_FMT_NON_LINEAR( &p_aout->format ) )
     {
         if( CreateDSBuffer( p_aout, VLC_CODEC_SPDIFL,
-                            p_aout->output.output.i_physical_channels,
-                            aout_FormatNbChannels( &p_aout->output.output ),
-                            p_aout->output.output.i_rate,
+                            p_aout->format.i_physical_channels,
+                            aout_FormatNbChannels( &p_aout->format ),
+                            p_aout->format.i_rate,
                             AOUT_SPDIF_SIZE, true )
             == VLC_SUCCESS )
         {
@@ -572,26 +570,26 @@ static void Probe( aout_instance_t * p_aout )
  *****************************************************************************/
 static void Play( aout_instance_t *p_aout )
 {
-    if( !p_aout->output.p_sys->b_playing )
+    if( !p_aout->sys->b_playing )
     {
         aout_buffer_t *p_buffer;
 
-        p_aout->output.p_sys->b_playing = 1;
+        p_aout->sys->b_playing = 1;
 
         /* get the playing date of the first aout buffer */
-        p_aout->output.p_sys->p_notif->start_date =
-            aout_FifoFirstDate( &p_aout->output.fifo );
+        p_aout->sys->p_notif->start_date =
+            aout_FifoFirstDate( &p_aout->fifo );
 
         /* fill in the first samples */
         for( int i = 0; i < FRAMES_NUM; i++ )
         {
-            p_buffer = aout_FifoPop( &p_aout->output.fifo );
+            p_buffer = aout_FifoPop( &p_aout->fifo );
             if( !p_buffer ) break;
             FillBuffer( p_aout, i, p_buffer );
         }
 
         /* wake up the audio output thread */
-        SetEvent( p_aout->output.p_sys->p_notif->event );
+        SetEvent( p_aout->sys->p_notif->event );
     }
 }
 
@@ -601,14 +599,14 @@ static void Play( aout_instance_t *p_aout )
 static void CloseAudio( vlc_object_t *p_this )
 {
     aout_instance_t * p_aout = (aout_instance_t *)p_this;
-    aout_sys_t *p_sys = p_aout->output.p_sys;
+    aout_sys_t *p_sys = p_aout->sys;
 
     msg_Dbg( p_aout, "closing audio device" );
 
     /* kill the position notification thread, if any */
     if( p_sys->p_notif )
     {
-        vlc_atomic_set(&p_aout->output.p_sys->p_notif->abort, 1);
+        vlc_atomic_set(&p_aout->sys->p_notif->abort, 1);
         /* wake up the audio thread if needed */
         if( !p_sys->b_playing ) SetEvent( p_sys->p_notif->event );
 
@@ -625,7 +623,7 @@ static void CloseAudio( vlc_object_t *p_this )
     /* free DSOUND.DLL */
     if( p_sys->hdsound_dll ) FreeLibrary( p_sys->hdsound_dll );
 
-    free( p_aout->output.p_sys->p_device_guid );
+    free( p_aout->sys->p_device_guid );
     free( p_sys );
 }
 
@@ -642,22 +640,22 @@ static int CALLBACK CallBackDirectSoundEnum( LPGUID p_guid, LPCWSTR psz_desc,
     char *psz_device = FromWide( psz_desc );
     msg_Dbg( p_aout, "found device: %s", psz_device );
 
-    if( p_aout->output.p_sys->psz_device &&
-        !strcmp(p_aout->output.p_sys->psz_device, psz_device) && p_guid )
+    if( p_aout->sys->psz_device &&
+        !strcmp(p_aout->sys->psz_device, psz_device) && p_guid )
     {
         /* Use the device corresponding to psz_device */
-        p_aout->output.p_sys->p_device_guid = malloc( sizeof( GUID ) );
-        *p_aout->output.p_sys->p_device_guid = *p_guid;
+        p_aout->sys->p_device_guid = malloc( sizeof( GUID ) );
+        *p_aout->sys->p_device_guid = *p_guid;
         msg_Dbg( p_aout, "using device: %s", psz_device );
     }
     else
     {
         /* If no default device has been selected, chose the first one */
-        if( !p_aout->output.p_sys->psz_device && p_guid )
+        if( !p_aout->sys->psz_device && p_guid )
         {
-            p_aout->output.p_sys->psz_device = strdup( psz_device );
-            p_aout->output.p_sys->p_device_guid = malloc( sizeof( GUID ) );
-            *p_aout->output.p_sys->p_device_guid = *p_guid;
+            p_aout->sys->psz_device = strdup( psz_device );
+            p_aout->sys->p_device_guid = malloc( sizeof( GUID ) );
+            *p_aout->sys->p_device_guid = *p_guid;
             msg_Dbg( p_aout, "using device: %s", psz_device );
         }
     }
@@ -674,15 +672,15 @@ static int InitDirectSound( aout_instance_t *p_aout )
     HRESULT (WINAPI *OurDirectSoundCreate)(LPGUID, LPDIRECTSOUND *, LPUNKNOWN);
     HRESULT (WINAPI *OurDirectSoundEnumerate)(LPDSENUMCALLBACKW, LPVOID);
 
-    p_aout->output.p_sys->hdsound_dll = LoadLibrary("DSOUND.DLL");
-    if( p_aout->output.p_sys->hdsound_dll == NULL )
+    p_aout->sys->hdsound_dll = LoadLibrary("DSOUND.DLL");
+    if( p_aout->sys->hdsound_dll == NULL )
     {
         msg_Warn( p_aout, "cannot open DSOUND.DLL" );
         goto error;
     }
 
     OurDirectSoundCreate = (void *)
-        GetProcAddress( p_aout->output.p_sys->hdsound_dll,
+        GetProcAddress( p_aout->sys->hdsound_dll,
                         "DirectSoundCreate" );
     if( OurDirectSoundCreate == NULL )
     {
@@ -692,11 +690,11 @@ static int InitDirectSound( aout_instance_t *p_aout )
 
     /* Get DirectSoundEnumerate */
     OurDirectSoundEnumerate = (void *)
-       GetProcAddress( p_aout->output.p_sys->hdsound_dll,
+       GetProcAddress( p_aout->sys->hdsound_dll,
                        "DirectSoundEnumerateW" );
     if( OurDirectSoundEnumerate )
     {
-        p_aout->output.p_sys->psz_device = var_InheritString(p_aout, "directx-audio-device-name");
+        p_aout->sys->psz_device = var_InheritString(p_aout, "directx-audio-device-name");
         /* Attempt enumeration */
         if( FAILED( OurDirectSoundEnumerate( CallBackDirectSoundEnum,
                                              p_aout ) ) )
@@ -706,8 +704,8 @@ static int InitDirectSound( aout_instance_t *p_aout )
     }
 
     /* Create the direct sound object */
-    if FAILED( OurDirectSoundCreate( p_aout->output.p_sys->p_device_guid,
-                                     &p_aout->output.p_sys->p_dsobject,
+    if FAILED( OurDirectSoundCreate( p_aout->sys->p_device_guid,
+                                     &p_aout->sys->p_dsobject,
                                      NULL ) )
     {
         msg_Warn( p_aout, "cannot create a direct sound device" );
@@ -724,7 +722,7 @@ static int InitDirectSound( aout_instance_t *p_aout )
      * sound without any video, and so what window handle should we use ???
      * The hack for now is to use the Desktop window handle - it seems to be
      * working */
-    if( IDirectSound_SetCooperativeLevel( p_aout->output.p_sys->p_dsobject,
+    if( IDirectSound_SetCooperativeLevel( p_aout->sys->p_dsobject,
                                           GetDesktopWindow(),
                                           DSSCL_EXCLUSIVE) )
     {
@@ -734,11 +732,11 @@ static int InitDirectSound( aout_instance_t *p_aout )
     return VLC_SUCCESS;
 
  error:
-    p_aout->output.p_sys->p_dsobject = NULL;
-    if( p_aout->output.p_sys->hdsound_dll )
+    p_aout->sys->p_dsobject = NULL;
+    if( p_aout->sys->hdsound_dll )
     {
-        FreeLibrary( p_aout->output.p_sys->hdsound_dll );
-        p_aout->output.p_sys->hdsound_dll = NULL;
+        FreeLibrary( p_aout->sys->hdsound_dll );
+        p_aout->sys->hdsound_dll = NULL;
     }
     return VLC_EGENERIC;
 
@@ -809,8 +807,8 @@ static int CreateDSBuffer( aout_instance_t *p_aout, int i_format,
     waveformat.Format.nAvgBytesPerSec =
         waveformat.Format.nSamplesPerSec * waveformat.Format.nBlockAlign;
 
-    p_aout->output.p_sys->i_bits_per_sample = waveformat.Format.wBitsPerSample;
-    p_aout->output.p_sys->i_channels = i_nb_channels;
+    p_aout->sys->i_bits_per_sample = waveformat.Format.wBitsPerSample;
+    p_aout->sys->i_channels = i_nb_channels;
 
     /* Then fill in the direct sound descriptor */
     memset(&dsbdesc, 0, sizeof(DSBUFFERDESC));
@@ -837,16 +835,16 @@ static int CreateDSBuffer( aout_instance_t *p_aout, int i_format,
     dsbdesc.lpwfxFormat = (WAVEFORMATEX *)&waveformat;
 
     if FAILED( IDirectSound_CreateSoundBuffer(
-                   p_aout->output.p_sys->p_dsobject, &dsbdesc,
-                   &p_aout->output.p_sys->p_dsbuffer, NULL) )
+                   p_aout->sys->p_dsobject, &dsbdesc,
+                   &p_aout->sys->p_dsbuffer, NULL) )
     {
         if( dsbdesc.dwFlags & DSBCAPS_LOCHARDWARE )
         {
             /* Try without DSBCAPS_LOCHARDWARE */
             dsbdesc.dwFlags &= ~DSBCAPS_LOCHARDWARE;
             if FAILED( IDirectSound_CreateSoundBuffer(
-                   p_aout->output.p_sys->p_dsobject, &dsbdesc,
-                   &p_aout->output.p_sys->p_dsbuffer, NULL) )
+                   p_aout->sys->p_dsobject, &dsbdesc,
+                   &p_aout->sys->p_dsbuffer, NULL) )
             {
                 return VLC_EGENERIC;
             }
@@ -862,19 +860,19 @@ static int CreateDSBuffer( aout_instance_t *p_aout, int i_format,
     /* Stop here if we were just probing */
     if( b_probe )
     {
-        IDirectSoundBuffer_Release( p_aout->output.p_sys->p_dsbuffer );
-        p_aout->output.p_sys->p_dsbuffer = NULL;
+        IDirectSoundBuffer_Release( p_aout->sys->p_dsbuffer );
+        p_aout->sys->p_dsbuffer = NULL;
         return VLC_SUCCESS;
     }
 
-    p_aout->output.p_sys->i_frame_size = i_bytes_per_frame;
-    p_aout->output.p_sys->i_channel_mask = waveformat.dwChannelMask;
-    p_aout->output.p_sys->b_chan_reorder =
+    p_aout->sys->i_frame_size = i_bytes_per_frame;
+    p_aout->sys->i_channel_mask = waveformat.dwChannelMask;
+    p_aout->sys->b_chan_reorder =
         aout_CheckChannelReorder( pi_channels_in, pi_channels_out,
                                   waveformat.dwChannelMask, i_nb_channels,
-                                  p_aout->output.p_sys->pi_chan_table );
+                                  p_aout->sys->pi_chan_table );
 
-    if( p_aout->output.p_sys->b_chan_reorder )
+    if( p_aout->sys->b_chan_reorder )
     {
         msg_Dbg( p_aout, "channel reordering needed" );
     }
@@ -927,10 +925,10 @@ static int CreateDSBufferPCM( aout_instance_t *p_aout, vlc_fourcc_t *i_format,
  *****************************************************************************/
 static void DestroyDSBuffer( aout_instance_t *p_aout )
 {
-    if( p_aout->output.p_sys->p_dsbuffer )
+    if( p_aout->sys->p_dsbuffer )
     {
-        IDirectSoundBuffer_Release( p_aout->output.p_sys->p_dsbuffer );
-        p_aout->output.p_sys->p_dsbuffer = NULL;
+        IDirectSoundBuffer_Release( p_aout->sys->p_dsbuffer );
+        p_aout->sys->p_dsbuffer = NULL;
     }
 }
 
@@ -942,8 +940,8 @@ static void DestroyDSBuffer( aout_instance_t *p_aout )
 static int FillBuffer( aout_instance_t *p_aout, int i_frame,
                        aout_buffer_t *p_buffer )
 {
-    notification_thread_t *p_notif = p_aout->output.p_sys->p_notif;
-    aout_sys_t *p_sys = p_aout->output.p_sys;
+    notification_thread_t *p_notif = p_aout->sys->p_notif;
+    aout_sys_t *p_sys = p_aout->sys;
     void *p_write_position, *p_wrap_around;
     unsigned long l_bytes1, l_bytes2;
     HRESULT dsresult;
@@ -1018,7 +1016,7 @@ static void* DirectSoundThread( void *data )
     int canc = vlc_savecancel ();
 
     /* We don't want any resampling when using S/PDIF output */
-    bool b_sleek = (p_aout->output.output.i_format == VLC_CODEC_SPDIFL);
+    bool b_sleek = (p_aout->format.i_format == VLC_CODEC_SPDIFL);
 
     msg_Dbg( p_aout, "DirectSoundThread ready" );
 
@@ -1031,15 +1029,15 @@ static void* DirectSoundThread( void *data )
         mwait( p_notif->start_date - AOUT_MAX_PTS_ADVANCE / 2 );
 
         /* start playing the buffer */
-        dsresult = IDirectSoundBuffer_Play( p_aout->output.p_sys->p_dsbuffer,
+        dsresult = IDirectSoundBuffer_Play( p_aout->sys->p_dsbuffer,
                                         0,                         /* Unused */
                                         0,                         /* Unused */
                                         DSBPLAY_LOOPING );          /* Flags */
         if( dsresult == DSERR_BUFFERLOST )
         {
-            IDirectSoundBuffer_Restore( p_aout->output.p_sys->p_dsbuffer );
+            IDirectSoundBuffer_Restore( p_aout->sys->p_dsbuffer );
             dsresult = IDirectSoundBuffer_Play(
-                                            p_aout->output.p_sys->p_dsbuffer,
+                                            p_aout->sys->p_dsbuffer,
                                             0,                     /* Unused */
                                             0,                     /* Unused */
                                             DSBPLAY_LOOPING );      /* Flags */
@@ -1055,7 +1053,7 @@ static void* DirectSoundThread( void *data )
     {
         DWORD l_read;
         int l_queued = 0, l_free_slots;
-        unsigned i_frame_siz = p_aout->output.i_nb_samples;
+        unsigned i_frame_siz = p_aout->i_nb_samples;
         mtime_t mtime = mdate();
         int i;
 
@@ -1065,7 +1063,7 @@ static void* DirectSoundThread( void *data )
 
         /* Find out current play position */
         if FAILED( IDirectSoundBuffer_GetCurrentPosition(
-                   p_aout->output.p_sys->p_dsbuffer, &l_read, NULL ) )
+                   p_aout->sys->p_dsbuffer, &l_read, NULL ) )
         {
             msg_Err( p_aout, "GetCurrentPosition() failed!" );
             l_read = 0;
@@ -1073,15 +1071,15 @@ static void* DirectSoundThread( void *data )
 
         /* Detect underruns */
         if( l_queued && mtime - last_time >
-            INT64_C(1000000) * l_queued / p_aout->output.output.i_rate )
+            INT64_C(1000000) * l_queued / p_aout->format.i_rate )
         {
             msg_Dbg( p_aout, "detected underrun!" );
         }
         last_time = mtime;
 
         /* Try to fill in as many frame buffers as possible */
-        l_read /= (p_aout->output.output.i_bytes_per_frame /
-            p_aout->output.output.i_frame_length);
+        l_read /= (p_aout->format.i_bytes_per_frame /
+            p_aout->format.i_frame_length);
         l_queued = p_notif->i_write_slot * i_frame_siz - l_read;
         if( l_queued < 0 ) l_queued += (i_frame_siz * FRAMES_NUM);
         l_free_slots = (FRAMES_NUM * i_frame_siz - l_queued) / i_frame_siz;
@@ -1090,7 +1088,7 @@ static void* DirectSoundThread( void *data )
         {
             aout_buffer_t *p_buffer = aout_OutputNextBuffer( p_aout,
                 mtime + INT64_C(1000000) * (i * i_frame_siz + l_queued) /
-                p_aout->output.output.i_rate, b_sleek );
+                p_aout->format.i_rate, b_sleek );
 
             /* If there is no audio data available and we have some buffered
              * already, then just wait for the next time */
@@ -1102,11 +1100,11 @@ static void* DirectSoundThread( void *data )
 
         /* Sleep a reasonable amount of time */
         l_queued += (i * i_frame_siz);
-        msleep( INT64_C(1000000) * l_queued / p_aout->output.output.i_rate / 2 );
+        msleep( INT64_C(1000000) * l_queued / p_aout->format.i_rate / 2 );
     }
 
     /* make sure the buffer isn't playing */
-    IDirectSoundBuffer_Stop( p_aout->output.p_sys->p_dsbuffer );
+    IDirectSoundBuffer_Stop( p_aout->sys->p_dsbuffer );
 
     /* free the event */
     CloseHandle( p_notif->event );
index 5e13362509406c1c4b59d753510aaaf255e02666..2992f6cc2767eaf940d28a8611221561f4b90996 100644 (file)
@@ -146,24 +146,24 @@ static int Open( vlc_object_t * p_this )
     }
 
     /* Allocate structure */
-    p_aout->output.p_sys = malloc( sizeof( aout_sys_t ) );
-    if( p_aout->output.p_sys == NULL )
+    p_aout->sys = malloc( sizeof( aout_sys_t ) );
+    if( p_aout->sys == NULL )
         return VLC_ENOMEM;
 
     if( !strcmp( psz_name, "-" ) )
-        p_aout->output.p_sys->p_file = stdout;
+        p_aout->sys->p_file = stdout;
     else
-        p_aout->output.p_sys->p_file = vlc_fopen( psz_name, "wb" );
+        p_aout->sys->p_file = vlc_fopen( psz_name, "wb" );
 
     free( psz_name );
-    if ( p_aout->output.p_sys->p_file == NULL )
+    if ( p_aout->sys->p_file == NULL )
     {
-        free( p_aout->output.p_sys );
+        free( p_aout->sys );
         return VLC_EGENERIC;
     }
 
-    p_aout->output.pf_play = Play;
-    p_aout->output.pf_pause = NULL;
+    p_aout->pf_play = Play;
+    p_aout->pf_pause = NULL;
 
     /* Audio format */
     psz_format = var_CreateGetString( p_this, "audiofile-format" );
@@ -181,25 +181,25 @@ static int Open( vlc_object_t * p_this )
     {
         msg_Err( p_aout, "cannot understand the format string (%s)",
                  psz_format );
-        if( p_aout->output.p_sys->p_file != stdout )
-            fclose( p_aout->output.p_sys->p_file );
-        free( p_aout->output.p_sys );
+        if( p_aout->sys->p_file != stdout )
+            fclose( p_aout->sys->p_file );
+        free( p_aout->sys );
         free( psz_format );
         return VLC_EGENERIC;
     }
     free( psz_format );
 
-    p_aout->output.output.i_format = format_int[i];
-    if ( AOUT_FMT_NON_LINEAR( &p_aout->output.output ) )
+    p_aout->format.i_format = format_int[i];
+    if ( AOUT_FMT_NON_LINEAR( &p_aout->format ) )
     {
-        p_aout->output.i_nb_samples = A52_FRAME_NB;
-        p_aout->output.output.i_bytes_per_frame = AOUT_SPDIF_SIZE;
-        p_aout->output.output.i_frame_length = A52_FRAME_NB;
+        p_aout->i_nb_samples = A52_FRAME_NB;
+        p_aout->format.i_bytes_per_frame = AOUT_SPDIF_SIZE;
+        p_aout->format.i_frame_length = A52_FRAME_NB;
         aout_VolumeNoneInit( p_aout );
     }
     else
     {
-        p_aout->output.i_nb_samples = FRAME_SIZE;
+        p_aout->i_nb_samples = FRAME_SIZE;
         aout_VolumeSoftInit( p_aout );
     }
 
@@ -208,22 +208,22 @@ static int Open( vlc_object_t * p_this )
 
     if( i_channels > 0 && i_channels <= CHANNELS_MAX )
     {
-        p_aout->output.output.i_physical_channels =
+        p_aout->format.i_physical_channels =
             pi_channels_maps[i_channels];
     }
 
     /* WAV header */
-    p_aout->output.p_sys->b_add_wav_header = var_CreateGetBool( p_this,
+    p_aout->sys->b_add_wav_header = var_CreateGetBool( p_this,
                                                         "audiofile-wav" );
 
-    if( p_aout->output.p_sys->b_add_wav_header )
+    if( p_aout->sys->b_add_wav_header )
     {
         /* Write wave header */
-        WAVEHEADER *wh = &p_aout->output.p_sys->waveh;
+        WAVEHEADER *wh = &p_aout->sys->waveh;
 
         memset( wh, 0, sizeof(*wh) );
 
-        switch( p_aout->output.output.i_format )
+        switch( p_aout->format.i_format )
         {
         case VLC_CODEC_FL32:
             wh->Format     = WAVE_FORMAT_IEEE_FLOAT;
@@ -246,8 +246,8 @@ static int Open( vlc_object_t * p_this )
         wh->SubChunkID = VLC_FOURCC('f', 'm', 't', ' ');
         wh->SubChunkLength = 16;
 
-        wh->Modus = aout_FormatNbChannels( &p_aout->output.output );
-        wh->SampleFreq = p_aout->output.output.i_rate;
+        wh->Modus = aout_FormatNbChannels( &p_aout->format );
+        wh->SampleFreq = p_aout->format.i_rate;
         wh->BytesPerSample = wh->Modus * ( wh->BitsPerSample / 8 );
         wh->BytesPerSec = wh->BytesPerSample * wh->SampleFreq;
 
@@ -264,7 +264,7 @@ static int Open( vlc_object_t * p_this )
         SetDWLE( &wh->BytesPerSec, wh->BytesPerSec );
 
         if( fwrite( wh, sizeof(WAVEHEADER), 1,
-                    p_aout->output.p_sys->p_file ) != 1 )
+                    p_aout->sys->p_file ) != 1 )
         {
             msg_Err( p_aout, "write error (%m)" );
         }
@@ -282,34 +282,34 @@ static void Close( vlc_object_t * p_this )
 
     msg_Dbg( p_aout, "closing audio file" );
 
-    if( p_aout->output.p_sys->b_add_wav_header )
+    if( p_aout->sys->b_add_wav_header )
     {
         /* Update Wave Header */
-        p_aout->output.p_sys->waveh.Length =
-            p_aout->output.p_sys->waveh.DataLength + sizeof(WAVEHEADER) - 4;
+        p_aout->sys->waveh.Length =
+            p_aout->sys->waveh.DataLength + sizeof(WAVEHEADER) - 4;
 
         /* Write Wave Header */
-        if( fseek( p_aout->output.p_sys->p_file, 0, SEEK_SET ) )
+        if( fseek( p_aout->sys->p_file, 0, SEEK_SET ) )
         {
             msg_Err( p_aout, "seek error (%m)" );
         }
 
         /* Header -> little endian format */
-        SetDWLE( &p_aout->output.p_sys->waveh.Length,
-                 p_aout->output.p_sys->waveh.Length );
-        SetDWLE( &p_aout->output.p_sys->waveh.DataLength,
-                 p_aout->output.p_sys->waveh.DataLength );
+        SetDWLE( &p_aout->sys->waveh.Length,
+                 p_aout->sys->waveh.Length );
+        SetDWLE( &p_aout->sys->waveh.DataLength,
+                 p_aout->sys->waveh.DataLength );
 
-        if( fwrite( &p_aout->output.p_sys->waveh, sizeof(WAVEHEADER), 1,
-                    p_aout->output.p_sys->p_file ) != 1 )
+        if( fwrite( &p_aout->sys->waveh, sizeof(WAVEHEADER), 1,
+                    p_aout->sys->p_file ) != 1 )
         {
             msg_Err( p_aout, "write error (%m)" );
         }
     }
 
-    if( p_aout->output.p_sys->p_file != stdout )
-        fclose( p_aout->output.p_sys->p_file );
-    free( p_aout->output.p_sys );
+    if( p_aout->sys->p_file != stdout )
+        fclose( p_aout->sys->p_file );
+    free( p_aout->sys );
 }
 
 /*****************************************************************************
@@ -319,18 +319,18 @@ static void Play( aout_instance_t * p_aout )
 {
     aout_buffer_t * p_buffer;
 
-    p_buffer = aout_FifoPop( &p_aout->output.fifo );
+    p_buffer = aout_FifoPop( &p_aout->fifo );
 
     if( fwrite( p_buffer->p_buffer, p_buffer->i_buffer, 1,
-                p_aout->output.p_sys->p_file ) != 1 )
+                p_aout->sys->p_file ) != 1 )
     {
         msg_Err( p_aout, "write error (%m)" );
     }
 
-    if( p_aout->output.p_sys->b_add_wav_header )
+    if( p_aout->sys->b_add_wav_header )
     {
         /* Update Wave Header */
-        p_aout->output.p_sys->waveh.DataLength += p_buffer->i_buffer;
+        p_aout->sys->waveh.DataLength += p_buffer->i_buffer;
     }
 
     aout_BufferFree( p_buffer );
index 343a0de6b90da54afe76227f9f57febce02c0530..a65774e5cb0f5f32441a6ec0013049e6c88c8972 100644 (file)
@@ -113,7 +113,7 @@ static int Open( vlc_object_t *p_this )
         status = VLC_ENOMEM;
         goto error_out;
     }
-    p_aout->output.p_sys = p_sys;
+    p_aout->sys = p_sys;
     p_sys->latency = 0;
 
     /* Connect to the JACK server */
@@ -133,17 +133,17 @@ static int Open( vlc_object_t *p_this )
     jack_set_process_callback( p_sys->p_jack_client, Process, p_aout );
     jack_set_graph_order_callback ( p_sys->p_jack_client, GraphChange, p_aout );
 
-    p_aout->output.pf_play = Play;
-    p_aout->output.pf_pause = NULL;
+    p_aout->pf_play = Play;
+    p_aout->pf_pause = NULL;
     aout_VolumeSoftInit( p_aout );
 
     /* JACK only supports fl32 format */
-    p_aout->output.output.i_format = VLC_CODEC_FL32;
+    p_aout->format.i_format = VLC_CODEC_FL32;
     // TODO add buffer size callback
-    p_aout->output.i_nb_samples = jack_get_buffer_size( p_sys->p_jack_client );
-    p_aout->output.output.i_rate = jack_get_sample_rate( p_sys->p_jack_client );
+    p_aout->i_nb_samples = jack_get_buffer_size( p_sys->p_jack_client );
+    p_aout->format.i_rate = jack_get_sample_rate( p_sys->p_jack_client );
 
-    p_sys->i_channels = aout_FormatNbChannels( &p_aout->output.output );
+    p_sys->i_channels = aout_FormatNbChannels( &p_aout->format );
 
     p_sys->p_jack_ports = malloc( p_sys->i_channels *
                                   sizeof(jack_port_t *) );
@@ -225,7 +225,7 @@ static int Open( vlc_object_t *p_this )
 
     msg_Dbg( p_aout, "JACK audio output initialized (%d channels, buffer "
              "size=%d, rate=%d)", p_sys->i_channels,
-             p_aout->output.i_nb_samples, p_aout->output.output.i_rate );
+             p_aout->i_nb_samples, p_aout->format.i_rate );
 
 error_out:
     /* Clean up, if an error occurred */
@@ -251,7 +251,7 @@ int Process( jack_nframes_t i_frames, void *p_arg )
 {
     unsigned int i, j, i_nb_samples = 0;
     aout_instance_t *p_aout = (aout_instance_t*) p_arg;
-    struct aout_sys_t *p_sys = p_aout->output.p_sys;
+    struct aout_sys_t *p_sys = p_aout->sys;
     jack_sample_t *p_src = NULL;
 
     jack_nframes_t dframes = p_sys->latency
@@ -312,7 +312,7 @@ int Process( jack_nframes_t i_frames, void *p_arg )
 static int GraphChange( void *p_arg )
 {
   aout_instance_t *p_aout = (aout_instance_t*) p_arg;
-  struct aout_sys_t *p_sys = p_aout->output.p_sys;
+  struct aout_sys_t *p_sys = p_aout->sys;
   unsigned int i;
   jack_nframes_t port_latency;
 
@@ -345,7 +345,7 @@ static void Close( vlc_object_t *p_this )
 {
     int i_error;
     aout_instance_t *p_aout = (aout_instance_t *)p_this;
-    struct aout_sys_t *p_sys = p_aout->output.p_sys;
+    struct aout_sys_t *p_sys = p_aout->sys;
 
     i_error = jack_deactivate( p_sys->p_jack_client );
     if( i_error )
index 3e809f7c02ceba5e2fee83b92d56f67465488509..3ad48fd6413177e6f210a02d3805b5bb9f8a31b3 100644 (file)
@@ -139,11 +139,11 @@ static int Open( vlc_object_t * p_this )
     SLresult            result;
 
     /* Allocate structure */
-    p_aout->output.p_sys = malloc( sizeof( aout_sys_t ) );
-    if( unlikely( p_aout->output.p_sys == NULL ) )
+    p_aout->sys = malloc( sizeof( aout_sys_t ) );
+    if( unlikely( p_aout->sys == NULL ) )
         return VLC_ENOMEM;
 
-    aout_sys_t * p_sys = p_aout->output.p_sys;
+    aout_sys_t * p_sys = p_aout->sys;
 
     p_sys->playerObject     = NULL;
     p_sys->engineObject     = NULL;
@@ -204,7 +204,7 @@ static int Open( vlc_object_t * p_this )
     SLDataFormat_PCM format_pcm;
     format_pcm.formatType       = SL_DATAFORMAT_PCM;
     format_pcm.numChannels      = 2;
-    format_pcm.samplesPerSec    = ((SLuint32) p_aout->output.output.i_rate * 1000) ;
+    format_pcm.samplesPerSec    = ((SLuint32) p_aout->format.i_rate * 1000) ;
     format_pcm.bitsPerSample    = SL_PCMSAMPLEFORMAT_FIXED_16;
     format_pcm.containerSize    = SL_PCMSAMPLEFORMAT_FIXED_16;
     format_pcm.channelMask      = SL_SPEAKER_FRONT_LEFT | SL_SPEAKER_FRONT_RIGHT;
@@ -256,13 +256,13 @@ static int Open( vlc_object_t * p_this )
     CHECK_OPENSL_ERROR( result, "Failed to switch to playing state" );
 
     // we want 16bit signed data little endian.
-    p_aout->output.output.i_format              = VLC_CODEC_S16L;
-    p_aout->output.i_nb_samples                 = 2048;
-    p_aout->output.output.i_physical_channels   = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
-    p_aout->output.pf_play                      = Play;
-    p_aout->output.pf_pause = NULL;
+    p_aout->format.i_format              = VLC_CODEC_S16L;
+    p_aout->i_nb_samples                 = 2048;
+    p_aout->format.i_physical_channels   = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
+    p_aout->pf_play                      = Play;
+    p_aout->pf_pause = NULL;
 
-    aout_FormatPrepare( &p_aout->output.output );
+    aout_FormatPrepare( &p_aout->format );
 
     return VLC_SUCCESS;
 error:
@@ -276,7 +276,7 @@ error:
 static void Close( vlc_object_t * p_this )
 {
     aout_instance_t *p_aout = (aout_instance_t *)p_this;
-    aout_sys_t      *p_sys = p_aout->output.p_sys;
+    aout_sys_t      *p_sys = p_aout->sys;
 
     msg_Dbg( p_aout, "Closing OpenSLES" );
 
@@ -292,12 +292,12 @@ static void Close( vlc_object_t * p_this )
  *****************************************************************************/
 static void Play( aout_instance_t * p_aout )
 {
-    aout_sys_t * p_sys = p_aout->output.p_sys;
+    aout_sys_t * p_sys = p_aout->sys;
     aout_buffer_t *p_buffer;
 
     SLresult result;
 
-    p_buffer = aout_FifoPop(&p_aout->output.fifo);
+    p_buffer = aout_FifoPop(&p_aout->fifo);
     if( p_buffer != NULL )
     {
         for (;;)
index 7037461697b04b42f3310c4cdea4f87242d439ad..1e115d6ea89d21f155bc918475a56b0a2082727c 100644 (file)
@@ -114,7 +114,7 @@ vlc_module_end ()
  *****************************************************************************/
 static void Probe( aout_instance_t * p_aout )
 {
-    struct aout_sys_t * p_sys = p_aout->output.p_sys;
+    struct aout_sys_t * p_sys = p_aout->sys;
     vlc_value_t val, text;
     int i_format, i_nb_channels;
 
@@ -124,7 +124,7 @@ static void Probe( aout_instance_t * p_aout )
 
     /* Test for multi-channel. */
 #ifdef SNDCTL_DSP_GETCHANNELMASK
-    if ( aout_FormatNbChannels( &p_aout->output.output ) > 2 )
+    if ( aout_FormatNbChannels( &p_aout->format ) > 2 )
     {
         /* Check that the device supports this. */
 
@@ -151,7 +151,7 @@ static void Probe( aout_instance_t * p_aout )
             }
 
             if ( (i_chanmask & (DSP_BIND_SURR | DSP_BIND_CENTER_LFE))
-                  && (p_aout->output.output.i_physical_channels ==
+                  && (p_aout->format.i_physical_channels ==
                        (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
                          | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT
                          | AOUT_CHAN_LFE)) )
@@ -163,7 +163,7 @@ static void Probe( aout_instance_t * p_aout )
             }
 
             if ( (i_chanmask & DSP_BIND_SURR)
-                  && (p_aout->output.output.i_physical_channels &
+                  && (p_aout->format.i_physical_channels &
                        (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
                          | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT)) )
             {
@@ -214,7 +214,7 @@ static void Probe( aout_instance_t * p_aout )
         val.i_int = AOUT_VAR_MONO;
         text.psz_string = _("Mono");
         var_Change( p_aout, "audio-device", VLC_VAR_ADDCHOICE, &val, &text );
-        if ( p_aout->output.output.i_physical_channels == AOUT_CHAN_CENTER )
+        if ( p_aout->format.i_physical_channels == AOUT_CHAN_CENTER )
         {
             var_Set( p_aout, "audio-device", val );
         }
@@ -228,7 +228,7 @@ static void Probe( aout_instance_t * p_aout )
     }
 
     /* Test for spdif. */
-    if ( AOUT_FMT_NON_LINEAR( &p_aout->output.output ) )
+    if ( AOUT_FMT_NON_LINEAR( &p_aout->format ) )
     {
         i_format = AFMT_AC3;
 
@@ -266,7 +266,7 @@ static int Open( vlc_object_t *p_this )
     vlc_value_t val;
 
     /* Allocate structure */
-    p_aout->output.p_sys = p_sys = malloc( sizeof( aout_sys_t ) );
+    p_aout->sys = p_sys = malloc( sizeof( aout_sys_t ) );
     if( p_sys == NULL )
         return VLC_ENOMEM;
 
@@ -298,8 +298,8 @@ static int Open( vlc_object_t *p_this )
 
     free( psz_device );
 
-    p_aout->output.pf_play = Play;
-    p_aout->output.pf_pause = NULL;
+    p_aout->pf_play = Play;
+    p_aout->pf_pause = NULL;
 
     if ( var_Type( p_aout, "audio-device" ) == 0 )
     {
@@ -316,33 +316,33 @@ static int Open( vlc_object_t *p_this )
 
     if ( val.i_int == AOUT_VAR_SPDIF )
     {
-        p_aout->output.output.i_format = VLC_CODEC_SPDIFL;
+        p_aout->format.i_format = VLC_CODEC_SPDIFL;
     }
     else if ( val.i_int == AOUT_VAR_5_1 )
     {
-        p_aout->output.output.i_format = VLC_CODEC_S16N;
-        p_aout->output.output.i_physical_channels
+        p_aout->format.i_format = VLC_CODEC_S16N;
+        p_aout->format.i_physical_channels
             = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
                | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT
                | AOUT_CHAN_LFE;
     }
     else if ( val.i_int == AOUT_VAR_2F2R )
     {
-        p_aout->output.output.i_format = VLC_CODEC_S16N;
-        p_aout->output.output.i_physical_channels
+        p_aout->format.i_format = VLC_CODEC_S16N;
+        p_aout->format.i_physical_channels
             = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
                | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT;
     }
     else if ( val.i_int == AOUT_VAR_STEREO )
     {
-        p_aout->output.output.i_format = VLC_CODEC_S16N;
-        p_aout->output.output.i_physical_channels
+        p_aout->format.i_format = VLC_CODEC_S16N;
+        p_aout->format.i_physical_channels
             = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
     }
     else if ( val.i_int == AOUT_VAR_MONO )
     {
-        p_aout->output.output.i_format = VLC_CODEC_S16N;
-        p_aout->output.output.i_physical_channels = AOUT_CHAN_CENTER;
+        p_aout->format.i_format = VLC_CODEC_S16N;
+        p_aout->format.i_physical_channels = AOUT_CHAN_CENTER;
     }
     else
     {
@@ -366,7 +366,7 @@ static int Open( vlc_object_t *p_this )
     }
 
     /* Set the output format */
-    if ( AOUT_FMT_NON_LINEAR( &p_aout->output.output ) )
+    if ( AOUT_FMT_NON_LINEAR( &p_aout->format ) )
     {
         int i_format = AFMT_AC3;
 
@@ -379,15 +379,15 @@ static int Open( vlc_object_t *p_this )
             return VLC_EGENERIC;
         }
 
-        p_aout->output.output.i_format = VLC_CODEC_SPDIFL;
-        p_aout->output.i_nb_samples = A52_FRAME_NB;
-        p_aout->output.output.i_bytes_per_frame = AOUT_SPDIF_SIZE;
-        p_aout->output.output.i_frame_length = A52_FRAME_NB;
+        p_aout->format.i_format = VLC_CODEC_SPDIFL;
+        p_aout->i_nb_samples = A52_FRAME_NB;
+        p_aout->format.i_bytes_per_frame = AOUT_SPDIF_SIZE;
+        p_aout->format.i_frame_length = A52_FRAME_NB;
 
         aout_VolumeNoneInit( p_aout );
     }
 
-    if ( !AOUT_FMT_NON_LINEAR( &p_aout->output.output ) )
+    if ( !AOUT_FMT_NON_LINEAR( &p_aout->format ) )
     {
         unsigned int i_format = AFMT_S16_NE;
         unsigned int i_frame_size, i_fragments;
@@ -406,22 +406,22 @@ static int Open( vlc_object_t *p_this )
         switch ( i_format )
         {
         case AFMT_U8:
-            p_aout->output.output.i_format = VLC_CODEC_U8;
+            p_aout->format.i_format = VLC_CODEC_U8;
             break;
         case AFMT_S8:
-            p_aout->output.output.i_format = VLC_CODEC_S8;
+            p_aout->format.i_format = VLC_CODEC_S8;
             break;
         case AFMT_U16_LE:
-            p_aout->output.output.i_format = VLC_CODEC_U16L;
+            p_aout->format.i_format = VLC_CODEC_U16L;
             break;
         case AFMT_S16_LE:
-            p_aout->output.output.i_format = VLC_CODEC_S16L;
+            p_aout->format.i_format = VLC_CODEC_S16L;
             break;
         case AFMT_U16_BE:
-            p_aout->output.output.i_format = VLC_CODEC_U16B;
+            p_aout->format.i_format = VLC_CODEC_U16B;
             break;
         case AFMT_S16_BE:
-            p_aout->output.output.i_format = VLC_CODEC_S16B;
+            p_aout->format.i_format = VLC_CODEC_S16B;
             break;
         default:
             msg_Err( p_aout, "OSS fell back to an unknown format (%d)",
@@ -431,41 +431,41 @@ static int Open( vlc_object_t *p_this )
             return VLC_EGENERIC;
         }
 
-        i_nb_channels = aout_FormatNbChannels( &p_aout->output.output );
+        i_nb_channels = aout_FormatNbChannels( &p_aout->format );
 
         /* Set the number of channels */
         if( ioctl( p_sys->i_fd, SNDCTL_DSP_CHANNELS, &i_nb_channels ) < 0 ||
-            i_nb_channels != aout_FormatNbChannels( &p_aout->output.output ) )
+            i_nb_channels != aout_FormatNbChannels( &p_aout->format ) )
         {
             msg_Err( p_aout, "cannot set number of audio channels (%s)",
-                     aout_FormatPrintChannels( &p_aout->output.output) );
+                     aout_FormatPrintChannels( &p_aout->format) );
             close( p_sys->i_fd );
             free( p_sys );
             return VLC_EGENERIC;
         }
 
         /* Set the output rate */
-        i_rate = p_aout->output.output.i_rate;
+        i_rate = p_aout->format.i_rate;
         if( ioctl( p_sys->i_fd, SNDCTL_DSP_SPEED, &i_rate ) < 0 )
         {
             msg_Err( p_aout, "cannot set audio output rate (%i)",
-                             p_aout->output.output.i_rate );
+                             p_aout->format.i_rate );
             close( p_sys->i_fd );
             free( p_sys );
             return VLC_EGENERIC;
         }
 
-        if( i_rate != p_aout->output.output.i_rate )
+        if( i_rate != p_aout->format.i_rate )
         {
-            p_aout->output.output.i_rate = i_rate;
+            p_aout->format.i_rate = i_rate;
         }
 
         /* Set the fragment size */
-        aout_FormatPrepare( &p_aout->output.output );
+        aout_FormatPrepare( &p_aout->format );
 
         /* i_fragment = xxxxyyyy where: xxxx        is fragtotal
          *                              1 << yyyy   is fragsize */
-        i_frame_size = ((uint64_t)p_aout->output.output.i_bytes_per_frame * p_aout->output.output.i_rate * 65536) / (48000 * 2 * 2) / FRAME_COUNT;
+        i_frame_size = ((uint64_t)p_aout->format.i_bytes_per_frame * p_aout->format.i_rate * 65536) / (48000 * 2 * 2) / FRAME_COUNT;
         i_fragments = 4;
         while( i_fragments < 12 && (1U << i_fragments) < i_frame_size )
         {
@@ -487,17 +487,17 @@ static int Open( vlc_object_t *p_this )
         else
         {
             /* Number of fragments actually allocated */
-            p_aout->output.p_sys->i_fragstotal = audio_buf.fragstotal;
+            p_aout->sys->i_fragstotal = audio_buf.fragstotal;
 
             /* Maximum duration the soundcard's buffer can hold */
-            p_aout->output.p_sys->max_buffer_duration =
+            p_aout->sys->max_buffer_duration =
                 (mtime_t)audio_buf.fragstotal * audio_buf.fragsize * 1000000
-                / p_aout->output.output.i_bytes_per_frame
-                / p_aout->output.output.i_rate
-                * p_aout->output.output.i_frame_length;
+                / p_aout->format.i_bytes_per_frame
+                / p_aout->format.i_rate
+                * p_aout->format.i_frame_length;
 
-            p_aout->output.i_nb_samples = audio_buf.fragsize /
-                p_aout->output.output.i_bytes_per_frame;
+            p_aout->i_nb_samples = audio_buf.fragsize /
+                p_aout->format.i_bytes_per_frame;
         }
 
         aout_VolumeSoftInit( p_aout );
@@ -530,7 +530,7 @@ static void Play( aout_instance_t *p_aout )
 static void Close( vlc_object_t * p_this )
 {
     aout_instance_t *p_aout = (aout_instance_t *)p_this;
-    struct aout_sys_t * p_sys = p_aout->output.p_sys;
+    struct aout_sys_t * p_sys = p_aout->sys;
 
     vlc_cancel( p_sys->thread );
     vlc_join( p_sys->thread, NULL );
@@ -549,7 +549,7 @@ static void Close( vlc_object_t * p_this )
  *****************************************************************************/
 static mtime_t BufferDuration( aout_instance_t * p_aout )
 {
-    struct aout_sys_t * p_sys = p_aout->output.p_sys;
+    struct aout_sys_t * p_sys = p_aout->sys;
     audio_buf_info audio_buf;
     int i_bytes;
 
@@ -565,9 +565,9 @@ static mtime_t BufferDuration( aout_instance_t * p_aout )
 
     /* Return the fragment duration */
     return (mtime_t)i_bytes * 1000000
-            / p_aout->output.output.i_bytes_per_frame
-            / p_aout->output.output.i_rate
-            * p_aout->output.output.i_frame_length;
+            / p_aout->format.i_bytes_per_frame
+            / p_aout->format.i_rate
+            * p_aout->format.i_frame_length;
 }
 
 typedef struct
@@ -591,7 +591,7 @@ static void OSSThreadCleanup( void *data )
 static void* OSSThread( void *obj )
 {
     aout_instance_t * p_aout = (aout_instance_t*)obj;
-    struct aout_sys_t * p_sys = p_aout->output.p_sys;
+    struct aout_sys_t * p_sys = p_aout->sys;
     mtime_t next_date = 0;
 
     for( ;; )
@@ -599,7 +599,7 @@ static void* OSSThread( void *obj )
         aout_buffer_t * p_buffer = NULL;
 
         int canc = vlc_savecancel ();
-        if ( p_aout->output.output.i_format != VLC_CODEC_SPDIFL )
+        if ( p_aout->format.i_format != VLC_CODEC_SPDIFL )
         {
             mtime_t buffered = BufferDuration( p_aout );
 
@@ -608,15 +608,15 @@ static void* OSSThread( void *obj )
                                               false );
 
             if( p_buffer == NULL &&
-                buffered > ( p_aout->output.p_sys->max_buffer_duration
-                             / p_aout->output.p_sys->i_fragstotal ) )
+                buffered > ( p_aout->sys->max_buffer_duration
+                             / p_aout->sys->i_fragstotal ) )
             {
                 vlc_restorecancel (canc);
                 /* If we have at least a fragment full, then we can wait a
                  * little and retry to get a new audio buffer instead of
                  * playing a blank sample */
-                msleep( ( p_aout->output.p_sys->max_buffer_duration
-                          / p_aout->output.p_sys->i_fragstotal / 2 ) );
+                msleep( ( p_aout->sys->max_buffer_duration
+                          / p_aout->sys->i_fragstotal / 2 ) );
                 continue;
             }
         }
@@ -664,8 +664,8 @@ static void* OSSThread( void *obj )
         }
         else
         {
-            i_size = FRAME_SIZE / p_aout->output.output.i_frame_length
-                      * p_aout->output.output.i_bytes_per_frame;
+            i_size = FRAME_SIZE / p_aout->format.i_frame_length
+                      * p_aout->format.i_bytes_per_frame;
             p_bytes = malloc( i_size );
             memset( p_bytes, 0, i_size );
             next_date = 0;
index 8441fd011dc8d89e0ed0835de7ede4548308b8b9..8e5415f22d466dbb999e5cf60b046a48c7e1e040 100644 (file)
@@ -181,9 +181,9 @@ static int Open( vlc_object_t * p_this )
         return VLC_ENOMEM;
     p_sys->p_aout = p_aout;
     p_sys->p_stream = 0;
-    p_aout->output.p_sys = p_sys;
-    p_aout->output.pf_play = Play;
-    p_aout->output.pf_pause = NULL;
+    p_aout->sys = p_sys;
+    p_aout->pf_play = Play;
+    p_aout->pf_pause = NULL;
 
     /* Retrieve output device id from config */
     p_sys->i_device_id = var_CreateGetInteger( p_aout, "portaudio-audio-device" );
@@ -283,7 +283,7 @@ static int Open( vlc_object_t * p_this )
 static void Close ( vlc_object_t *p_this )
 {
     aout_instance_t *p_aout = (aout_instance_t *)p_this;
-    aout_sys_t *p_sys = p_aout->output.p_sys;
+    aout_sys_t *p_sys = p_aout->sys;
 
     msg_Dbg( p_aout, "closing portaudio");
 
@@ -332,7 +332,7 @@ static void Close ( vlc_object_t *p_this )
 
 static int PAOpenDevice( aout_instance_t *p_aout )
 {
-    aout_sys_t *p_sys = p_aout->output.p_sys;
+    aout_sys_t *p_sys = p_aout->sys;
     const PaDeviceInfo *p_pdi;
     PaError i_err;
     vlc_value_t val, text;
@@ -439,7 +439,7 @@ static int PAOpenDevice( aout_instance_t *p_aout )
     }
 
     /* Audio format is paFloat32 (always supported by portaudio v19) */
-    p_aout->output.output.i_format = VLC_CODEC_FL32;
+    p_aout->format.i_format = VLC_CODEC_FL32;
 
     return VLC_SUCCESS;
 
@@ -453,7 +453,7 @@ static int PAOpenDevice( aout_instance_t *p_aout )
 
 static int PAOpenStream( aout_instance_t *p_aout )
 {
-    aout_sys_t *p_sys = p_aout->output.p_sys;
+    aout_sys_t *p_sys = p_aout->sys;
     const PaHostErrorInfo* paLastHostErrorInfo = Pa_GetLastHostErrorInfo();
     PaStreamParameters paStreamParameters;
     vlc_value_t val;
@@ -467,54 +467,54 @@ static int PAOpenStream( aout_instance_t *p_aout )
 
     if( val.i_int == AOUT_VAR_5_1 )
     {
-        p_aout->output.output.i_physical_channels
+        p_aout->format.i_physical_channels
             = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
               | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT
               | AOUT_CHAN_LFE;
     }
     else if( val.i_int == AOUT_VAR_3F2R )
     {
-        p_aout->output.output.i_physical_channels
+        p_aout->format.i_physical_channels
             = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
             | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT;
     }
     else if( val.i_int == AOUT_VAR_2F2R )
     {
-        p_aout->output.output.i_physical_channels
+        p_aout->format.i_physical_channels
             = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
             | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT;
     }
     else if( val.i_int == AOUT_VAR_MONO )
     {
-        p_aout->output.output.i_physical_channels = AOUT_CHAN_CENTER;
+        p_aout->format.i_physical_channels = AOUT_CHAN_CENTER;
     }
     else
     {
-        p_aout->output.output.i_physical_channels
+        p_aout->format.i_physical_channels
             = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
     }
 
-    i_channels = aout_FormatNbChannels( &p_aout->output.output );
+    i_channels = aout_FormatNbChannels( &p_aout->format );
     msg_Dbg( p_aout, "nb_channels requested = %d", i_channels );
-    i_channel_mask = p_aout->output.output.i_physical_channels;
+    i_channel_mask = p_aout->format.i_physical_channels;
 
     /* Calculate the frame size in bytes */
     p_sys->i_sample_size = 4 * i_channels;
-    p_aout->output.i_nb_samples = FRAME_SIZE;
-    aout_FormatPrepare( &p_aout->output.output );
+    p_aout->i_nb_samples = FRAME_SIZE;
+    aout_FormatPrepare( &p_aout->format );
     aout_VolumeSoftInit( p_aout );
 
     /* Check for channel reordering */
-    p_aout->output.p_sys->i_channel_mask = i_channel_mask;
-    p_aout->output.p_sys->i_bits_per_sample = 32; /* forced to paFloat32 */
-    p_aout->output.p_sys->i_channels = i_channels;
+    p_aout->sys->i_channel_mask = i_channel_mask;
+    p_aout->sys->i_bits_per_sample = 32; /* forced to paFloat32 */
+    p_aout->sys->i_channels = i_channels;
 
-    p_aout->output.p_sys->b_chan_reorder =
+    p_aout->sys->b_chan_reorder =
         aout_CheckChannelReorder( NULL, pi_channels_out,
                                   i_channel_mask, i_channels,
-                                  p_aout->output.p_sys->pi_chan_table );
+                                  p_aout->sys->pi_chan_table );
 
-    if( p_aout->output.p_sys->b_chan_reorder )
+    if( p_aout->sys->b_chan_reorder )
     {
         msg_Dbg( p_aout, "channel reordering needed" );
     }
@@ -527,7 +527,7 @@ static int PAOpenStream( aout_instance_t *p_aout )
     paStreamParameters.hostApiSpecificStreamInfo = NULL;
 
     i_err = Pa_OpenStream( &p_sys->p_stream, NULL /* no input */,
-                &paStreamParameters, (double)p_aout->output.output.i_rate,
+                &paStreamParameters, (double)p_aout->format.i_rate,
                 FRAME_SIZE, paClipOff, paCallback, p_sys );
     if( i_err != paNoError )
     {
@@ -586,7 +586,7 @@ static void* PORTAUDIOThread( void *data )
         pa_thread->b_signal = false;
 
         p_aout = pa_thread->p_aout;
-        p_sys = p_aout->output.p_sys;
+        p_sys = p_aout->sys;
 
         if( PAOpenDevice( p_aout ) != VLC_SUCCESS )
         {
index 3b212a98a3129de5575aa87df0644d3e47fa6f68..8a71c019fdb8de86a1e8edcc97dca967a0a03435 100644 (file)
@@ -93,7 +93,7 @@ static void sink_info_cb(pa_context *c, const pa_sink_info *i, int eol,
                          void *userdata)
 {
     aout_instance_t *aout = userdata;
-    aout_sys_t *sys = aout->output.p_sys;
+    aout_sys_t *sys = aout->sys;
 
     if (eol)
         return;
@@ -114,8 +114,8 @@ static void sink_info_cb(pa_context *c, const pa_sink_info *i, int eol,
 /*** Stream helpers ***/
 static void stream_reset_sync(pa_stream *s, aout_instance_t *aout)
 {
-    aout_sys_t *sys = aout->output.p_sys;
-    const unsigned rate = aout->output.output.i_rate;
+    aout_sys_t *sys = aout->sys;
+    const unsigned rate = aout->format.i_rate;
 
     sys->pts = VLC_TS_INVALID;
     sys->desync = 0;
@@ -143,7 +143,7 @@ static void stream_state_cb(pa_stream *s, void *userdata)
 static void stream_latency_cb(pa_stream *s, void *userdata)
 {
     aout_instance_t *aout = userdata;
-    aout_sys_t *sys = aout->output.p_sys;
+    aout_sys_t *sys = aout->sys;
     mtime_t delta, change;
 
     if (sys->pts == VLC_TS_INVALID)
@@ -179,7 +179,7 @@ static void stream_latency_cb(pa_stream *s, void *userdata)
         msg_Warn(aout, "too early by %"PRId64" us", delta);
 
     /* Compute playback sample rate */
-    const unsigned inrate = aout->output.output.i_rate;
+    const unsigned inrate = aout->format.i_rate;
 
 #define ADJUST_FACTOR 4
 #define ADJUST_MAX    1000 /* Hz (max rate variation per call) */
@@ -222,7 +222,7 @@ static void stream_latency_cb(pa_stream *s, void *userdata)
 static void stream_moved_cb(pa_stream *s, void *userdata)
 {
     aout_instance_t *aout = userdata;
-    aout_sys_t *sys = aout->output.p_sys;
+    aout_sys_t *sys = aout->sys;
     pa_operation *op;
     uint32_t idx = pa_stream_get_device_index(s);
 
@@ -325,11 +325,11 @@ static void *data_convert(block_t **pp)
  */
 static void Play(aout_instance_t *aout)
 {
-    aout_sys_t *sys = aout->output.p_sys;
+    aout_sys_t *sys = aout->sys;
     pa_stream *s = sys->stream;
 
     /* This function is called exactly once per block in the output FIFO. */
-    block_t *block = aout_FifoPop(&aout->output.fifo);
+    block_t *block = aout_FifoPop(&aout->fifo);
     assert (block != NULL);
 
     const void *ptr = data_convert(&block);
@@ -367,8 +367,8 @@ static void Play(aout_instance_t *aout)
             advance -= latency;
 
         if (advance > 0) {
-            size_t nb = (advance * aout->output.output.i_rate) / CLOCK_FREQ;
-            size_t size = aout->output.output.i_bytes_per_frame;
+            size_t nb = (advance * aout->format.i_rate) / CLOCK_FREQ;
+            size_t size = aout->format.i_bytes_per_frame;
             float *zeroes = calloc (nb, size);
 
             msg_Dbg(aout, "prepending %zu zeroes", nb);
@@ -413,7 +413,7 @@ static void Play(aout_instance_t *aout)
  */
 static void Pause(aout_instance_t *aout, bool b_paused, mtime_t i_date)
 {
-    aout_sys_t *sys = aout->output.p_sys;
+    aout_sys_t *sys = aout->sys;
     pa_stream *s = sys->stream;
 
     if (!b_paused)
@@ -432,7 +432,7 @@ static void Pause(aout_instance_t *aout, bool b_paused, mtime_t i_date)
 
 static int VolumeSet(aout_instance_t *aout, float vol, bool mute)
 {
-    aout_sys_t *sys = aout->output.p_sys;
+    aout_sys_t *sys = aout->sys;
     pa_operation *op;
 
     uint32_t idx = pa_stream_get_index(sys->stream);
@@ -461,7 +461,7 @@ static int StreamMove(vlc_object_t *obj, const char *varname, vlc_value_t old,
                       vlc_value_t val, void *userdata)
 {
     aout_instance_t *aout = (aout_instance_t *)obj;
-    aout_sys_t *sys = aout->output.p_sys;
+    aout_sys_t *sys = aout->sys;
     pa_stream *s = userdata;
     pa_operation *op;
     uint32_t idx = pa_stream_get_index(s);
@@ -494,20 +494,20 @@ static int Open(vlc_object_t *obj)
     /* Sample format specification */
     struct pa_sample_spec ss;
 
-    switch(aout->output.output.i_format)
+    switch(aout->format.i_format)
     {
         case VLC_CODEC_F64B:
-            aout->output.output.i_format = VLC_CODEC_F32B;
+            aout->format.i_format = VLC_CODEC_F32B;
         case VLC_CODEC_F32B:
             ss.format = PA_SAMPLE_FLOAT32BE;
             break;
         case VLC_CODEC_F64L:
-            aout->output.output.i_format = VLC_CODEC_F32L;
+            aout->format.i_format = VLC_CODEC_F32L;
         case VLC_CODEC_F32L:
             ss.format = PA_SAMPLE_FLOAT32LE;
             break;
         case VLC_CODEC_FI32:
-            aout->output.output.i_format = VLC_CODEC_FL32;
+            aout->format.i_format = VLC_CODEC_FL32;
             ss.format = PA_SAMPLE_FLOAT32NE;
             break;
         case VLC_CODEC_S32B:
@@ -529,26 +529,26 @@ static int Open(vlc_object_t *obj)
             ss.format = PA_SAMPLE_S16LE;
             break;
         case VLC_CODEC_S8:
-            aout->output.output.i_format = VLC_CODEC_U8;
+            aout->format.i_format = VLC_CODEC_U8;
         case VLC_CODEC_U8:
             ss.format = PA_SAMPLE_U8;
             break;
         default:
             if (HAVE_FPU)
             {
-                aout->output.output.i_format = VLC_CODEC_FL32;
+                aout->format.i_format = VLC_CODEC_FL32;
                 ss.format = PA_SAMPLE_FLOAT32NE;
             }
             else
             {
-                aout->output.output.i_format = VLC_CODEC_S16N;
+                aout->format.i_format = VLC_CODEC_S16N;
                 ss.format = PA_SAMPLE_S16NE;
             }
             break;
     }
 
-    ss.rate = aout->output.output.i_rate;
-    ss.channels = aout_FormatNbChannels(&aout->output.output);
+    ss.rate = aout->format.i_rate;
+    ss.channels = aout_FormatNbChannels(&aout->format);
     if (!pa_sample_spec_valid(&ss)) {
         msg_Err(aout, "unsupported sample specification");
         return VLC_EGENERIC;
@@ -558,28 +558,28 @@ static int Open(vlc_object_t *obj)
     struct pa_channel_map map;
     map.channels = 0;
 
-    if (aout->output.output.i_physical_channels & AOUT_CHAN_LEFT)
+    if (aout->format.i_physical_channels & AOUT_CHAN_LEFT)
         map.map[map.channels++] = PA_CHANNEL_POSITION_FRONT_LEFT;
-    if (aout->output.output.i_physical_channels & AOUT_CHAN_RIGHT)
+    if (aout->format.i_physical_channels & AOUT_CHAN_RIGHT)
         map.map[map.channels++] = PA_CHANNEL_POSITION_FRONT_RIGHT;
-    if (aout->output.output.i_physical_channels & AOUT_CHAN_MIDDLELEFT)
+    if (aout->format.i_physical_channels & AOUT_CHAN_MIDDLELEFT)
         map.map[map.channels++] = PA_CHANNEL_POSITION_SIDE_LEFT;
-    if (aout->output.output.i_physical_channels & AOUT_CHAN_MIDDLERIGHT)
+    if (aout->format.i_physical_channels & AOUT_CHAN_MIDDLERIGHT)
         map.map[map.channels++] = PA_CHANNEL_POSITION_SIDE_RIGHT;
-    if (aout->output.output.i_physical_channels & AOUT_CHAN_REARLEFT)
+    if (aout->format.i_physical_channels & AOUT_CHAN_REARLEFT)
         map.map[map.channels++] = PA_CHANNEL_POSITION_REAR_LEFT;
-    if (aout->output.output.i_physical_channels & AOUT_CHAN_REARRIGHT)
+    if (aout->format.i_physical_channels & AOUT_CHAN_REARRIGHT)
         map.map[map.channels++] = PA_CHANNEL_POSITION_REAR_RIGHT;
-    if (aout->output.output.i_physical_channels & AOUT_CHAN_REARCENTER)
+    if (aout->format.i_physical_channels & AOUT_CHAN_REARCENTER)
         map.map[map.channels++] = PA_CHANNEL_POSITION_REAR_CENTER;
-    if (aout->output.output.i_physical_channels & AOUT_CHAN_CENTER)
+    if (aout->format.i_physical_channels & AOUT_CHAN_CENTER)
     {
         if (ss.channels == 1)
             map.map[map.channels++] = PA_CHANNEL_POSITION_MONO;
         else
             map.map[map.channels++] = PA_CHANNEL_POSITION_FRONT_CENTER;
     }
-    if (aout->output.output.i_physical_channels & AOUT_CHAN_LFE)
+    if (aout->format.i_physical_channels & AOUT_CHAN_LFE)
         map.map[map.channels++] = PA_CHANNEL_POSITION_LFE;
 
     for (unsigned i = 0; map.channels < ss.channels; i++) {
@@ -626,7 +626,7 @@ static int Open(vlc_object_t *obj)
         return VLC_EGENERIC;
     }
 
-    aout->output.p_sys = sys;
+    aout->sys = sys;
     sys->stream = NULL;
     sys->context = ctx;
     sys->pts = VLC_TS_INVALID;
@@ -664,7 +664,7 @@ static int Open(vlc_object_t *obj)
             "prebuf=%u, minreq=%u",
             pba->maxlength, pba->tlength, pba->prebuf, pba->minreq);
 
-    aout->output.i_nb_samples = pba->minreq / pa_frame_size(&ss);
+    aout->i_nb_samples = pba->minreq / pa_frame_size(&ss);
 
     var_Create(aout, "audio-device", VLC_VAR_INTEGER|VLC_VAR_HASCHOICE);
     var_Change(aout, "audio-device", VLC_VAR_SETTEXT,
@@ -678,9 +678,9 @@ static int Open(vlc_object_t *obj)
     stream_moved_cb(s, aout);
     vlc_pa_unlock();
 
-    aout->output.pf_play = Play;
-    aout->output.pf_pause = Pause;
-    aout->output.pf_volume_set = VolumeSet;
+    aout->pf_play = Play;
+    aout->pf_pause = Pause;
+    aout->pf_volume_set = VolumeSet;
     return VLC_SUCCESS;
 
 fail:
@@ -695,7 +695,7 @@ fail:
 static void Close (vlc_object_t *obj)
 {
     aout_instance_t *aout = (aout_instance_t *)obj;
-    aout_sys_t *sys = aout->output.p_sys;
+    aout_sys_t *sys = aout->sys;
     pa_context *ctx = sys->context;
     pa_stream *s = sys->stream;
 
index 9151939cf419e8dacac1a8f6bf2f9766013e3f9e..dfa5382efd1765e7459088b6f0522d608060c867 100644 (file)
@@ -110,24 +110,24 @@ static int Open ( vlc_object_t *p_this )
         /* The user has selected an audio device. */
         if ( val.i_int == AOUT_VAR_STEREO )
         {
-            p_aout->output.output.i_physical_channels
+            p_aout->format.i_physical_channels
                 = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
         }
         else if ( val.i_int == AOUT_VAR_MONO )
         {
-            p_aout->output.output.i_physical_channels = AOUT_CHAN_CENTER;
+            p_aout->format.i_physical_channels = AOUT_CHAN_CENTER;
         }
     }
 
-    i_nb_channels = aout_FormatNbChannels( &p_aout->output.output );
+    i_nb_channels = aout_FormatNbChannels( &p_aout->format );
     if ( i_nb_channels > 2 )
     {
         /* SDL doesn't support more than two channels. */
         i_nb_channels = 2;
-        p_aout->output.output.i_physical_channels
+        p_aout->format.i_physical_channels
             = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
     }
-    desired.freq       = p_aout->output.output.i_rate;
+    desired.freq       = p_aout->format.i_rate;
     desired.format     = AUDIO_S16SYS;
     desired.channels   = i_nb_channels;
     desired.callback   = SDLCallback;
@@ -146,24 +146,24 @@ static int Open ( vlc_object_t *p_this )
     switch ( obtained.format )
     {
     case AUDIO_S16LSB:
-        p_aout->output.output.i_format = VLC_CODEC_S16L; break;
+        p_aout->format.i_format = VLC_CODEC_S16L; break;
     case AUDIO_S16MSB:
-        p_aout->output.output.i_format = VLC_CODEC_S16B; break;
+        p_aout->format.i_format = VLC_CODEC_S16B; break;
     case AUDIO_U16LSB:
-        p_aout->output.output.i_format = VLC_CODEC_U16L; break;
+        p_aout->format.i_format = VLC_CODEC_U16L; break;
     case AUDIO_U16MSB:
-        p_aout->output.output.i_format = VLC_CODEC_U16B; break;
+        p_aout->format.i_format = VLC_CODEC_U16B; break;
     case AUDIO_S8:
-        p_aout->output.output.i_format = VLC_CODEC_S8; break;
+        p_aout->format.i_format = VLC_CODEC_S8; break;
     case AUDIO_U8:
-        p_aout->output.output.i_format = VLC_CODEC_U8; break;
+        p_aout->format.i_format = VLC_CODEC_U8; break;
     }
     /* Volume is entirely done in software. */
     aout_VolumeSoftInit( p_aout );
 
     if ( obtained.channels != i_nb_channels )
     {
-        p_aout->output.output.i_physical_channels = (obtained.channels == 2 ?
+        p_aout->format.i_physical_channels = (obtained.channels == 2 ?
                                             AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT :
                                             AOUT_CHAN_CENTER);
 
@@ -212,10 +212,10 @@ static int Open ( vlc_object_t *p_this )
 
     var_TriggerCallback( p_aout, "intf-change" );
 
-    p_aout->output.output.i_rate = obtained.freq;
-    p_aout->output.i_nb_samples = obtained.samples;
-    p_aout->output.pf_play = Play;
-    p_aout->output.pf_pause = NULL;
+    p_aout->format.i_rate = obtained.freq;
+    p_aout->i_nb_samples = obtained.samples;
+    p_aout->pf_play = Play;
+    p_aout->pf_pause = NULL;
 
     return VLC_SUCCESS;
 }
@@ -252,7 +252,7 @@ static void SDLCallback( void * _p_aout, uint8_t * p_stream, int i_len )
      * it at SDL's face. Nah. */
 
     vlc_mutex_lock( &p_aout->lock );
-    p_buffer = aout_FifoPop( &p_aout->output.fifo );
+    p_buffer = aout_FifoPop( &p_aout->fifo );
     vlc_mutex_unlock( &p_aout->lock );
 
     if ( p_buffer != NULL )
index efcc7d9c680459946aadcdbf71869b6975207ae0..fedc3f37c0a621c24b52ff33ab4a7d7e84ac861d 100644 (file)
@@ -148,13 +148,13 @@ static int Open( vlc_object_t *p_this )
     vlc_value_t val;
 
     /* Allocate structure */
-    p_aout->output.p_sys = malloc( sizeof( aout_sys_t ) );
+    p_aout->sys = malloc( sizeof( aout_sys_t ) );
 
-    if( p_aout->output.p_sys == NULL )
+    if( p_aout->sys == NULL )
         return VLC_ENOMEM;
 
-    p_aout->output.pf_play = Play;
-    p_aout->output.pf_pause = NULL;
+    p_aout->pf_play = Play;
+    p_aout->pf_pause = NULL;
 
     /*
      initialize/update Device selection List
@@ -167,10 +167,10 @@ static int Open( vlc_object_t *p_this )
     */
     char *psz_waveout_dev = var_CreateGetString( p_aout, "waveout-audio-device");
 
-    p_aout->output.p_sys->i_wave_device_id =
+    p_aout->sys->i_wave_device_id =
          findDeviceID( psz_waveout_dev );
 
-    if(p_aout->output.p_sys->i_wave_device_id == WAVE_MAPPER)
+    if(p_aout->sys->i_wave_device_id == WAVE_MAPPER)
     {
        if(psz_waveout_dev &&
           stricmp(psz_waveout_dev,"wavemapper"))
@@ -183,7 +183,7 @@ static int Open( vlc_object_t *p_this )
 
 
     WAVEOUTCAPS waveoutcaps;
-    if(waveOutGetDevCaps( p_aout->output.p_sys->i_wave_device_id,
+    if(waveOutGetDevCaps( p_aout->sys->i_wave_device_id,
                           &waveoutcaps,
                           sizeof(WAVEOUTCAPS)) == MMSYSERR_NOERROR)
     {
@@ -208,7 +208,7 @@ static int Open( vlc_object_t *p_this )
     {
         /* Probe() has failed. */
         var_Destroy( p_aout, "waveout-audio-device");
-        free( p_aout->output.p_sys );
+        free( p_aout->sys );
         return VLC_EGENERIC;
     }
 
@@ -216,27 +216,27 @@ static int Open( vlc_object_t *p_this )
     /* Open the device */
     if( val.i_int == AOUT_VAR_SPDIF )
     {
-        p_aout->output.output.i_format = VLC_CODEC_SPDIFL;
+        p_aout->format.i_format = VLC_CODEC_SPDIFL;
 
         if( OpenWaveOut( p_aout,
-                         p_aout->output.p_sys->i_wave_device_id,
+                         p_aout->sys->i_wave_device_id,
                          VLC_CODEC_SPDIFL,
-                         p_aout->output.output.i_physical_channels,
-                         aout_FormatNbChannels( &p_aout->output.output ),
-                         p_aout->output.output.i_rate, false )
+                         p_aout->format.i_physical_channels,
+                         aout_FormatNbChannels( &p_aout->format ),
+                         p_aout->format.i_rate, false )
             != VLC_SUCCESS )
         {
             msg_Err( p_aout, "cannot open waveout audio device" );
-            free( p_aout->output.p_sys );
+            free( p_aout->sys );
             return VLC_EGENERIC;
         }
 
         /* Calculate the frame size in bytes */
-        p_aout->output.i_nb_samples = A52_FRAME_NB;
-        p_aout->output.output.i_bytes_per_frame = AOUT_SPDIF_SIZE;
-        p_aout->output.output.i_frame_length = A52_FRAME_NB;
-        p_aout->output.p_sys->i_buffer_size =
-            p_aout->output.output.i_bytes_per_frame;
+        p_aout->i_nb_samples = A52_FRAME_NB;
+        p_aout->format.i_bytes_per_frame = AOUT_SPDIF_SIZE;
+        p_aout->format.i_frame_length = A52_FRAME_NB;
+        p_aout->sys->i_buffer_size =
+            p_aout->format.i_bytes_per_frame;
 
         aout_VolumeNoneInit( p_aout );
     }
@@ -247,90 +247,90 @@ static int Open( vlc_object_t *p_this )
         switch( val.i_int )
         {
         case AOUT_VAR_5_1:
-            p_aout->output.output.i_physical_channels
+            p_aout->format.i_physical_channels
                     = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
                       | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT
                       | AOUT_CHAN_LFE;
             break;
         case AOUT_VAR_2F2R:
-            p_aout->output.output.i_physical_channels
+            p_aout->format.i_physical_channels
                     = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
                       | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT;
             break;
         case AOUT_VAR_MONO:
-            p_aout->output.output.i_physical_channels = AOUT_CHAN_CENTER;
+            p_aout->format.i_physical_channels = AOUT_CHAN_CENTER;
             break;
         default:
-            p_aout->output.output.i_physical_channels
+            p_aout->format.i_physical_channels
                     = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
         }
 
         if( OpenWaveOutPCM( p_aout,
-                            p_aout->output.p_sys->i_wave_device_id,
-                            &p_aout->output.output.i_format,
-                            p_aout->output.output.i_physical_channels,
-                            aout_FormatNbChannels( &p_aout->output.output ),
-                            p_aout->output.output.i_rate, false )
+                            p_aout->sys->i_wave_device_id,
+                            &p_aout->format.i_format,
+                            p_aout->format.i_physical_channels,
+                            aout_FormatNbChannels( &p_aout->format ),
+                            p_aout->format.i_rate, false )
             != VLC_SUCCESS )
         {
             msg_Err( p_aout, "cannot open waveout audio device" );
-            free( p_aout->output.p_sys );
+            free( p_aout->sys );
             return VLC_EGENERIC;
         }
 
         /* Calculate the frame size in bytes */
-        p_aout->output.i_nb_samples = FRAME_SIZE;
-        aout_FormatPrepare( &p_aout->output.output );
-        p_aout->output.p_sys->i_buffer_size = FRAME_SIZE *
-            p_aout->output.output.i_bytes_per_frame;
+        p_aout->i_nb_samples = FRAME_SIZE;
+        aout_FormatPrepare( &p_aout->format );
+        p_aout->sys->i_buffer_size = FRAME_SIZE *
+            p_aout->format.i_bytes_per_frame;
 
         aout_VolumeSoftInit( p_aout );
 
         /* Check for hardware volume support */
-        if( waveOutGetDevCaps( (UINT_PTR)p_aout->output.p_sys->h_waveout,
+        if( waveOutGetDevCaps( (UINT_PTR)p_aout->sys->h_waveout,
                                &wocaps, sizeof(wocaps) ) == MMSYSERR_NOERROR &&
             wocaps.dwSupport & WAVECAPS_VOLUME )
         {
             DWORD i_dummy;
-            if( waveOutGetVolume( p_aout->output.p_sys->h_waveout, &i_dummy )
+            if( waveOutGetVolume( p_aout->sys->h_waveout, &i_dummy )
                 == MMSYSERR_NOERROR )
             {
-                p_aout->output.pf_volume_set = VolumeSet;
+                p_aout->pf_volume_set = VolumeSet;
             }
         }
     }
 
 
-    waveOutReset( p_aout->output.p_sys->h_waveout );
+    waveOutReset( p_aout->sys->h_waveout );
 
     /* Allocate silence buffer */
-    p_aout->output.p_sys->p_silence_buffer =
-        malloc( p_aout->output.p_sys->i_buffer_size );
-    if( p_aout->output.p_sys->p_silence_buffer == NULL )
+    p_aout->sys->p_silence_buffer =
+        malloc( p_aout->sys->i_buffer_size );
+    if( p_aout->sys->p_silence_buffer == NULL )
     {
-        free( p_aout->output.p_sys );
+        free( p_aout->sys );
         return VLC_ENOMEM;
     }
-    p_aout->output.p_sys->i_repeat_counter = 0;
+    p_aout->sys->i_repeat_counter = 0;
 
 
     /* Zero the buffer. WinCE doesn't have calloc(). */
-    memset( p_aout->output.p_sys->p_silence_buffer, 0,
-            p_aout->output.p_sys->i_buffer_size );
+    memset( p_aout->sys->p_silence_buffer, 0,
+            p_aout->sys->i_buffer_size );
 
     /* Now we need to setup our waveOut play notification structure */
-    p_aout->output.p_sys->event = CreateEvent( NULL, FALSE, FALSE, NULL );
-    p_aout->output.p_sys->new_buffer_event = CreateEvent( NULL, FALSE, FALSE, NULL );
+    p_aout->sys->event = CreateEvent( NULL, FALSE, FALSE, NULL );
+    p_aout->sys->new_buffer_event = CreateEvent( NULL, FALSE, FALSE, NULL );
 
     /* define startpoint of playback on first call to play()
       like alsa does (instead of playing a blank sample) */
-    p_aout->output.p_sys->b_playing = 0;
-    p_aout->output.p_sys->start_date = 0;
+    p_aout->sys->b_playing = 0;
+    p_aout->sys->start_date = 0;
 
 
     /* Then launch the notification thread */
-    vlc_atomic_set( &p_aout->output.p_sys->abort, 0);
-    if( vlc_clone( &p_aout->output.p_sys->thread,
+    vlc_atomic_set( &p_aout->sys->abort, 0);
+    if( vlc_clone( &p_aout->sys->thread,
                    WaveOutThread, p_aout, VLC_THREAD_PRIORITY_OUTPUT ) )
     {
         msg_Err( p_aout, "cannot create WaveOutThread" );
@@ -340,8 +340,8 @@ static int Open( vlc_object_t *p_this )
      * working */
     for( int i = 0; i < FRAMES_NUM; i++ )
     {
-        p_aout->output.p_sys->waveheader[i].dwFlags = WHDR_DONE;
-        p_aout->output.p_sys->waveheader[i].dwUser = 0;
+        p_aout->sys->waveheader[i].dwFlags = WHDR_DONE;
+        p_aout->sys->waveheader[i].dwUser = 0;
     }
 
     return VLC_SUCCESS;
@@ -364,13 +364,13 @@ static void Probe( aout_instance_t * p_aout )
     i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT |
                           AOUT_CHAN_CENTER | AOUT_CHAN_REARLEFT |
                           AOUT_CHAN_REARRIGHT | AOUT_CHAN_LFE;
-    if( p_aout->output.output.i_physical_channels == i_physical_channels )
+    if( p_aout->format.i_physical_channels == i_physical_channels )
     {
         if( OpenWaveOutPCM( p_aout,
-                            p_aout->output.p_sys->i_wave_device_id,
+                            p_aout->sys->i_wave_device_id,
                             &i_format,
                             i_physical_channels, 6,
-                            p_aout->output.output.i_rate, true )
+                            p_aout->format.i_rate, true )
             == VLC_SUCCESS )
         {
             val.i_int = AOUT_VAR_5_1;
@@ -384,14 +384,14 @@ static void Probe( aout_instance_t * p_aout )
     /* Test for 2 Front 2 Rear support */
     i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT |
                           AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT;
-    if( ( p_aout->output.output.i_physical_channels & i_physical_channels )
+    if( ( p_aout->format.i_physical_channels & i_physical_channels )
         == i_physical_channels )
     {
         if( OpenWaveOutPCM( p_aout,
-                            p_aout->output.p_sys->i_wave_device_id,
+                            p_aout->sys->i_wave_device_id,
                             &i_format,
                             i_physical_channels, 4,
-                            p_aout->output.output.i_rate, true )
+                            p_aout->format.i_rate, true )
             == VLC_SUCCESS )
         {
             val.i_int = AOUT_VAR_2F2R;
@@ -405,10 +405,10 @@ static void Probe( aout_instance_t * p_aout )
     /* Test for stereo support */
     i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
     if( OpenWaveOutPCM( p_aout,
-                        p_aout->output.p_sys->i_wave_device_id,
+                        p_aout->sys->i_wave_device_id,
                         &i_format,
                         i_physical_channels, 2,
-                        p_aout->output.output.i_rate, true )
+                        p_aout->format.i_rate, true )
         == VLC_SUCCESS )
     {
         val.i_int = AOUT_VAR_STEREO;
@@ -420,10 +420,10 @@ static void Probe( aout_instance_t * p_aout )
     /* Test for mono support */
     i_physical_channels = AOUT_CHAN_CENTER;
     if( OpenWaveOutPCM( p_aout,
-                        p_aout->output.p_sys->i_wave_device_id,
+                        p_aout->sys->i_wave_device_id,
                         &i_format,
                         i_physical_channels, 1,
-                        p_aout->output.output.i_rate, true )
+                        p_aout->format.i_rate, true )
         == VLC_SUCCESS )
     {
         val.i_int = AOUT_VAR_MONO;
@@ -433,14 +433,14 @@ static void Probe( aout_instance_t * p_aout )
     }
 
     /* Test for SPDIF support */
-    if ( AOUT_FMT_NON_LINEAR( &p_aout->output.output ) )
+    if ( AOUT_FMT_NON_LINEAR( &p_aout->format ) )
     {
         if( OpenWaveOut( p_aout,
-                         p_aout->output.p_sys->i_wave_device_id,
+                         p_aout->sys->i_wave_device_id,
                          VLC_CODEC_SPDIFL,
-                         p_aout->output.output.i_physical_channels,
-                         aout_FormatNbChannels( &p_aout->output.output ),
-                         p_aout->output.output.i_rate, true )
+                         p_aout->format.i_physical_channels,
+                         aout_FormatNbChannels( &p_aout->format ),
+                         p_aout->format.i_rate, true )
             == VLC_SUCCESS )
         {
             msg_Dbg( p_aout, "device supports A/52 over S/PDIF" );
@@ -473,20 +473,20 @@ static void Probe( aout_instance_t * p_aout )
  *****************************************************************************/
 static void Play( aout_instance_t *_p_aout )
 {
-    if( !_p_aout->output.p_sys->b_playing )
+    if( !_p_aout->sys->b_playing )
     {
-        _p_aout->output.p_sys->b_playing = 1;
+        _p_aout->sys->b_playing = 1;
 
         /* get the playing date of the first aout buffer */
-        _p_aout->output.p_sys->start_date =
-            aout_FifoFirstDate( &_p_aout->output.fifo );
+        _p_aout->sys->start_date =
+            aout_FifoFirstDate( &_p_aout->fifo );
 
         msg_Dbg( _p_aout, "Wakeup sleeping output thread.");
 
         /* wake up the audio output thread */
-        SetEvent( _p_aout->output.p_sys->event );
+        SetEvent( _p_aout->sys->event );
     } else {
-        SetEvent( _p_aout->output.p_sys->new_buffer_event );
+        SetEvent( _p_aout->sys->new_buffer_event );
     }
 }
 
@@ -496,7 +496,7 @@ static void Play( aout_instance_t *_p_aout )
 static void Close( vlc_object_t *p_this )
 {
     aout_instance_t *p_aout = (aout_instance_t *)p_this;
-    aout_sys_t *p_sys = p_aout->output.p_sys;
+    aout_sys_t *p_sys = p_aout->sys;
 
     /* Before calling waveOutClose we must reset the device */
     vlc_atomic_set( &p_sys->abort, 1);
@@ -577,7 +577,7 @@ static int OpenWaveOut( aout_instance_t *p_aout, uint32_t i_device_id, int i_for
 
     /* Set sound format */
 
-#define waveformat p_aout->output.p_sys->waveformat
+#define waveformat p_aout->sys->waveformat
 
     waveformat.dwChannelMask = 0;
     for( unsigned i = 0; i < sizeof(pi_channels_src)/sizeof(uint32_t); i++ )
@@ -660,7 +660,7 @@ static int OpenWaveOut( aout_instance_t *p_aout, uint32_t i_device_id, int i_for
     }
 
     /* Open the device */
-    result = waveOutOpen( &p_aout->output.p_sys->h_waveout, i_device_id,
+    result = waveOutOpen( &p_aout->sys->h_waveout, i_device_id,
                           (WAVEFORMATEX *)&waveformat,
                           (DWORD_PTR)WaveOutCallback, (DWORD_PTR)p_aout,
                           CALLBACK_FUNCTION | (b_probe?WAVE_FORMAT_QUERY:0) );
@@ -680,12 +680,12 @@ static int OpenWaveOut( aout_instance_t *p_aout, uint32_t i_device_id, int i_for
         return VLC_EGENERIC;
     }
 
-    p_aout->output.p_sys->b_chan_reorder =
+    p_aout->sys->b_chan_reorder =
         aout_CheckChannelReorder( pi_channels_in, pi_channels_out,
                                   waveformat.dwChannelMask, i_nb_channels,
-                                  p_aout->output.p_sys->pi_chan_table );
+                                  p_aout->sys->pi_chan_table );
 
-    if( p_aout->output.p_sys->b_chan_reorder )
+    if( p_aout->sys->b_chan_reorder )
     {
         msg_Dbg( p_aout, "channel reordering needed" );
     }
@@ -750,27 +750,27 @@ static int PlayWaveOut( aout_instance_t *p_aout, HWAVEOUT h_waveout,
         */
         if(b_spdif)
         {
-           vlc_memcpy( p_aout->output.p_sys->p_silence_buffer,
+           vlc_memcpy( p_aout->sys->p_silence_buffer,
                        p_buffer->p_buffer,
-                       p_aout->output.p_sys->i_buffer_size );
-           p_aout->output.p_sys->i_repeat_counter = 2;
+                       p_aout->sys->i_buffer_size );
+           p_aout->sys->i_repeat_counter = 2;
         }
     } else {
         /* Use silence buffer instead */
-        if(p_aout->output.p_sys->i_repeat_counter)
+        if(p_aout->sys->i_repeat_counter)
         {
-           p_aout->output.p_sys->i_repeat_counter--;
-           if(!p_aout->output.p_sys->i_repeat_counter)
+           p_aout->sys->i_repeat_counter--;
+           if(!p_aout->sys->i_repeat_counter)
            {
-               vlc_memset( p_aout->output.p_sys->p_silence_buffer,
-                           0x00, p_aout->output.p_sys->i_buffer_size );
+               vlc_memset( p_aout->sys->p_silence_buffer,
+                           0x00, p_aout->sys->i_buffer_size );
            }
         }
-        p_waveheader->lpData = (LPSTR)p_aout->output.p_sys->p_silence_buffer;
+        p_waveheader->lpData = (LPSTR)p_aout->sys->p_silence_buffer;
     }
 
     p_waveheader->dwUser = p_buffer ? (DWORD_PTR)p_buffer : (DWORD_PTR)1;
-    p_waveheader->dwBufferLength = p_aout->output.p_sys->i_buffer_size;
+    p_waveheader->dwBufferLength = p_aout->sys->i_buffer_size;
     p_waveheader->dwFlags = 0;
 
     result = waveOutPrepareHeader( h_waveout, p_waveheader, sizeof(WAVEHDR) );
@@ -804,13 +804,13 @@ static void CALLBACK WaveOutCallback( HWAVEOUT h_waveout, UINT uMsg,
 
     if( uMsg != WOM_DONE ) return;
 
-    if( vlc_atomic_get(&p_aout->output.p_sys->abort) ) return;
+    if( vlc_atomic_get(&p_aout->sys->abort) ) return;
 
     /* Find out the current latency */
     for( int i = 0; i < FRAMES_NUM; i++ )
     {
         /* Check if frame buf is available */
-        if( !(p_aout->output.p_sys->waveheader[i].dwFlags & WHDR_DONE) )
+        if( !(p_aout->sys->waveheader[i].dwFlags & WHDR_DONE) )
         {
             i_queued_frames++;
         }
@@ -818,7 +818,7 @@ static void CALLBACK WaveOutCallback( HWAVEOUT h_waveout, UINT uMsg,
 
     /* Don't wake up the thread too much */
     if( i_queued_frames <= FRAMES_NUM/2 )
-        SetEvent( p_aout->output.p_sys->event );
+        SetEvent( p_aout->sys->event );
 }
 
 
@@ -868,7 +868,7 @@ static int WaveOutClearDoneBuffers(aout_sys_t *p_sys)
 static void* WaveOutThread( void *data )
 {
     aout_instance_t *p_aout = data;
-    aout_sys_t *p_sys = p_aout->output.p_sys;
+    aout_sys_t *p_sys = p_aout->sys;
     aout_buffer_t *p_buffer = NULL;
     WAVEHDR *p_waveheader = p_sys->waveheader;
     int i, i_queued_frames;
@@ -878,12 +878,12 @@ static void* WaveOutThread( void *data )
     int canc = vlc_savecancel ();
 
     /* We don't want any resampling when using S/PDIF */
-    b_sleek = p_aout->output.output.i_format == VLC_CODEC_SPDIFL;
+    b_sleek = p_aout->format.i_format == VLC_CODEC_SPDIFL;
 
     // wait for first call to "play()"
-    while( !p_sys->start_date && !vlc_atomic_get(&p_aout->output.p_sys->abort) )
+    while( !p_sys->start_date && !vlc_atomic_get(&p_aout->sys->abort) )
            WaitForSingleObject( p_sys->event, INFINITE );
-    if( vlc_atomic_get(&p_aout->output.p_sys->abort) )
+    if( vlc_atomic_get(&p_aout->sys->abort) )
         return NULL;
 
     msg_Dbg( p_aout, "will start to play in %"PRId64" us",
@@ -899,12 +899,12 @@ static void* WaveOutThread( void *data )
                            i_queued_frames, msg);
     next_date = mdate();
 
-    while( !vlc_atomic_get(&p_aout->output.p_sys->abort) )
+    while( !vlc_atomic_get(&p_aout->sys->abort) )
     {
         /* Cleanup and find out the current latency */
         i_queued_frames = WaveOutClearDoneBuffers( p_sys );
 
-        if( vlc_atomic_get(&p_aout->output.p_sys->abort) ) return NULL;
+        if( vlc_atomic_get(&p_aout->sys->abort) ) return NULL;
 
         /* Try to fill in as many frame buffers as possible */
         for( i = 0; i < FRAMES_NUM; i++ )
@@ -913,7 +913,7 @@ static void* WaveOutThread( void *data )
             if( p_waveheader[i].dwFlags & WHDR_DONE )
             {
                 // next_date = mdate() + 1000000 * i_queued_frames /
-                //  p_aout->output.output.i_rate * p_aout->output.i_nb_samples;
+                //  p_aout->format.i_rate * p_aout->i_nb_samples;
 
                 // the realtime has got our back-site:) to come in sync
                 if(next_date < mdate())
@@ -936,7 +936,7 @@ static void* WaveOutThread( void *data )
 #endif
                     // means we are too early to request a new buffer?
                     waveout_warn("waiting...")
-                    next_date = aout_FifoFirstDate( &p_aout->output.fifo );
+                    next_date = aout_FifoFirstDate( &p_aout->fifo );
                     mwait( next_date - AOUT_MAX_PTS_ADVANCE/4 );
                     next_date = mdate();
                     p_buffer = aout_OutputNextBuffer( p_aout, next_date,
@@ -973,7 +973,7 @@ static void* WaveOutThread( void *data )
             }
         }
 
-        if( vlc_atomic_get(&p_aout->output.p_sys->abort) ) return NULL;
+        if( vlc_atomic_get(&p_aout->sys->abort) ) return NULL;
 
         /*
           deal with the case that the loop didn't fillup the buffer to the
@@ -1009,7 +1009,7 @@ static int VolumeSet( aout_instance_t * p_aout, float volume, bool mute )
 #ifdef UNDER_CE
     waveOutSetVolume( 0, i_waveout_vol );
 #else
-    waveOutSetVolume( p_aout->output.p_sys->h_waveout, i_waveout_vol );
+    waveOutSetVolume( p_aout->sys->h_waveout, i_waveout_vol );
 #endif
     return 0;
 }
index 087115a5736f00ad0b1624286459715d40003754..d8f3ba840d2dc2d45837f7485d013b0d5b2a3912 100644 (file)
@@ -50,21 +50,20 @@ int OpenAudio ( vlc_object_t * p_this )
 {
     aout_instance_t * p_aout = (aout_instance_t *)p_this;
 
-    p_aout->output.pf_play = Play;
-    p_aout->output.pf_pause = NULL;
+    p_aout->pf_play = Play;
+    p_aout->pf_pause = NULL;
     aout_VolumeSoftInit( p_aout );
 
-    if( AOUT_FMT_NON_LINEAR( &p_aout->output.output )
+    if( AOUT_FMT_NON_LINEAR( &p_aout->format )
      && var_InheritBool( p_this, "spdif" ) )
     {
-        p_aout->output.output.i_format = VLC_CODEC_SPDIFL;
-        p_aout->output.output.i_bytes_per_frame = AOUT_SPDIF_SIZE;
-        p_aout->output.output.i_frame_length = A52_FRAME_NB;
+        p_aout->format.i_format = VLC_CODEC_SPDIFL;
+        p_aout->format.i_bytes_per_frame = AOUT_SPDIF_SIZE;
+        p_aout->format.i_frame_length = A52_FRAME_NB;
     }
     else
-        p_aout->output.output.i_format =
-            HAVE_FPU ? VLC_CODEC_FL32 : VLC_CODEC_S16N;
-    p_aout->output.i_nb_samples = A52_FRAME_NB;
+        p_aout->format.i_format = HAVE_FPU ? VLC_CODEC_FL32 : VLC_CODEC_S16N;
+    p_aout->i_nb_samples = A52_FRAME_NB;
 
     /* Create the variable for the audio-device */
     var_Create( p_aout, "audio-device", VLC_VAR_INTEGER | VLC_VAR_HASCHOICE );
@@ -77,7 +76,7 @@ int OpenAudio ( vlc_object_t * p_this )
  *****************************************************************************/
 static void Play( aout_instance_t * p_aout )
 {
-    aout_buffer_t * p_buffer = aout_FifoPop( &p_aout->output.fifo );
+    aout_buffer_t * p_buffer = aout_FifoPop( &p_aout->fifo );
     aout_BufferFree( p_buffer );
 }
 
index dae3894ca4a2cb46b5f0f96c17914f72de4f9811..dbeb77ae7fd99da45c0247efa011b1684c99a8b7 100644 (file)
@@ -64,8 +64,8 @@ aout_instance_t *aout_New( vlc_object_t * p_parent )
     p_aout->p_input = NULL;
     p_aout->mixer_multiplier = 1.0;
     p_aout->p_mixer = NULL;
-    p_aout->output.b_starving = 1;
-    p_aout->output.p_module = NULL;
+    p_aout->b_starving = true;
+    p_aout->module = NULL;
 
     var_Create( p_aout, "intf-change", VLC_VAR_VOID );
 
index 3891b4ea6e8111c5bf884f65a68f4f6f3a9ed690..703a44b4ddfe7272e0905590fe1b307c89f69999 100644 (file)
@@ -91,7 +91,7 @@ static int commitVolume (vlc_object_t *obj, aout_instance_t *aout,
         aout_lock (aout);
 #warning FIXME: wrong test. Need to check that aout_output is ready.
         if (aout->p_mixer != NULL)
-            ret = aout->output.pf_volume_set (aout, vol, mute);
+            ret = aout->pf_volume_set (aout, vol, mute);
         aout_unlock (aout);
 
         if (ret == 0)
@@ -255,7 +255,7 @@ void aout_VolumeSoftInit (aout_instance_t *aout)
     audio_volume_t volume = var_InheritInteger (aout, "volume");
     bool mute = var_InheritBool (aout, "mute");
 
-    aout->output.pf_volume_set = aout_VolumeSoftSet;
+    aout->pf_volume_set = aout_VolumeSoftSet;
     aout_VolumeSoftSet (aout, volume / (float)AOUT_VOLUME_DEFAULT, mute);
 }
 
@@ -273,7 +273,7 @@ static int aout_VolumeNoneSet (aout_instance_t *aout, float volume, bool mute)
 /* Meant to be called by the output plug-in's Open(). */
 void aout_VolumeNoneInit( aout_instance_t * p_aout )
 {
-    p_aout->output.pf_volume_set = aout_VolumeNoneSet;
+    p_aout->pf_volume_set = aout_VolumeNoneSet;
 }
 
 
index 27eba46985af9f2dc767d0d016287d898b19c4e6..f0810949441199cdf618dc6263ca5ffb769883a4 100644 (file)
@@ -96,7 +96,7 @@ static int MixBuffer( aout_instance_t * p_aout, float volume )
     aout_mixer_input_t *p_input = p_mixer->input;
     aout_fifo_t *p_fifo = &p_input->fifo;
     mtime_t now = mdate();
-    const unsigned samples = p_aout->output.i_nb_samples;
+    const unsigned samples = p_aout->i_nb_samples;
     /* FIXME: Remove this silly constraint. Just pass buffers as they come to
      * "smart" audio outputs. */
     assert( samples > 0 );
@@ -104,7 +104,7 @@ static int MixBuffer( aout_instance_t * p_aout, float volume )
     vlc_assert_locked( &p_aout->lock );
 
     /* Retrieve the date of the next buffer. */
-    date_t exact_start_date = p_aout->output.fifo.end_date;
+    date_t exact_start_date = p_aout->fifo.end_date;
     mtime_t start_date = date_Get( &exact_start_date );
 
     if( start_date != 0 && start_date < now )
@@ -114,7 +114,7 @@ static int MixBuffer( aout_instance_t * p_aout, float volume )
          * happen :). */
         msg_Warn( p_mixer, "output PTS is out of range (%"PRId64"), clearing out",
                   mdate() - start_date );
-        aout_FifoSet( &p_aout->output.fifo, 0 );
+        aout_FifoSet( &p_aout->fifo, 0 );
         date_Set( &exact_start_date, 0 );
         start_date = 0;
     }
@@ -187,7 +187,7 @@ static int MixBuffer( aout_instance_t * p_aout, float volume )
         if( delta < 0 )
         {
             /* Is it really the best way to do it ? */
-            aout_FifoSet( &p_aout->output.fifo, 0 );
+            aout_FifoSet( &p_aout->fifo, 0 );
             date_Set( &exact_start_date, 0 );
             return -1;
         }
index c20362a980cd3354b99246068f6de52b92a9fa2b..e1478c534e62ebd799c75b0f6d98c77ba81ef3a9 100644 (file)
@@ -45,17 +45,17 @@ int aout_OutputNew( aout_instance_t * p_aout,
                     const audio_sample_format_t * p_format )
 {
     vlc_assert_locked( &p_aout->lock );
-    p_aout->output.output = *p_format;
+    p_aout->format = *p_format;
 
     /* Retrieve user defaults. */
     int i_rate = var_InheritInteger( p_aout, "aout-rate" );
     if ( i_rate != 0 )
-        p_aout->output.output.i_rate = i_rate;
-    aout_FormatPrepare( &p_aout->output.output );
+        p_aout->format.i_rate = i_rate;
+    aout_FormatPrepare( &p_aout->format );
 
     /* Find the best output plug-in. */
-    p_aout->output.p_module = module_need( p_aout, "audio output", "$aout", false );
-    if ( p_aout->output.p_module == NULL )
+    p_aout->module = module_need( p_aout, "audio output", "$aout", false );
+    if ( p_aout->module == NULL )
     {
         msg_Err( p_aout, "no suitable audio output module" );
         return -1;
@@ -68,27 +68,26 @@ int aout_OutputNew( aout_instance_t * p_aout,
         switch( var_InheritInteger( p_aout, "audio-channels" ) )
         {
             case AOUT_VAR_CHAN_RSTEREO:
-                p_aout->output.output.i_original_channels |=
-                                                       AOUT_CHAN_REVERSESTEREO;
+                p_aout->format.i_original_channels |= AOUT_CHAN_REVERSESTEREO;
                 break;
             case AOUT_VAR_CHAN_STEREO:
-                p_aout->output.output.i_original_channels =
+                p_aout->format.i_original_channels =
                                               AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
                 break;
             case AOUT_VAR_CHAN_LEFT:
-                p_aout->output.output.i_original_channels = AOUT_CHAN_LEFT;
+                p_aout->format.i_original_channels = AOUT_CHAN_LEFT;
                 break;
             case AOUT_VAR_CHAN_RIGHT:
-                p_aout->output.output.i_original_channels = AOUT_CHAN_RIGHT;
+                p_aout->format.i_original_channels = AOUT_CHAN_RIGHT;
                 break;
             case AOUT_VAR_CHAN_DOLBYS:
-                p_aout->output.output.i_original_channels =
+                p_aout->format.i_original_channels =
                       AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_DOLBYSTEREO;
                 break;
         }
     }
-    else if ( p_aout->output.output.i_physical_channels == AOUT_CHAN_CENTER
-              && (p_aout->output.output.i_original_channels
+    else if ( p_aout->format.i_physical_channels == AOUT_CHAN_CENTER
+              && (p_aout->format.i_original_channels
                    & AOUT_CHAN_PHYSMASK) == (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT) )
     {
         vlc_value_t val, text;
@@ -105,18 +104,18 @@ int aout_OutputNew( aout_instance_t * p_aout,
         var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val, &text );
         val.i_int = AOUT_VAR_CHAN_RIGHT; text.psz_string = _("Right");
         var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val, &text );
-        if ( p_aout->output.output.i_original_channels & AOUT_CHAN_DUALMONO )
+        if ( p_aout->format.i_original_channels & AOUT_CHAN_DUALMONO )
         {
             /* Go directly to the left channel. */
-            p_aout->output.output.i_original_channels = AOUT_CHAN_LEFT;
+            p_aout->format.i_original_channels = AOUT_CHAN_LEFT;
             var_SetInteger( p_aout, "audio-channels", AOUT_VAR_CHAN_LEFT );
         }
         var_AddCallback( p_aout, "audio-channels", aout_ChannelsRestart,
                          NULL );
     }
-    else if ( p_aout->output.output.i_physical_channels ==
+    else if ( p_aout->format.i_physical_channels ==
                (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)
-                && (p_aout->output.output.i_original_channels &
+                && (p_aout->format.i_original_channels &
                      (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)) )
     {
         vlc_value_t val, text;
@@ -127,7 +126,7 @@ int aout_OutputNew( aout_instance_t * p_aout,
         text.psz_string = _("Audio Channels");
         var_Change( p_aout, "audio-channels", VLC_VAR_SETTEXT, &text, NULL );
 
-        if ( p_aout->output.output.i_original_channels & AOUT_CHAN_DOLBYSTEREO )
+        if ( p_aout->format.i_original_channels & AOUT_CHAN_DOLBYSTEREO )
         {
             val.i_int = AOUT_VAR_CHAN_DOLBYS;
             text.psz_string = _("Dolby Surround");
@@ -144,10 +143,10 @@ int aout_OutputNew( aout_instance_t * p_aout,
         var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val, &text );
         val.i_int = AOUT_VAR_CHAN_RSTEREO; text.psz_string=_("Reverse stereo");
         var_Change( p_aout, "audio-channels", VLC_VAR_ADDCHOICE, &val, &text );
-        if ( p_aout->output.output.i_original_channels & AOUT_CHAN_DUALMONO )
+        if ( p_aout->format.i_original_channels & AOUT_CHAN_DUALMONO )
         {
             /* Go directly to the left channel. */
-            p_aout->output.output.i_original_channels = AOUT_CHAN_LEFT;
+            p_aout->format.i_original_channels = AOUT_CHAN_LEFT;
             var_SetInteger( p_aout, "audio-channels", AOUT_VAR_CHAN_LEFT );
         }
         var_AddCallback( p_aout, "audio-channels", aout_ChannelsRestart,
@@ -155,15 +154,15 @@ int aout_OutputNew( aout_instance_t * p_aout,
     }
     var_TriggerCallback( p_aout, "intf-change" );
 
-    aout_FormatPrepare( &p_aout->output.output );
+    aout_FormatPrepare( &p_aout->format );
 
     /* Prepare FIFO. */
-    aout_FifoInit( p_aout, &p_aout->output.fifo, p_aout->output.output.i_rate );
-    aout_FormatPrint( p_aout, "output", &p_aout->output.output );
+    aout_FifoInit( p_aout, &p_aout->fifo, p_aout->format.i_rate );
+    aout_FormatPrint( p_aout, "output", &p_aout->format );
 
     /* Choose the mixer format. */
-    p_aout->mixer_format = p_aout->output.output;
-    if ( AOUT_FMT_NON_LINEAR(&p_aout->output.output) )
+    p_aout->mixer_format = p_aout->format;
+    if ( AOUT_FMT_NON_LINEAR(&p_aout->format) )
         p_aout->mixer_format.i_format = p_format->i_format;
     else
     /* Most audio filters can only deal with single-precision,
@@ -184,15 +183,15 @@ int aout_OutputNew( aout_instance_t * p_aout,
     aout_FormatPrint( p_aout, "mixer", &p_aout->mixer_format );
 
     /* Create filters. */
-    p_aout->output.i_nb_filters = 0;
-    if ( aout_FiltersCreatePipeline( p_aout, p_aout->output.pp_filters,
-                                     &p_aout->output.i_nb_filters,
+    p_aout->i_nb_filters = 0;
+    if ( aout_FiltersCreatePipeline( p_aout, p_aout->pp_filters,
+                                     &p_aout->i_nb_filters,
                                      &p_aout->mixer_format,
-                                     &p_aout->output.output ) < 0 )
+                                     &p_aout->format ) < 0 )
     {
         msg_Err( p_aout, "couldn't create audio output pipeline" );
-        module_unneed( p_aout, p_aout->output.p_module );
-        p_aout->output.p_module = NULL;
+        module_unneed( p_aout, p_aout->module );
+        p_aout->module = NULL;
         return -1;
     }
     return 0;
@@ -207,14 +206,13 @@ void aout_OutputDelete( aout_instance_t * p_aout )
 {
     vlc_assert_locked( &p_aout->lock );
 
-    if( p_aout->output.p_module == NULL )
+    if( p_aout->module == NULL )
         return;
 
-    module_unneed( p_aout, p_aout->output.p_module );
-    p_aout->output.p_module = NULL;
-    aout_FiltersDestroyPipeline( p_aout->output.pp_filters,
-                                 p_aout->output.i_nb_filters );
-    aout_FifoDestroy( &p_aout->output.fifo );
+    module_unneed( p_aout, p_aout->module );
+    p_aout->module = NULL;
+    aout_FiltersDestroyPipeline( p_aout->pp_filters, p_aout->i_nb_filters );
+    aout_FifoDestroy( &p_aout->fifo );
 }
 
 /*****************************************************************************
@@ -226,8 +224,7 @@ void aout_OutputPlay( aout_instance_t * p_aout, aout_buffer_t * p_buffer )
 {
     vlc_assert_locked( &p_aout->lock );
 
-    aout_FiltersPlay( p_aout->output.pp_filters, p_aout->output.i_nb_filters,
-                      &p_buffer );
+    aout_FiltersPlay( p_aout->pp_filters, p_aout->i_nb_filters, &p_buffer );
     if( !p_buffer )
         return;
     if( p_buffer->i_buffer == 0 )
@@ -236,8 +233,8 @@ void aout_OutputPlay( aout_instance_t * p_aout, aout_buffer_t * p_buffer )
         return;
     }
 
-    aout_FifoPush( &p_aout->output.fifo, p_buffer );
-    p_aout->output.pf_play( p_aout );
+    aout_FifoPush( &p_aout->fifo, p_buffer );
+    p_aout->pf_play( p_aout );
 }
 
 /**
@@ -249,8 +246,8 @@ void aout_OutputPause( aout_instance_t *aout, bool pause, mtime_t date )
 {
     vlc_assert_locked( &aout->lock );
 
-    if( aout->output.pf_pause != NULL )
-        aout->output.pf_pause( aout, pause, date );
+    if( aout->pf_pause != NULL )
+        aout->pf_pause( aout, pause, date );
 }
 
 /*****************************************************************************
@@ -265,7 +262,7 @@ aout_buffer_t * aout_OutputNextBuffer( aout_instance_t * p_aout,
                                        mtime_t start_date,
                                        bool b_can_sleek )
 {
-    aout_fifo_t *p_fifo = &p_aout->output.fifo;
+    aout_fifo_t *p_fifo = &p_aout->fifo;
     aout_buffer_t * p_buffer;
     mtime_t now = mdate();
 
@@ -290,11 +287,11 @@ aout_buffer_t * aout_OutputNextBuffer( aout_instance_t * p_aout,
        * to deal with this kind of starvation. */
 
         /* Set date to 0, to allow the mixer to send a new buffer ASAP */
-        aout_FifoSet( &p_aout->output.fifo, 0 );
-        if ( !p_aout->output.b_starving )
+        aout_FifoSet( &p_aout->fifo, 0 );
+        if ( !p_aout->b_starving )
             msg_Dbg( p_aout,
                  "audio output is starving (no input), playing silence" );
-        p_aout->output.b_starving = true;
+        p_aout->b_starving = true;
 #endif
         goto out;
     }
@@ -305,15 +302,15 @@ aout_buffer_t * aout_OutputNextBuffer( aout_instance_t * p_aout,
      */
     if ( 0 > delta + p_buffer->i_length )
     {
-        if ( !p_aout->output.b_starving )
+        if ( !p_aout->b_starving )
             msg_Dbg( p_aout, "audio output is starving (%"PRId64"), "
                      "playing silence", -delta );
-        p_aout->output.b_starving = true;
+        p_aout->b_starving = true;
         p_buffer = NULL;
         goto out;
     }
 
-    p_aout->output.b_starving = false;
+    p_aout->b_starving = false;
     p_buffer = aout_FifoPop( p_fifo );
 
     if( !b_can_sleek