file aout: implement flush operation (kind of)
authorRémi Denis-Courmont <remi@remlab.net>
Fri, 16 Nov 2012 16:12:40 +0000 (18:12 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Fri, 16 Nov 2012 16:12:40 +0000 (18:12 +0200)
modules/audio_output/file.c

index f5dbf07..c4a5e5e 100644 (file)
@@ -72,6 +72,7 @@ static const int pi_channels_maps[CHANNELS_MAX+1] =
  *****************************************************************************/
 static int     Open        ( vlc_object_t * );
 static void    Play        ( audio_output_t *, block_t * );
+static void    Flush       ( audio_output_t *, bool );
 
 /*****************************************************************************
  * Module descriptor
@@ -157,7 +158,7 @@ static int Start( audio_output_t *p_aout, audio_sample_format_t *restrict fmt )
     p_aout->time_get = NULL;
     p_aout->play = Play;
     p_aout->pause = NULL;
-    p_aout->flush = NULL;
+    p_aout->flush = Flush;
 
     /* Audio format */
     psz_format = var_InheritString( p_aout, "audiofile-format" );
@@ -314,6 +315,13 @@ static void Play( audio_output_t * p_aout, block_t *p_buffer )
     block_Release( p_buffer );
 }
 
+static void Flush( audio_output_t *aout, bool wait )
+{
+    if( fflush( aout->sys->p_file ) )
+        msg_Err( aout, "flush error (%m)" );
+    (void) wait;
+}
+
 static int Open(vlc_object_t *obj)
 {
     audio_output_t *aout = (audio_output_t *)obj;