Troubleshooting the DirectShow Playback and Latency Tests (Windows Embedded CE 6.0)
1/6/2010
For more troubleshooting help, see Troubleshooting the CETK Tests.
Check that the XML file is configured as desired. The default values in the XML file will usually fail. This is especially true of the latency and duration thresholds, which are set to arbitrary values. Update the XML file to reflect the desired latency. The test will fail if the latency experienced is larger than the threshold specified in the XML file.
In general, the tests may fail if:
- the URL is inaccessible, or if the xml file points to an invalid URL
- the server containing the media is not accessible
- the exact URL on the server is inaccessible
- the network is inaccessible or the proxy or firewall are configured incorrectly
- the correct SYSGENs needed to pull in the necessary DirectShow components are missing
- you do not have or cannot initialize COM
- the test device lacks a storage device, or the XML file is not pointing to the storage device or the media clip
- the test device has run out of memory
- the command line points to the wrong XML file
The following table shows common reasons for failure for each test case.
Test case | Typical reasons for failure |
---|---|
0 |
DirectShow cannot find an appropriate source filter for the URL. |
1 |
A filter in the <FilterList> cannot be loaded. Cannot create an end-to-end filter graph of the URL. |
2 |
DirectShow cannot find an appropriate source filter for the URL. Cannot render the unconnected pins all the way to the renderer. |
3 |
Xml file does not specify a source filter, or the source filter is unknown. Xml file does not specify a renderer filter, or the renderer filter is unknown. The source filter or the renderer specified cannot be loaded. Cannot connect the pins of the source filter, through various transform filters if needed, to the renderer specified. |
4 |
The URL cannot be rendered and the test cannot create an end-to-end, completely connected graph. All the filters in the <CorrectGraph> are not present in the connected graph. |
5 |
The URL cannot be rendered and the test cannot create an end-to-end, completely connected graph. Any of the essential interfaces are not returned. |
100 |
The URL cannot be rendered and the test cannot create an end-to-end, completely connected graph. Cannot set the playback position to play to and from. Cannot run the graph successfully. It takes longer to playback than expect (calculated based of off clip duration). Tester clicks No on the message box asking to verify playback. |
101 |
Cannot copy the clip locally (URLMON is used to do this); failure could be due to:
The URL cannot be rendered and the test cannot create an end-to-end, completely connected graph. Cannot set the playback position to play to and from. Cannot run the graph successfully. It takes longer to playback than expected (calculated based of off clip duration). Tester clicks No on the message box asking to verify playback. |
102 |
The URL cannot be rendered and the test cannot create an end-to-end, completely connected graph. Cannot set the playback position to play to and from. Cannot run the graph successfully. It takes longer to playback than expected (calculated based of off clip duration). The playback duration is not within the threshold specified. The threshold can be specified in the <PlaybackDuration> tag as a comma separated list. First number is the percent deviation allowed on total playback time. Second number is the deviation allowed in ms. If the difference between expected playback and actual playback is not covered by either of these two thresholds, then the test fails.. |
200 201 |
The URL cannot be rendered and the test cannot create an end-to-end, completely connected graph. Cannot set the playback position to play to and from. Cannot run the graph successfully. It takes longer to playback than expected (calculated based of off clip duration). The startup latency is not within the specified threshold. Can configure this threshold via the <StartupLatency></StartupLatency> tag. Specify a latency in ms. Currently this is set at 300 ms. |
300 301 302 |
The URL cannot be rendered and the test cannot create an end-to-end, completely connected graph. Cannot run the graph successfully. Cannot change states. State change latency is not within expected threshold (in ms). This value can be modified via the <VerifyStateChangeLatency> tag. The value is specified in ms. Currently set at 2000 ms. Test measures the latency for every state change it does, plus calculates and prints out an average state change latency over all the runs. |
303 |
The URL cannot be rendered and the test cannot create an end-to-end, completely connected graph. Cannot run the graph successfully. Cannot change the states successfully. Decoder run to first sample latency is not within expected threshold (in ms). This value can be modified via the <DecodedVideoLatencyRunToFirstSample> tag. The value is specified in ms. Currently set at 300 ms. |