Ureader.com  
Microsoft software help and Community
   home   |   control panel login   |   archive   |  
 
Windos
win32.3rdparty
win32.directx.audio
win32.directx.ddk
win32.directx.graphics
win32.directx.input
win32.directx.managed
win32.directx.misc
win32.directx.networking
win32.directx.sdk
win32.directx.video
win32.dirx.grap.shaders
win32.gdi
win32.international
win32.kernel
win32.messaging
win32.mmedia
win32.networks
win32.ole
win32.rtc
win32.tapi
win32.tapi.beta
win32.tools
win32.ui
win32.wince
win32.wmi
windows.mediacenter
winfx.aero
winfx.announcements
winfx.avalon
winfx.collaboration
winfx.fundamentals
winfx.general
winfx.indigo
winfx.sdk
winfx.winfs
  
 
date: Fri, 19 Sep 2008 00:18:19 +0100,    group: microsoft.public.win32.programmer.directx.video        back       


Last sample missing   
I have a filter graph with my own file source filter which has a 
CSourceStream derived output pin. This feeds the MPEG demux filter which has 
2 output pins which are both eventually connected to VMR9s.

This works OK except that the last sample from one of the MPEG PIDs does not 
get renderered. At first I thought there may be a problem with the VMR, or 
the syncing of the two VMRs, but it seems that a filter connected to the 
demux's corresponding output pin does not receive the final sample.

But I found that if I insert a breakpoint into my source filter so that it 
stopped on the breakpoint with every FillBuffer call, and keep pressing 
Continue in the debugger then the final sample WAS delivered OK. This makes 
me wonder whether there is some timing/race problem. When FillBuffer returns 
S_FALSE (indicating end of file reached), could the graph be getting flushed 
of samples before the final sample was getting fully processed through to 
the end of the graph?

Could there be something additional I need to do in my source filter to 
allow the final sample to be processed?
date: Fri, 19 Sep 2008 00:18:19 +0100   author:   Richard

Re: Last sample missing   
On Sep 19, 1:18 am, "Richard"  wrote:
> I have a filter graph with my own file source filter which has a
> CSourceStream derived output pin. This feeds the MPEG demux filter which has
> 2 output pins which are both eventually connected to VMR9s.
>
> This works OK except that the last sample from one of the MPEG PIDs does not
> get renderered. At first I thought there may be a problem with the VMR, or
> the syncing of the two VMRs, but it seems that a filter connected to the
> demux's corresponding output pin does not receive the final sample.
>
> But I found that if I insert a breakpoint into my source filter so that it
> stopped on the breakpoint with every FillBuffer call, and keep pressing
> Continue in the debugger then the final sample WAS delivered OK. This makes
> me wonder whether there is some timing/race problem. When FillBuffer returns
> S_FALSE (indicating end of file reached), could the graph be getting flushed
> of samples before the final sample was getting fully processed through to
> the end of the graph?
>
> Could there be something additional I need to do in my source filter to
> allow the final sample to be processed?

Do you send an EndOfStream?
Also due to the compression mechanism, maybe the decompressor is
expecting more frames to come to be able to render this one....
date: Fri, 19 Sep 2008 06:35:03 -0700 (PDT)   author:   Michel Roujansky - Senior developer, Starfish Technologies Ltd

Re: Last sample missing   
"Michel Roujansky - Senior developer, Starfish Technologies Ltd" 
 wrote in message news:49cd015a-e131-4353-9d88-
> Do you send an EndOfStream?
> Also due to the compression mechanism, maybe the decompressor is
> expecting more frames to come to be able to render this one....

The base class handles the EndOfStream. After a lot of investigating it 
looks like a bug in the demux filter.
date: Mon, 29 Sep 2008 14:02:20 +0100   author:   Richard

Google
 
Web ureader.com


    COPYRIGHT 2007, YARDI TECHNOLOGY LIMITED, ALL RIGHT RESERVE  |   contact us