Hi there,

I am writing a filter-centric avstream mini-driver. However, I
discover that the filter's process routine is kept entering even I
have returned STATUS_PENDING. I have no other AttempProcess statement
elsewhere in my code. What's wrong?

I have tried to comment out the SetTimer statement of the AVStream
avssamp sample... however, it still works by keep entering the Process
routine...

Thanks for your kindest help.

Regards,
Panda

Re: Behavior of AVStream after returning STATUS_PENDING from Process routine by Max

Max
Fri May 28 17:31:42 CDT 2004

Did you use KSPIN_FLAG_INITIATE_PROCESSING_ON_EVERY_ARRIVAL flag in your pin
decriptor?
Did you advance the stream pointer before returning from Process()?
When called next time does you Process() receives the same or a different
stream pointer?

-- Max.


"Panda Ng" <pandang@outline.com.hk> wrote in message
news:2d5f4a89.0405280149.6d75dc6c@posting.google.com...
> Hi there,
>
> I am writing a filter-centric avstream mini-driver. However, I
> discover that the filter's process routine is kept entering even I
> have returned STATUS_PENDING. I have no other AttempProcess statement
> elsewhere in my code. What's wrong?
>
> I have tried to comment out the SetTimer statement of the AVStream
> avssamp sample... however, it still works by keep entering the Process
> routine...
>
> Thanks for your kindest help.
>
> Regards,
> Panda



Re: Behavior of AVStream after returning STATUS_PENDING from Process routine by anonymous

anonymous
Sun May 30 20:26:04 CDT 2004

Hi, thanks for your help

I write my driver with reference to the AVStream example "avssamp". I didn't see this flag is set. And no "pointer advance" in the process routine

Moreover, is pin-centric topology more favourable then filter-centric? My driver is for my hardware but actually I do nothing to route data in a "pin", just read a frame in RGB format from my harware when an interrupt occurs

Regards
Panda

Re: Behavior of AVStream after returning STATUS_PENDING from Process routine by Max

Max
Tue Jun 01 02:58:52 CDT 2004

> I write my driver with reference to the AVStream example "avssamp". I
didn't see this flag is set. And no "pointer advance" in the process
routine.
>
> Moreover, is pin-centric topology more favourable then filter-centric? My
driver is for my hardware but actually I do nothing to route data in a
"pin", just read a frame in RGB format from my harware when an interrupt
occurs.

Oh, I missed the part where you said that you were working with
filter-centric minidriver.
I don't know much about it.
A wild guess would be that something is wrong with pin flags, but I can be
totally off.

Honestly I never figured out a point of using filter-centric approach except
for transform hardware-less drivers.

-- Max.



Re: Behavior of AVStream after returning STATUS_PENDING from Process routine by anonymous

anonymous
Tue Jun 01 09:36:13 CDT 2004

Hi

Sorry to bother you again. My problem is quite silly I believe

Because my hardware use no DMA but interrupt to signal a frame is ready, so the pin-centric example of the DDK doesn't totally apply. I can understand most part of the sample but how I can put my data

I could fully understand the filter-centric one that I can use the pin-index's data member

To put my question simple, I would be much appreciated if you could point me how I could put the color bytes pixel by pixel to stream pointers in pin-centric case

Thanks so much

Regards
Panda Ng

Re: Behavior of AVStream after returning STATUS_PENDING from Process routine by Max

Max
Tue Jun 01 14:12:48 CDT 2004

Process() routine for pin centric approach receives a stream pointer. Read
the DDK on stream pointers, it has the whole lot of info about them.
In the nutshell what you get is an IRP(s) wrapped into a structure that
helps you maintain a pointer into a data.
Use KSSTREAM_POINTER::KSSTREAM_HEADER to get a hold of the bits (or a memory
for your bits).
FrameExtent is the size of received buffer and DataUsed field is the size of
the data in the buffer. The buffer itself is pointed to by Data.

-- Max.



"Panda Ng" <anonymous@discussions.microsoft.com> wrote in message
news:A7AE700A-3473-459E-910B-ED6912A0A6F9@microsoft.com...
> Hi,
>
> Sorry to bother you again. My problem is quite silly I believe.
>
> Because my hardware use no DMA but interrupt to signal a frame is ready,
so the pin-centric example of the DDK doesn't totally apply. I can
understand most part of the sample but how I can put my data.
>
> I could fully understand the filter-centric one that I can use the
pin-index's data member.
>
> To put my question simple, I would be much appreciated if you could point
me how I could put the color bytes pixel by pixel to stream pointers in
pin-centric case?
>
> Thanks so much!
>
> Regards,
> Panda Ng