Project: Real Player for MID - ARM. Synopsis: Fix for audio jitters on audio start-up on LG-MID ARM device
Overview: When we play any file on LG-MID ARM device, we hear small audio jitters during playback startup. These jitters remain for 2-3 seconds and after that the audio jitters go away.
Currently we are using RW access mode. If we use MMAP access mode, and then instead of snd_pcm_writei() API, use snd_pcm_mmap_writei() API in _WriteBytes(), we do not hear any jitters on start-up.
A new config define HELIX_CONFIG_PCM_MMAP is applied for enabling/disabling mmap mode.
Files Modified: audio/device/platform/unix/audlinux_alsa.cpp Image Size and Heap Use impact (Client -Only): None. Platforms and Profiles Affected: None. Distribution Libraries Affected: None. Distribution library impact and planned action: None. Platforms and Profiles Build Verified: BIF: hxclient_3_4_11_atlas_restricted Target: player_mid_all_installers Profile: helix-client-mid-arm Branch: Atlas_3411 Files Attached: audlinux_alsa.diff Thanks, Deepak Jain
Index: audlinux_alsa.cpp =================================================================== RCS file: /cvsroot/audio/device/platform/unix/audlinux_alsa.cpp,v retrieving revision 1.9.2.11 diff -u -r1.9.2.11 audlinux_alsa.cpp --- audlinux_alsa.cpp 12 Dec 2009 22:25:48 -0000 1.9.2.11 +++ audlinux_alsa.cpp 12 Jan 2010 08:57:20 -0000 @@ -733,7 +733,11 @@ if (err >= 0) { +#ifndef HELIX_CONFIG_PCM_MMAP err = snd_pcm_hw_params_set_access(m_pAlsaPCMHandle, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED); +#else + err = snd_pcm_hw_params_set_access(m_pAlsaPCMHandle, hwparams, SND_PCM_ACCESS_MMAP_INTERLEAVED); +#endif //HELIX_CONFIG_PCM_MMAP if (err < 0) { HXLOGL1 ( HXLOG_ADEV, "snd_pcm_hw_params_set_access: %s", snd_strerror(err)); @@ -1224,8 +1228,11 @@ do { num_frames = snd_pcm_bytes_to_frames(m_pAlsaPCMHandle, ulBytesToWrite); +#ifndef HELIX_CONFIG_PCM_MMAP err = snd_pcm_writei( m_pAlsaPCMHandle, buffer, num_frames ); - +#else + err = snd_pcm_mmap_writei( m_pAlsaPCMHandle, buffer, num_frames ); +#endif //HELIX_CONFIG_PCM_MMAP if (err >= 0) { frames_written = err;
_______________________________________________ Audio-dev mailing list Audio-dev@helixcommunity.org http://lists.helixcommunity.org/mailman/listinfo/audio-dev