AVstream frame issue

hi all,

i am devolping avstream driver for audio, i am specifing the no of frames in the queue is 25 ,and Min& Max frame size is

320 bytes , when the process func is get called at first time i can get the 25 frames from the above layer and i advancing the

frame to fill it ,after completion of first process when it called again i am getting only one frame from the above layer and when i

advance it ,to fill the next frame is not there.only at the first time call to process,above layer is giving 25 frames and all other call

to process only one frame .

Allocatorframing what i am using :-

DECLARE_SIMPLE_FRAMING_EX (
AudioDefaultAllocatorFraming,
STATICGUIDOF (KSMEMORY_TYPE_KERNEL_NONPAGED),
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY |
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY,
25,
3,
320,
320
);
is any there flag should be set …

is unlocking requried for each and every frame or once loading data to all frame need to be unlock only once .

thanks in advance

xxxxx@lntinfotech.com wrote:

i am devolping avstream driver for audio, i am specifing the no of frames in the queue is 25 ,and Min& Max frame size is 320 bytes , when the process func is get called at first time i can get the 25 frames from the above layer and i advancing the frame to fill it ,after completion of first process when it called again i am getting only one frame from the above layer and when i advance it ,to fill the next frame is not there.only at the first time call to process,above layer is giving 25 frames and all other call to process only one frame .

Allocatorframing what i am using :-

DECLARE_SIMPLE_FRAMING_EX (
AudioDefaultAllocatorFraming,
STATICGUIDOF (KSMEMORY_TYPE_KERNEL_NONPAGED),
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY |
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY,
25,
3,
320,
320
);
is any there flag should be set …

I’m not sure why you’re surprised. You declared that these parameters
are your “preferences” only. You’re basically saying “this is what I
would like, but I’m willing to accept whatever you give me.”

Why do you say “3” instead of “FILE_LONG_ALIGNMENT”, which would tell
you the real meaning?

is unlocking requried for each and every frame or once loading data to all frame need to be unlock only once .

Well, for every lock, you need an unlock. The stream pointer is locked
by KsGetXxxEdgeStreamPointer and KsStreamPointerLock. If you only fetch
the stream pointer once, then you only need one unlock.

How are you advancing the stream pointer? Are you advancing it one
frame at a time, or are you using KsStreamPointerUnlock with “eject”?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.