X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=plugins%2Fesd%2Faout_esd.c;h=182fd18afa97f29b09a48b65a56369f500c067af;hb=440f9992ee947ea5fd0debbf35fdd1011c6404b3;hp=92b2d2f8116e22421677e795b5a2cfd696f47b42;hpb=583c6553f6761421260d86bbc21b5b3169c04319;p=vlc diff --git a/plugins/esd/aout_esd.c b/plugins/esd/aout_esd.c index 92b2d2f811..182fd18afa 100644 --- a/plugins/esd/aout_esd.c +++ b/plugins/esd/aout_esd.c @@ -2,6 +2,7 @@ * aout_esd.c : Esound functions library ***************************************************************************** * Copyright (C) 2000 VideoLAN + * $Id: aout_esd.c,v 1.13 2001/05/30 17:03:12 sam Exp $ * * Authors: Samuel Hocevar * @@ -55,6 +56,7 @@ #include "main.h" #include "modules.h" +#include "modules_export.h" /***************************************************************************** * aout_sys_t: esd audio output method descriptor @@ -140,9 +142,13 @@ static int aout_Open( aout_thread_t *p_aout ) p_aout->p_sys->esd_format = (i_bits | i_mode | i_func) & (~ESD_MASK_CHAN); if( p_aout->i_channels == 1 ) + { p_aout->p_sys->esd_format |= ESD_MONO; + } else + { p_aout->p_sys->esd_format |= ESD_STEREO; + } /* open a socket for playing a stream * and try to open /dev/dsp if there's no EsounD */ @@ -156,6 +162,10 @@ static int aout_Open( aout_thread_t *p_aout ) return( -1 ); } + intf_ErrMsg( "aout error: you are using the Esound plugin. There is no way yet to get the\n" + " driver latency because esd_get_latency() hangs, so expect a one\n" + " second delay with sound. Type `esdctl off' to disable esd." ); + return( 0 ); } @@ -183,25 +193,31 @@ static long aout_GetBufInfo( aout_thread_t *p_aout, long l_buffer_limit ) *****************************************************************************/ static void aout_Play( aout_thread_t *p_aout, byte_t *buffer, int i_size ) { - int amount; + int i_amount; if (p_aout->p_sys->esd_format & ESD_STEREO) { if (p_aout->p_sys->esd_format & ESD_BITS16) - amount = (44100 * (ESD_BUF_SIZE + 64)) / p_aout->l_rate; + { + i_amount = (44100 * (ESD_BUF_SIZE + 64)) / p_aout->l_rate; + } else - amount = (44100 * (ESD_BUF_SIZE + 128)) / p_aout->l_rate; + { + i_amount = (44100 * (ESD_BUF_SIZE + 128)) / p_aout->l_rate; + } } else { if (p_aout->p_sys->esd_format & ESD_BITS16) - amount = (2 * 44100 * (ESD_BUF_SIZE + 128)) / p_aout->l_rate; + { + i_amount = (2 * 44100 * (ESD_BUF_SIZE + 128)) / p_aout->l_rate; + } else - amount = (2 * 44100 * (ESD_BUF_SIZE + 256)) / p_aout->l_rate; + { + i_amount = (2 * 44100 * (ESD_BUF_SIZE + 256)) / p_aout->l_rate; + } } - intf_DbgMsg( "aout: latency is %i", amount ); - write( p_aout->i_fd, buffer, i_size ); }