[wdmaudiodev] Re: Need help in Wave Test

  • From: Gaurav Khuntale <gauravkhuntale@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 31 Jan 2014 12:07:54 +0530

Hello,

Any guess what could be the reason behind above failures ?

Thanks in advance.


On Thu, Jan 30, 2014 at 6:37 PM, Gaurav Khuntale
<gauravkhuntale@xxxxxxxxx>wrote:

> I am seeing following failures,
>
>
> 1) Standard Streaming\Rendering Pin Tests\Reset Pin while streaming data
>      KSPIN_DATAFLOW_IN pin is currently in state KSSTATE_PAUSE; want it to
> be in state KSSTATE_RUN
>     Setting KSPIN_DATAFLOW_IN pin to state KSSTATE_RUN
>     Position reported before issuing KSRESET_BEGIN = 121 bytes
>     KSPIN_DATAFLOW_IN pin is currently in state KSSTATE_RUN; want it to be
> in state KSSTATE_RUN
>     Resetting Pin state: IOCTL_KS_RESET_STATE (KSRESET_BEGIN)
>     Position reported after issuing KSRESET_BEGIN = 0 bytes
>     Submitting IOCTL_KS_WRITE_STREAM IRP ...
>     GetLastError did not return ERROR_IO_PENDING even though the pin is
> paused
>
>      [ GetLastError() returned 21 (0x15) - The device is not ready.   ].
>     FAIL: Failed WriteData(Render)/ReadData(
> Capture) to see if pin position is moving or not.
>
> 2) Standard Streaming\Rendering Pin Tests\Streaming buffer from different
> threads
>    FAIL: Position (1600) is less than the amount of data streamed (3200).
>
> 3) Standard Streaming\Rendering Pin Tests\Calling get position from the
> different thread
>
> 4) Standard Streaming\Rendering Pin Tests\Streaming with 2 different
> instance of the pin.
>      Wave Format used for instantiation:
>     Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE
>     Format.nChannels = 2
>     Format.nSamplesPerSec = 22050
>     Format.nAvgBytesPerSec = 88200
>     Format.nBlockAlign = 4
>     Format.wBitsPerSample = 16
>     Format.cbSize = 22
>     wValidBitsPerSample = 16
>     dwChannelMask = KSAUDIO_SPEAKER_STEREO (0x3)
>     SubFormat =
> KSDATAFORMAT_SUBTYPE_PCM{00000001-0000-0010-8000-00AA00389B71}
>
>
>     CKsPin::Instantiate.  Failed to instantiate KSPIN_DATAFLOW_IN pin!
>      KsCreatePin returned = 0x00000057
>      [ GetLastError() returned 87 (0x57) - The parameter is incorrect.   ].
>     PreparePin: Unable to instantiate pin.
>
> Also yes, i do see a NewStream call during the test run.
>
> Thanks.
>
>
>
> On Thu, Jan 30, 2014 at 6:18 PM, Matthew van Eerde <
> Matthew.van.Eerde@xxxxxxxxxxxxx> wrote:
>
>>  OK, good.
>>
>>
>>
>> For clarity, in the situation where current count is initially 0, what
>> failure do you see? Also, do you see a NewStream() call in that situation?
>>
>>
>>
>> *From:* wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:
>> wdmaudiodev-bounce@xxxxxxxxxxxxx] *On Behalf Of *Gaurav Khuntale
>> *Sent:* Thursday, January 30, 2014 4:33 AM
>>
>> *To:* wdmaudiodev@xxxxxxxxxxxxx
>> *Subject:* [wdmaudiodev] Re: Need help in Wave Test
>>
>>
>>
>> Yes, I was opening a stream before running wave test by playing a song
>> from WMP. So after i tried running wave test without first opening a
>> stream. But still there are failures which i mentioned in last mail.
>>
>> I just saw on KS studio and found that it reports Current Count = 0 and
>> Possible Count = 1 for KSPROPERTY_PIN_CINSTANCES.
>>
>> Should i attach my wave test log file?
>>
>> Thanks.
>>
>>
>>
>> On Thu, Jan 30, 2014 at 5:41 PM, Matthew van Eerde <
>> Matthew.van.Eerde@xxxxxxxxxxxxx> wrote:
>>
>>   > So i removed this handling and allowed mutliple streams to be created
>>
>>
>>
>> Um, don't do that.
>>
>>
>>
>> The test only attempts to open one stream at a time. Is there already a
>> stream open when the test begins? If so, see if you can figure out what is
>> opening the stream and stop it. (This could be KS Studio, or maybe
>> something is playing a sound, or maybe something else is going on.)
>>
>>
>>
>> Typically the instance limit (in this case, 1) is enforced above the
>> miniport, so the fact that you even have the opportunity to return
>> STATUS_INVALID_DEVICE_REQUEST is indicative of a problem. What does KS
>> Studio report for KSPROPERTY_PIN_CINSTANCES on this pin factory, both
>> "current" and "possible"?
>>
>>
>>
>> *From:* wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:
>> wdmaudiodev-bounce@xxxxxxxxxxxxx] *On Behalf Of *Gaurav Khuntale
>> *Sent:* Wednesday, January 29, 2014 10:44 PM
>>
>>
>> *To:* wdmaudiodev@xxxxxxxxxxxxx
>> *Subject:* [wdmaudiodev] Re: Need help in Wave Test
>>
>>
>>
>> Hi Matthew,
>>
>> Yes, i am seeing a NewStream() call when test case fails. Also i got the
>> reason why Pin was not getting instantiated. Its because, my driver
>> currently supports only one stream instantiation at a time.If there is try
>> of creating multiple streams then my driver is returning
>> STATUS_INVALID_DEVICE_REQUEST status from NewStream() function. So i
>> removed this handling and allowed mutliple streams to be created and test
>> case "Data Intersection Test\Render Streaming\Check Supported Formats" got
>> Pass. But now i am getting more failures in following test cases:
>>
>> 1) Standard Streaming\Rendering Pin Tests\Reset Pin while streaming data
>>      KSPIN_DATAFLOW_IN pin is currently in state KSSTATE_PAUSE; want it
>> to be in state KSSTATE_RUN
>>     Setting KSPIN_DATAFLOW_IN pin to state KSSTATE_RUN
>>     Position reported before issuing KSRESET_BEGIN = 121 bytes
>>     KSPIN_DATAFLOW_IN pin is currently in state KSSTATE_RUN; want it to
>> be in state KSSTATE_RUN
>>     Resetting Pin state: IOCTL_KS_RESET_STATE (KSRESET_BEGIN)
>>     Position reported after issuing KSRESET_BEGIN = 0 bytes
>>     Submitting IOCTL_KS_WRITE_STREAM IRP ...
>>     GetLastError did not return ERROR_IO_PENDING even though the pin is
>> paused
>>
>>      [ GetLastError() returned 21 (0x15) - The device is not ready.   ].
>>     FAIL: Failed WriteData(Render)/ReadData(Capture) to see if pin
>> position is moving or not.
>>
>> 2) Standard Streaming\Rendering Pin Tests\Streaming buffer from different
>> threads
>>    FAIL: Position (1600) is less than the amount of data streamed (3200).
>>
>> 3) Standard Streaming\Rendering Pin Tests\Calling get position from the
>> different thread
>>
>> 4) Standard Streaming\Rendering Pin Tests\Streaming with 2 different
>> instance of the pin.
>>      Wave Format used for instantiation:
>>     Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE
>>     Format.nChannels = 2
>>     Format.nSamplesPerSec = 22050
>>     Format.nAvgBytesPerSec = 88200
>>     Format.nBlockAlign = 4
>>     Format.wBitsPerSample = 16
>>     Format.cbSize = 22
>>     wValidBitsPerSample = 16
>>     dwChannelMask = KSAUDIO_SPEAKER_STEREO (0x3)
>>     SubFormat =
>> KSDATAFORMAT_SUBTYPE_PCM{00000001-0000-0010-8000-00AA00389B71}
>>
>>     CKsPin::Instantiate.  Failed to instantiate KSPIN_DATAFLOW_IN pin!
>>     KsCreatePin returned = 0x00000057
>>      [ GetLastError() returned 87 (0x57) - The parameter is incorrect.
>> ].
>>     PreparePin: Unable to instantiate pin.
>>
>> Can you please help me in above failures ? What could be the reasons
>> behind these failures ? Here i don't understand one thing is that, when i
>> doesn't allow multiple streams to be instantiated in my driver then above
>> mentioned test cases got skipped while wave test and if i allow multiple
>> streams then i got failure for this test cases.
>>
>> Regarding your another question, my driver supports WAVE_FORMAT_PCM with
>> maximum channels 2, max sample rate 64000, min sample rate 4000.
>>
>> Thanks.
>>
>>
>>
>>
>>
>> On Wed, Jan 29, 2014 at 10:30 PM, Matthew van Eerde <
>> Matthew.van.Eerde@xxxxxxxxxxxxx> wrote:
>>
>>  Yes, pin instantiations are only attempted on the wave filter. The
>> topology filter typically does not have any pin factories that support
>> meaningful pin instantiation.
>>
>>
>>
>> When the test case fails, are you seeing a NewStream() call?
>>
>>
>>
>> What formats do you support?
>>
>>
>>
>> *From:* wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:
>> wdmaudiodev-bounce@xxxxxxxxxxxxx] *On Behalf Of *Gaurav Khuntale
>> *Sent:* Wednesday, January 29, 2014 2:33 AM
>> *To:* wdmaudiodev@xxxxxxxxxxxxx
>> *Subject:* [wdmaudiodev] Re: Need help in Wave Test
>>
>>
>>
>> Hi Tim,
>>
>> As you said, i tried instantiating my driver with ksstudio. I selected my
>> wave filter from KS Studio and successfully instantiated pin on wave
>> filter.
>>
>> Is failure which i mentioned is related to wave filter only ?
>>
>> Also i am getting one more failure in same test case mentioned above
>> saying:
>> CKsPin::Instantiate.  Failed to instantiate KSPIN_DATAFLOW_IN pin!
>> KsCreatePin returned = 0x00000001
>>  [ GetLastError() returned 1 (0x1) - Incorrect function.   ].
>> FAIL: KSPROPERTY_PIN_DATAINTERSECTION Succeeded, Pin Creation Failed
>> FAIL: Pin does not support WLP required sample frequencies of:
>>         - 44100 Hz
>>         - or 48000 Hz
>>
>> But my driver supports above mentioned sample frequencies, still i don't
>> understand why this failure ?
>>
>> Thanks.
>>
>>
>>
>> On Wed, Jan 29, 2014 at 9:42 AM, Gaurav Khuntale <
>> gauravkhuntale@xxxxxxxxx> wrote:
>>
>>   Hi Tim,
>>
>> No, i haven't tried using ksstudio to instantiate my driver. To be frank,
>> i am not aware of this. What exactly will happen when i instantiate driver
>> with ksstudio and how to do that ( if possible just give me some reference
>> link or document ) ?
>>
>> Thanks.
>>
>>
>>
>> On Wed, Jan 29, 2014 at 6:18 AM, Tim Roberts <timr@xxxxxxxxx> wrote:
>>
>>  Gaurav Khuntale wrote:
>> >
>> >
>> > I am working on a audio driver which is based on wavecyclic. My driver
>> > is failing Wave test with following errors,
>> >
>> > 1) FAIL : Data Intersection Test\Render Streaming\Check Supported
>> Formats
>> >        CKsPin::Instantiate.  Failed to instantiate KSPIN_DATAFLOW_IN
>> pin!
>> >        KsCreatePin returned = 0x00000001
>> >        [ GetLastError() returned 1 (0x1) - Incorrect function.   ].
>> >        FAIL: KSPROPERTY_PIN_DATAINTERSECTION Succeeded, Pin Creation
>> > Failed.
>> >
>> > 2) Compliance Tests\UAA-Compliance Test
>> >   1.FAIL: The Device driver is not one of the UAA Compliant types
>> > (HDAudio,USB      Audio 1.0, USB Audio 2.0, Bluetooth)!
>> >
>> > Regarding first failure, i tried to search about that but failed to
>> > understand what exactly Failure is and reason behind the failure. My
>> > primary understanding says, this failure is because my driver is not
>> > supporting KSPROPERTY_PIN_DATAINTERSECTION property. Is this right ?
>> > Can anyone please help me here ?
>>
>> No.  Read the error:  KSPROPERTY_PIN_DATAINTERSECTION succeeded.  Pin
>> creation failed.  You're going to need to put some debug prints into
>> your driver to chase down which function is failing.  Have you tried
>> using ksstudio to instantiate your driver?  Does it work in graphedt?
>>
>>
>>
>> > Regarding second failure, as my driver is virtual driver, how can i
>> > pass this failure ? Should my driver must be from one of the category
>> > listed in failure ?
>>
>> You can't WHQL a virtual audio driver.
>>
>> --
>> Tim Roberts, timr@xxxxxxxxx
>> Providenza & Boekelheide, Inc.
>>
>> ******************
>>
>> WDMAUDIODEV addresses:
>> Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
>> Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
>> Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx
>> ?subject=unsubscribe
>> Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx
>>
>> URL to WDMAUDIODEV page:
>> http://www.wdmaudiodev.com/
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>

Other related posts: