[wdmaudiodev] Re: AVStream Capture question

  • From: wade <wdawson61@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Thu, 17 Jul 2003 13:01:02 -0700 (PDT)

Harry:
Thanks for your response.  A question though.  In you opinion, should I set the 
KSPIN_DESCRIPTOR.Flags (KSPIN_FLAG_INITIATE_PROCESSING_ON_EVERY_ARRIVAL) to 
force a call to my AvStrProcess() when new frames arrive?  I'm assuming this 
way I can fill newly arriving frames with any data that may not have fit at DPC 
time (if, for instance, KsStreamPointerAdvanceOffsets caused queue run off) . 
I'm assuming that the arrival of a new frame should trigger me to transfer the 
rest of the data that the DPC's Processing call couldn't.  In the case of no 
data lying around from the last DPC (it all fit in the available frames the 
time DPC called KsPinAttemptProcessing()) ) I'm assuming that I should just 
return STATUS_PENDING, and return STATUS_SUCCESS when I fill and complete 
frames?
 
Thanks for your help.
 
 
Harry Graham <harry_graham@xxxxxxxxxx> wrote:


v\:* {behavior:url(#default#VML);}o\:* {behavior:url(#default#VML);}w\:* 
{behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}
Wade,

 

There are many different ways to use the stream pointers in AVStream.  I have 
not personally used KsStreaPointerGetNextClone, but I suspect that this is 
causing your problem.

 

I would suggest calling KsPinAttemptProcessing from the DPC, and perform all 
the stream pointer manipulation and hardware queuing in the Process callback.

 

Harry

 

-----Original Message-----
From: wade [mailto:wdawson61@xxxxxxxxx] 
Sent: Wednesday, July 16, 2003 5:01 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] AVStream Capture question

 

Hi:


 


I'm writing a capture-only AVStreams driver for a simple piece of hardware. I 
get an ISR dispatch and queue my DPC to move x samples to AVStream frames.  In 
my AvStrMiniProcess (called on every frame arrival and loosely based on Avshws) 
routine I am advancing through the Avstream queue cloning pointers to each 
frame.  I return STATUSS_SUCCESS on the frames I'm able to clone and 
STATUS_PENDING on the ones I can't. In my DPC I step through the Clones using 
KsStreamPointerGetNextClone(), filling the frames and deleting the clone 
pointers as the frame is filled.


KSStudio never shows the frames being completed.   KS's dispatch timer is 
canceling them.


Is there an easier or better way to do this?  I'm about ready to break down and 
allocate a NonPaged buffer for my DPC to put samples in and fill the AVStream 
frames as they arrive in my AvStrMiniProcess routine.  Any help is greatly 
appreciated.


 


 


 


---------------------------------


Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!




---------------------------------
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!

Other related posts: