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
[email protected]
http://lists.helixcommunity.org/mailman/listinfo/audio-dev