--- modules/audio_output/oss.c.orig Sat May 6 23:52:16 2006 +++ modules/audio_output/oss.c Sun Nov 5 06:51:28 2006 @@ -82,7 +82,7 @@ /* This must be a power of 2. */ #define FRAME_SIZE 1024 -#define FRAME_COUNT 4 +#define FRAME_COUNT 32 /***************************************************************************** * Local prototypes @@ -106,7 +106,7 @@ vlc_module_begin(); set_shortname( "OSS" ); - set_description( _("Linux OSS audio output") ); + set_description( _("FreeBSD OSS audio output") ); set_category( CAT_AUDIO ); set_subcategory( SUBCAT_AUDIO_AOUT ); @@ -474,9 +474,9 @@ /* i_fragment = xxxxyyyy where: xxxx is fragtotal * 1 << yyyy is fragsize */ - i_fragments = 0; - i_frame_size = FRAME_SIZE * p_aout->output.output.i_bytes_per_frame; - while( i_frame_size >>= 1 ) + 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_fragments = 4; + while( i_fragments < 12 && (1U << i_fragments) < i_frame_size ) { ++i_fragments; }