X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Faudio_output%2Foss.c;h=a05fcf16b6768bf79aad50a3eaf3494ec09685bd;hb=c60652e38ac6afd74bd8225e9dae5406f13aaa4f;hp=6ee0688655bd63e73786d86170262f0b672fc5da;hpb=cee16ae6950abf905ac800018108e0dc610619ef;p=vlc diff --git a/modules/audio_output/oss.c b/modules/audio_output/oss.c index 6ee0688655..a05fcf16b6 100644 --- a/modules/audio_output/oss.c +++ b/modules/audio_output/oss.c @@ -31,17 +31,13 @@ # include "config.h" #endif -#include /* ENOMEM */ #include /* open(), O_WRONLY */ #include /* ioctl() */ #include /* write(), close() */ #include #include - -#ifdef HAVE_ALLOCA_H -# include -#endif +#include #include @@ -113,7 +109,7 @@ vlc_module_begin () add_file( "oss-audio-device", "/dev/dsp", aout_FindAndRestart, N_("OSS DSP device"), NULL, false ) add_deprecated_alias( "dspdev" ) /* deprecated since 0.9.3 */ - add_bool( "oss-buggy", 0, NULL, BUGGY_TEXT, BUGGY_LONGTEXT, true ) + add_bool( "oss-buggy", false, NULL, BUGGY_TEXT, BUGGY_LONGTEXT, true ) set_capability( "audio output", 100 ) add_shortcut( "oss" ) @@ -250,10 +246,10 @@ static void Probe( aout_instance_t * p_aout ) text.psz_string = _("A/52 over S/PDIF"); var_Change( p_aout, "audio-device", VLC_VAR_ADDCHOICE, &val, &text ); - if( config_GetInt( p_aout, "spdif" ) ) + if( var_InheritBool( p_aout, "spdif" ) ) var_Set( p_aout, "audio-device", val ); } - else if( config_GetInt( p_aout, "spdif" ) ) + else if( var_InheritBool( p_aout, "spdif" ) ) { msg_Warn( p_aout, "S/PDIF not supported by card" ); } @@ -282,7 +278,7 @@ static int Open( vlc_object_t *p_this ) return VLC_ENOMEM; /* Get device name */ - if( (psz_device = config_GetPsz( p_aout, "oss-audio-device" )) == NULL ) + if( (psz_device = var_InheritString( p_aout, "oss-audio-device" )) == NULL ) { msg_Err( p_aout, "no audio device specified (maybe /dev/dsp?)" ); free( p_sys ); @@ -294,7 +290,7 @@ static int Open( vlc_object_t *p_this ) * wait forever until the device is available. Since this breaks the * OSS spec, we immediately put it back to blocking mode if the * operation was successful. */ - p_sys->i_fd = open( psz_device, O_WRONLY | O_NDELAY ); + p_sys->i_fd = vlc_open( psz_device, O_WRONLY | O_NDELAY ); if( p_sys->i_fd < 0 ) { msg_Err( p_aout, "cannot open audio device (%s)", psz_device ); @@ -357,7 +353,8 @@ static int Open( vlc_object_t *p_this ) else { /* This should not happen ! */ - msg_Err( p_aout, "internal: can't find audio-device (%i)", val.i_int ); + msg_Err( p_aout, "internal: can't find audio-device (%"PRId64")", + val.i_int ); close( p_sys->i_fd ); free( p_sys ); return VLC_EGENERIC; @@ -513,7 +510,7 @@ static int Open( vlc_object_t *p_this ) } p_aout->output.p_sys->b_workaround_buggy_driver = - config_GetInt( p_aout, "oss-buggy" ); + var_InheritBool( p_aout, "oss-buggy" ); /* Create OSS thread and wait for its readiness. */ if( vlc_thread_create( p_aout, "aout", OSSThread, @@ -522,7 +519,7 @@ static int Open( vlc_object_t *p_this ) msg_Err( p_aout, "cannot create OSS thread (%m)" ); close( p_sys->i_fd ); free( p_sys ); - return VLC_ETHREAD; + return VLC_ENOMEM; } return VLC_SUCCESS; @@ -652,7 +649,7 @@ static void* OSSThread( vlc_object_t *p_this ) while( vlc_object_alive (p_aout) && ! ( p_buffer = aout_OutputNextBuffer( p_aout, next_date, true ) ) ) { - msleep( 1000 ); + msleep( VLC_HARD_MIN_SLEEP ); next_date = mdate(); } } @@ -660,10 +657,10 @@ static void* OSSThread( vlc_object_t *p_this ) if ( p_buffer != NULL ) { p_bytes = p_buffer->p_buffer; - i_size = p_buffer->i_nb_bytes; + i_size = p_buffer->i_buffer; /* This is theoretical ... we'll see next iteration whether * we're drifting */ - next_date += p_buffer->end_date - p_buffer->start_date; + next_date += p_buffer->i_length; } else {