[wdmaudiodev] Re: Msvad stalling after resume from sleep

  • From: ambrish dantrey <a4ambrish@xxxxxxxxx>
  • To: "Jolly, DavidX M" <davidx.m.jolly@xxxxxxxxx>
  • Date: Sat, 30 Mar 2013 03:43:29 +0530

I don't think kernel is responsible for putting stream into PAUSE state
before going to sleep.

Your original post mentioned that hang doesn't occur if stream is paused
before going to sleep and resumed after coming from sleep. You should be
able to achieve this by using IPowerNotify.

If it still doesn't solve your problem, you probably need to debug and see
what exactly is causing the hang. I have used MSVAD and power transitions
worked fine.

~Ambrish


On Fri, Mar 29, 2013 at 12:31 AM, Jolly, DavidX M
<davidx.m.jolly@xxxxxxxxx>wrote:

>  Hi Ambrish,****
>
> ** **
>
> Thanks for the quick response.****
>
> ** **
>
> I have implemented the IPowerNotify interface and attempted to pause the
> stream manually by calling SetState(KSSTATE_PAUSE). However, I’m still
> seeing the same problem. I was under the impression that the kernel
> automatically handled streams by placing them into a paused state prior to
> sleeping. Is this not true?****
>
> ** **
>
> ** **
>
> Thanks,****
>
> ** **
>
> David****
>
> ** **
>
> *From:* ambrish dantrey [mailto:a4ambrish@xxxxxxxxx]
> *Sent:* Thursday, March 28, 2013 11:43 AM
> *To:* wdmaudiodev@xxxxxxxxxxxxx; Jolly, DavidX M
> *Subject:* Re: [wdmaudiodev] Msvad stalling after resume from sleep****
>
> ** **
>
> You may want to consider implementing IPowerNotify for your miniport
> driver:
>
>
> http://msdn.microsoft.com/en-us/library/windows/hardware/ff536949%28v=vs.85%29.aspx
>
> This way you wouldn't have to rely on application to PAUSE the stream
> before going to sleep. You can do this in driver itself.
>
> ~Ambrish****
>
> On Thu, Mar 28, 2013 at 9:26 PM, Jolly, DavidX M <davidx.m.jolly@xxxxxxxxx>
> wrote:****
>
> Hi,****
>
>  ****
>
> I have implemented a virtual audio driver, based on the MSVAD simple
> example in the SDK.****
>
>  ****
>
> Everything seems to be working well, unless I go into a sleep state while
> streaming audio in any player other than WMP. In this case, when the
> computer resumes from sleep, the audio panel volume control will be frozen,
> and the entire driver appears to be stalled. The computer has to be
> restarted in order to fix this problem.****
>
>  ****
>
> After looking into the problem more, I’m seeing that the computer is going
> to sleep without first placing the stream into a pause or stop state. This
> causes the stream to resume from sleep in a running state. The reason WMP
> doesn’t cause this issue is because it proactively pauses and stops the
> stream. Furthermore, in this bad state, the computer does attempt to pause
> the stream immediately after we wake up. For example, a good sleep
> transition will look like this: RUNNING -> PAUSE -> [SLEEP/WAKE] -> PAUSE
> -> RUNNING; while a bad sleep will look like this: RUNNING -> [SLEEP/WAKE]
> -> RUNNING -> PAUSE (from before the sleep) -> FROZEN.****
>
>  ****
>
> It seems like either the portcls or the miniport are preventing the OS
> from setting the proper stream state. I’ve tried everything I can think of
> to resolve this issue, with no luck. If anyone could lend me some advice,
> I’d greatly appreciate it.****
>
>  ****
>
>  ****
>
> Thanks,****
>
>  ****
>
> David****
>
> ** **
>

Other related posts: