TimeDX Help.


Digital Video Test

    Using the <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.
   

Codecs

    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
VFW_E_CANNOT_CONNECT (80040217)
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 Player 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.

    Prior to Windows 10 natively Windows (and therefore DMDX) was good at rendering MPEG 2 video, with Windows 10 it became necessary to install the add on DVD player (see the Microsoft Knowledge Base article KB3106246) to get the MPEG 2 codecs.  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 or at the very least run them through this playback test you won't know if a given codec is usable with DMDX.  In the open source bracket it would appear that FFmpeg is capable of producing video that DMDX can render as well.


   
   


TimeDX Index.