|
|
|
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
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
|
|