-static void OpenAudioDev( demux_t *p_demux )
-{
- demux_sys_t *p_sys = p_demux->p_sys;
- char *psz_device = p_sys->audio_device;
- int i_format = AFMT_S16_LE;
- int result;
-
- p_sys->fd_audio = open( psz_device, O_RDONLY | O_NONBLOCK );
- if( p_sys->fd_audio < 0 )
- {
- msg_Err( p_demux, "cannot open audio device (%s)", psz_device );
- CloseAudioDev( p_demux );
- }
-
- if( !p_sys->i_sample_rate )
- p_sys->i_sample_rate = 44100;
-
- result = ioctl( p_sys->fd_audio, SNDCTL_DSP_SETFMT, &i_format );
- if( (result < 0) || (i_format != AFMT_S16_LE) )
- {
- msg_Err( p_demux, "cannot set audio format (16b little endian) "
- "(%d)", i_format );
- CloseAudioDev( p_demux );
- }
-
- result = ioctl( p_sys->fd_audio, SNDCTL_DSP_CHANNELS, &p_sys->channels );
- if( result < 0 )
- {
- msg_Err( p_demux, "cannot set audio channels count (%d)",
- p_sys->channels );
- CloseAudioDev( p_demux );
- }
-
- result = ioctl( p_sys->fd_audio, SNDCTL_DSP_SPEED, &p_sys->i_sample_rate );
- if( result < 0 )
- {
- msg_Err( p_demux, "cannot set audio sample rate (%s)", p_sys->i_sample_rate );
- CloseAudioDev( p_demux );
- }
-
- msg_Dbg( p_demux, "opened adev=`%s' %s %dHz",
- psz_device,
- (p_sys->channels > 1) ? "stereo" : "mono",
- p_sys->i_sample_rate );
-
- p_sys->i_audio_max_frame_size = 32 * 1024;
-}
-
-static inline void CloseAudioDev( demux_t *p_demux )
-{
- demux_sys_t *p_sys = NULL;
-
- if( p_demux )
- {
- p_sys = p_demux->p_sys;
- if( p_sys->fd_audio >= 0 )
- close( p_sys->fd_audio );
- }
-}
-