Digital Video Test
<DigitalVideo> keyword DMDX has the ability to use the
components that MicroSoft used to name Active Movie which they now call DirectMedia that play .MPG, .AVI, and Quicktime files (possibly others as well, see Codecs below). DirectMedia consists of two
components, DirectAnimation and DirectShow of which DMDX will be using DirectShow. Currently (I think) the DirectMedia stuff needs to be installed in addition to DirectX unless you are using 98 that has it installed already. This test checks that DirectShow (quartz.dll) is indeed installed and functioning and in addition it checks whether DMDX is going to be able to keep track of the retrace as a file is playing.
As with graphics in general in DMDX, a 16 bpp display mode will work much better that a 256 color mode for displaying digital video as the palette is not updated.
This test functions by playing a given Digital Video file, beit .MPG or whatever. After the file has played out various statistics are displayed. As the file is being played clicking the mouse will stop play. The test has several different ways of being run.
The Audio Only checkbox is to test the streaming audio abilities, no video is displayed. When Audio Only is checked the frame numbers are considered to be millisecond values.
It can either be made to stretch the video by checking the Strech check box and filling in the width and height edit boxes or it will center the video and display it at it's original size.
DirectSound can be initialized to see how it interacts with DirectShow by checking the DirectSound check box.
The vertical retrace thread can be activated to determine how it interacts with DirectShow by checking the Track Retrace check box.
A portion of the digital video can be played back by checking the Play Region check box and by specifiying the starting and ending frame numbers.
Displayed data after the run include:
Run Transistion time: how many milliseconds DirectShow took to produce the first sample from the file.
Samples displayed: how many samples were actually displayed -- this can be different from the number of frames in the Digital Video file.
av. ms per sample: After the first sample the average number of milliseconds between successive samples displayed (not the time between samples in the file).
Multiply timedout retraces and Certain Errors are the results of the retrace thread keeping track of the retrace, see the
Time Video Mode explanation for their meaning.
Enabling Track Retrace on slower systems (a Pentium 133 for example) you can definitely see a performance hit, faster systems where the frame rate is higher than the usual 24 or 30 fps in the Digital Video file don't notice it.
During playing of a Digital Video file several keys can be used to control and display information.
P either pauses or plays the stream.
T displays the current timecode, pausing the stream if it wasn't paused already. When DMDX plays portions of a Digital Video these timecodes are used as the indexes.
< or > cues the paused stream forward or backward, if it's not paused cueing will pause it. The stream is cued by the current time quantum, by default two frames.
1 2 3 4 5 6 7 8 9 set the cueing time quantum in number of frames.
0 toggles whether the cueing quantum is multiplied by ten or not.
If using Direct3D while TimeDX is being
displayed you can hit the A alternate display button and see the triangles
making up the wireframe the textures are mapped onto.
The file types that DMDX and TimeDX can handle are determined by what DirectShow can handle which is in turn determined by that codecs have been installed on the machine. A codec (short for coder/decoder) can handle different types of compression, the default '98 codec handles .AVI, .MPG, and Quicktime video formats (possibly others as well) and the .WAV audio format. While I have yet to find a codec that decodes the very attractive .mp3 audio format files (the Fraunhauffer codec supposedly had this ability but it isn't available anymore due to copyright infringements) at sometime in the past the development box must have had a codec installed on it as it has the curious ability to play .au files (typically 2:1 compression) where the test machine cannot. Might've been the Intel Indeo 5 codec, however I can't find that codec anymore so I can't say for certain.
Which brings us to the all important question, how can you tell what file formats are supported on your machine? Good question.
With XP under the Control Panel / Multimedia / Devices option you can see what Video and Audio codecs have been installed but getting a file type out of that information seems impossible, so other than by trial and error I suspect you are SOL.
Later OSes can use the instructions
here, it appears that later versions of Windows Media Player will list them in
the Technical Support Information link under Help / About. Still no file
type info though. To use the time honored "try it and see" approach simply try and play the file with TimeDX's / Advanced / Digital Video test, if it's an audio file check the Audio Only check box. If your machine can't handle the file format TimeDX will report and error like this:
Failed to OpenFile
No combination of intermediate filters could be found to make the connection.
A filter is DirectShow's name for the objects that the codecs provide to do the decoding.
Which brings us to the next all important question, how can you
get more codecs? In the past I've just told people to download the latest
version of the Windows Media Player from Microsoft as that appears to install a
bunch of codecs on the machine, alternatively there are a
couple of packages out there, K-Lite
would appear to be an older collection of codecs (that I might have known about
in the past and forgotten) and another more recent and perhaps more capable one,
CCCP. The CCCP site also
apparently has tools to manage codecs which might be useful. Other than
that it's been scour the web and hope you don't pick up a trojan given the overwhelming number of them masquerading as
codecs these days for all the Facebook users.
Video that DMDX can't render
Recently more people have been experiencing the fact that
while the Windows Media Player is able to render a given video it doesn't
mean DMDX can. DMDX needs access to the actual video data, however there exist
a whole class of perverse codecs these days that only render to a window,
they don't actually give the application wanting to render the video the
data. You can detect these when the Windows Media
is playing the video by dragging it's window around the screen. If you
notice the video lagging behind the Windows Media Player frame you're
dragging around that's because the codec is rendering straight to the screen
not to the application.
Natively Windows (and therefore DMDX) is good at
rendering MPEG 2 video. Just because you've converted a file to AVI however
doesn't mean that the AVI file has MPEG 2 data in it. We use Adobe Premiere
Elements to determine exactly what a given file has in it and to also
convert files to MPEG 2. Once you've installed a codec pack as noted
above you can use things like MPEG 4 and so on, however until you test them
with the laggy media player test you won't know if a given codec is usable