Checked into HEAD too.
Thanks
Varun Kathuria
----- Original Message -----
From: Rishi Mathew
To: Varun Kathuria ; Gregory Wright
Cc: [email protected]
Sent: Friday, June 19, 2009 7:17 PM
Subject: Re: [Audio-dev] CN:Changes to fix Bug 9324:Real Player is in 'Not
Responding" state after suspend/resume while playing any movie on FC10
platform.
Also to HEAD please.
Thanks,
Rishi.
At 10:16 PM 6/18/2009, Varun Kathuria wrote:
Thanks Greg,
This has been checked into atlas310, atlas347 & atlas349.
Thanks
Varun Kathuria
----- Original Message ----- From: "Gregory Wright" <[email protected]>
To: "Varun Kathuria" <[email protected]>
Cc: <[email protected]>
Sent: Thursday, June 18, 2009 7:40 PM
Subject: Re: [Audio-dev] CR:Changes to fix Bug 9324:Real Player is in 'Not
Responding" state after suspend/resume while playing any movie on FC10 platform.
void CAudioOutLinuxAlsa::HandleSuspend(void) const
{
int err = 0;
do
{
err = snd_pcm_resume(m_pAlsaPCMHandle);
if (err == 0)
{
break;
}
else if (err == -EAGAIN)
{
usleep(1000);
}
} while (err == -EAGAIN);
+ if (err == 0)
+ {
+ err = snd_pcm_prepare (m_pAlsaPCMHandle);
+ if (err < 0)
+ {
+ HXLOGL1 ( HXLOG_ADEV, "snd_pcm_prepare: %s",
+ snd_strerror(err));
+ }
+ }
+
if (err < 0)
{
HandleXRun();
}
}
I think it would be cleaner if you stuck that new code
in the while loop just before the break; I think
the whole thing could be written something like below.
void CAudioOutLinuxAlsa::HandleSuspend(void) const
{
int err = 0;
do
{
err = snd_pcm_resume(m_pAlsaPCMHandle);
if (err == 0)
{
err = snd_pcm_prepare (m_pAlsaPCMHandle);
break;
}
else if (err == -EAGAIN)
{
usleep(1000);
}
} while (err == -EAGAIN);
if (err < 0)
{
HXLOGL1 ( HXLOG_ADEV, "snd_pcm_prepare: %s", snd_strerror (err));
HandleXRun();
}
}
If we could move the usleep up then you could get rid
of that 'else if' block too. Don't know if that works
for the suspend case though, so test it if you want.
void CAudioOutLinuxAlsa::HandleSuspend(void) const
{
int err = 0;
do
{
usleep(1000);
err = snd_pcm_resume(m_pAlsaPCMHandle);
if (err == 0)
{
err = snd_pcm_prepare (m_pAlsaPCMHandle);
break;
}
} while (err == -EAGAIN);
if (err < 0)
{
HXLOGL1 ( HXLOG_ADEV, "snd_pcm_prepare: %s", snd_strerror (err));
HandleXRun();
}
}
--greg.
On Jun 18, 2009, at 4:44 AM, Varun Kathuria wrote:
Project: RealPlayer For Netbook
Synopsis:
Changes to fix Bug 9324:Real Player is in 'Not Responding" state after
suspend/resume while playing any movie on FC10 platform.
Overview:
When we play any file on realplayer for netbook in Fedora 10 & suspend
the system. When we resume it, we are not able to hear audio, only video can
be seen. This is because when system goes to suspend state then audio device
gives 'ESTRPIPE' signal while writing the data to the device. And when we
resume the system, sometimes we need to wake up the audio device by using
snd_pcm_prepare() to play the audio.
Files Added:
None
Files Modified:
/cvsroot/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
Branch
atlas310, atlas347 & atlas349
Platforms and Profiles Build Verified:
BIF branch -> hxclient_3_1_0_atlas_restricted
Target(s) -> player_all
Profile -> helix-client-moblin
SYSTEM_ID -> linux-2.2-libc6-gcc32-i586
Files Attached:
diff_9312.txt
Thanks & Regards,
Varun Kathuria
<diff_9324.txt>_______________________________________________
Audio-dev mailing list
[email protected]
http://lists.helixcommunity.org/mailman/listinfo/audio-dev
_______________________________________________
Audio-dev mailing list
[email protected]
http://lists.helixcommunity.org/mailman/listinfo/audio-dev
Rishi Mathew
Director of Technology Licensing Operations
Real Networks, Inc.
[email protected]
http://www.helixcommunity.org
http://www.realnetworks.com/products/support/devsupport.html
_______________________________________________
Audio-dev mailing list
[email protected]
http://lists.helixcommunity.org/mailman/listinfo/audio-dev