Friday, October 17, 2008

Problem: Source Filter's Pause() fn was not called and directly Stop() fn was called


Problem;
----------------
  Source Filter's Pause() fn was not called and directly Stop() fn was called.
 
 
Solution steps:
------------------------
         For this problem I tried two approach.
 
          1.I have checked the source filter output pin's GetMediaType() fn and CheckMediaType() fn was succeeded and Decoder filter's CheckInputType() fn and CheckTransform() fn was succeeded. so no problem with pin connection
        2.I have developed the player application and rendered only the video output pin and still I got the same error
 
So there is no
            
 
 
Solution:
------------------
 
Importance of biPlanes in BITMAPINFOHEADER:
-------------------------------------------------------------------------

                In Source filter, we set the GetMediaType() returns media type.
This media type have BITMAPINFOHEADER; BITMAPINFOHEADER have biPlanes variable;
 if we set it to zero, then Source Filter directly goes to Filter's Stop() fn...
   if I modified it to 1, then the video is playing fine.
MSDN DSHOW docs prescribed this variable must be set to 1;
 
            So it is better to make the biPlanes  as 1 in media type returned with GetMediaType() fn in our Decoder.
 
 
 
 
 
 
 

No comments: