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, 25 Jul 2008 09:41:19 -0700 (PDT),    group: microsoft.public.win32.programmer.directx.video        back       


Setting position on a ring-based archived file   
I am writing an ActiveX control to view and simply manipulate (rewind,
fastforward, seek, etc.) the viewing of video from a specific brand
server.  The server records video in a 24-hour ring-based buffer.
While using the  IMediaSearching interface, I ran across a problem
with the time of the video.  The video on the server obviously has a
creeping start and end time.  DirectShow, however, seems to only be
aware of the start and end time when it first loaded the video.  This
behavior shows up when I retrieve the duration from DirectShow, take
some percentage of that duration, and set the position of the video to
the product of the percentage and duration.  The time sought to is
always the same time.  As the start time is always creeping, the time
represented by the percentage of the duration should always creep as
well.  It does not however.  This suggests that DirectShow is storing
the original start and end time to use for seeking purposes.  This is
not a problem until the percentage points to a time that does not
exist on the server yet DirectShow thinks it should.  Is there a way
to force DirectShow to update the stored start and end time to avoid
this problem?

A few particulars:
DirectX 9.0c June 2008
Microsoft Platform SDK 2008
Visual Studio 2008 Professional (mostly likely irrelevant)
date: Fri, 25 Jul 2008 09:41:19 -0700 (PDT)   author:   Billy Howell

Re: Setting position on a ring-based archived file   
From: "Billy Howell"

[...]
> with the time of the video.  The video on the server
> obviously has a creeping start and end time.  DirectShow,
> however, seems to only be aware of the start and end time
> when it first loaded the video.  This behavior shows up
[...]

Not DS, but the specific parser filter that handles the 
seeking in your graph. What is your graph's exact topology? 
In general, a streaming segment has a fixed start time and 
there is no good way to change it continuosly, but the 
parser is supposed to take care of not seeking outside the 
available data and the application is supposed to not ask it 
to.


-- 
// Alessandro Angeli
// MVP :: DirectShow / MediaFoundation
// mvpnews at riseoftheants dot com
// http://www.riseoftheants.com/mmx/faq.htm
date: Fri, 25 Jul 2008 16:29:27 -0400   author:   Alessandro Angeli

Re: Setting position on a ring-based archived file   
On Jul 25, 3:29 pm, "Alessandro Angeli" 
wrote:
> From: "Billy Howell"
>
> [...]> with the time of the video.  The video on the server
> > obviously has a creeping start and end time.  DirectShow,
> > however, seems to only be aware of the start and end time
> > when it first loaded the video.  This behavior shows up
>
> [...]
>
> Not DS, but the specific parser filter that handles the
> seeking in your graph. What is your graph's exact topology?

[[Billy]]  The graph is actually pretty simple.  There is a DLL called
IMSPush.dll which contains the source filter, a JPEG codec, and an XP
default renderer.

> In general, a streaming segment has a fixed start time and
> there is no good way to change it continuosly, but the
> parser is supposed to take care of not seeking outside the
> available data and the application is supposed to not ask it
> to.

[[Billy]]  To test whether the parser is taking care of the problem
personally, I will test whether I can take the product of the duration
and the percentage input and add it to the start time from the source
filter which does creep.  Your answer says that the start time is
usually fixed, but you never said an end time existed.  Maybe this
will allow me to go outside what I would think the bounding times
would be (i.e. parser start time plus duration).  I will post later
with my results.
date: Mon, 28 Jul 2008 06:24:49 -0700 (PDT)   author:   Billy Howell

Re: Setting position on a ring-based archived file   
To do what I said I was going to test would have actually required for
me to add the duration to the difference in the original start time
and the creeping one.  An easier way to test the theory was to try to
seek over 100% of the duration.  I waited about ten seconds into the
recording and sought to the product of the duration and 1.00005787 (or
the duration plus about five seconds).  The result was that the video
sought all the way to the end of the video and paused.  I tried a
couple more times increasing the initial wait to twenty and thirty
seconds with the same outcome.  After that, I tested one more time
with the percentage equal to 0.00005787 (about five seconds).  Without
a breakpoint to take up time the video always goes to the beginning
with the current time ever so slightly behind the start time.  I will
try again with about twenty seconds, but I think I will run into the
same problem as the original post.  It seems I will just have to talk
to the company who provided the source filter.  Any other suggestions?
date: Mon, 28 Jul 2008 06:54:05 -0700 (PDT)   author:   Billy Howell

Google
 
Web ureader.com


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