Writing a Splitter filter that works with DirectShow editing services
- From: "Mats" <mats.lindelof@xxxxxxxxx>
- Date: 17 Jan 2007 06:29:43 -0800
Hi!
I'm trying to write a new type of splitter filter (that will handle a
new type of fileformat). The filter works fine in a simple graph like
this:
File Source -> My Splitter -> Decoder -> Renderer
but somethings goes wrong when it is instanciated by DES:
File Source-> My Splitter -> Decoder -> Frame Rate Converter -> DES
-> Renderer
My splitter inherits from CBaseFilter and implements IMediaSeeking. It
has one parser thread and one delivery thread per output pin.
The behaviour experienced is somewhat different in the different cases.
In case one i just get a Pause from the Filter Graph Manager, after
which I start the parser thread and start delivery on the output pins,
and a frame shows up in the video window. Fine.
In case two, I get a Pause, and a frame shows up exactly as in case
one, then I get a SetRate, followed by a Stop followed by several
SetPositions with two values (400000, 800000, 400000). Then a Pause
arrives again and this time the frame in the video window dissapears!
The graph never reaches the Paused state (no Run command is ever
issued).
I have verified that My Splitter is sending samples downstream after
Pause has arrived. I have also verified that no uncompressed image
reaches the renderer after the first one. So some filter ( Decoder,
Frame Rate Converter or DES filter) refuses to pass data on to the next
one.
A number of things could be wrong: I'm not sending the correct
information, I'm sending the correct information at the wrong time or
I'm not sending the required information at all. I am sending New
Segment after all SetRates and SetPositions.
Do you have any ideas how to find this bug? What could be wrong?
Since the filter is working fine in a simple graph (seeking, play,
pause etc) this is a hard one.
I can supply much more information if you are willing to help.
Thanks for helping me out!
/Mats
.
- Follow-Ups:
- Re: Writing a Splitter filter that works with DirectShow editing services
- From: Geraint Davies
- Re: Writing a Splitter filter that works with DirectShow editing services
- Prev by Date: Re: Update Mixer Bitmap
- Next by Date: Re: Technique for videoframe display
- Previous by thread: Technique for videoframe display
- Next by thread: Re: Writing a Splitter filter that works with DirectShow editing services
- Index(es):
Relevant Pages
|