[wdmaudiodev] Re: Need help in Wave Test

  • From: Gaurav Khuntale <gauravkhuntale@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Thu, 30 Jan 2014 12:13:36 +0530

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: