Share via


Camera Performance Test (Compact 7)

3/12/2014

The Camera Performance Test requires a Windows Embedded Compact device with camera functionality. The Camera Performance Test gathers performance data for various DirectShow capture scenarios.

Test Prerequisites

Your device must meet the following requirements before you run this test.

No specialized hardware is required.

The following table shows the software requirements for the Camera Performance Test.

Requirements Description

Tux.exe

Tux test harness, required for executing the test

Kato.dll

Kato logging engine, required for logging test data

CameraPerfTests.dll

Library containing the test cases

Camera driver

Driver developed for the DirectShow capture model

SYSGEN_DSHOW_CAPTURE (DirectShow capture) is also required. SYSGEN_CAMERA_NULL is to be set only when the device doesn’t have camera functionality. This would include a sample camera driver. You must also create a configuration file specifying what you wish to test, as discussed in Creating a Configuration File for the Camera Performance Test.

Subtests

The table below lists the subtests included in this test.

SubTest ID Description

100

Paused graph performance test (baseline information)

200

Preview performance test (baseline information)

300

Still image performance test

301

Still Image Burst performance test

400-401

Video capture performance tests

Setting Up the Test

You must create a configuration file, identified in the command line using the /c flag, which specifies what you wish to test. The following table shows what can be included in the configuration file.

Configuration file parameter Description

StillImageDestination, path_and_filename, List, 0

This is primarily if you wish to capture performance data when saving to an SD card or some other storage location. If no location is given, \StillImage%d.jpg is used. %d is replaced by an incrementing number for each still image captured by the test.

CaptureFileDestination, path_and_filename, List, 0

This is primarily if you wish to capture performance data when saving to an SD card or some other storage location. If no location is given, \VideoCapture%d.asf is used. %d is replaced by an incrementing number for each of the videos captured by the test.

AudioFormat, AudioCaptureFilter, List, 0, value

The value here is the index to the desired media type and capability pair of a format reported as supported by the IAMStreamConfig::GetNumberOfCapabilities and IAMStreamConfig::GetStreamCaps methods of the Audio Capture Filter. If no format is given, the audio capture filter's default format is used.

CaptureFormat, VideoCaptureFilter, List, 0, value

The value here is the format index of a format reported as supported by the video capture filter, which in turn returns the list reported as supported by the camera driver. If no format is given, the default format negotiated by the capture graph is used.

PreviewFormat, VideoCaptureFilter, List, 0, value

The value here is the format index of a format reported as supported by the video capture filter, which in turn returns the list reported as supported by the camera driver. If no format is given, the default format negotiated by the capture graph is used.

StillImageFormat, VideoCaptureFilter, List, 0, value

The value here is the format index of a format reported as supported by the video capture filter, which in turn returns the list reported as supported by the camera driver. If no format is given, the default format negotiated by the capture graph is used.

<whatever your video encoder supports>, VideoEncoder, List, 0, value

For WMV this value is _COMPLEXITYEX and _VBRQUALITY. Whatever is given here is passed directly to the encoder though the property bag.

<whatever your audio encoder supports>, AudioEncoder, List, 0, value

Whatever value is given here is passed directly to the encoder though the property bag.

Orientation, <ignored>, List, 0, 90, 180, 270

This sets the shell orientation to the orientation specified.

For example, a valid configuration file might look as follows:

StillImageDestination, \release\stillimage%d.jpg, List, 0

CaptureFileDestination, \release\captureimage%d.asf, List, 0

AudioFormat, AudioCaptureFilter, List, 12, 16

CaptureFormat, VideoCaptureFilter, List,0,1,2

This configuration file would result in the test iterating through five combinations, including three video capture formats and two audio formats.

Running the Test

You may customize the test run with the following command line parameters.

Command line parameter Description

/?

Outputs the list and description of the command line parameters.

/ManualVerifyPreview

Forces manual verification on, where user will be prompted for input.

/ManualVerifyStill

Turns off automatic verification of the still frame captured.

/AutoVerifyPreview

Forces automatic verification on, regardless of renderer in use. May cause invalid failures.

/AutoVerifyStill

Turns off automatic verification of the still frame captured if using the sample camera driver.

/OutputKeyEvents

Enables the test to output debugging information for missing events, skip outputting high volume events.

/OutputAllEvents

Enables the test to output debugging information for missing events, outputs every event.

/OutputFilterInformation

Enables the test to output information about the graph topology.

/OutputPreviewDiagnostics

Output preview diagnostics information for tracking samples.

/OutputStillDiagnostics

Output still capture diagnostics information for tracking samples.

/OutputCaptureDiagnostics

Output video capture diagnostics information for tracking samples.

/OutputAllDiagnostics

Output all video capture diagnostics information including graph topology, all events, and all other sample tracking diagnostics.

/VideoEncoderCLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx}

Sets the framework to use the video encoder DMO with the CLSID specified.

/AudioEncoderCLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx}

Sets the framework to use the audio encoder DMO with the CLSID specified.

/MuxCLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx}

Sets the framework to use the audio/video MUX with the CLSID specified.

/UseGSM

Sets the framework to have the AudioCaptureFilter output GSM encoded audio instead of PCM (if the ACM audio encoder is available)

/ForceColorConversion

Forces the color conversion filter into the graph in front of the renderer. May be necessary depending on the encoder and the camera driver-supported formats

/VideoFileConformanceLibrary path

This tells the test to use the DLL specified in the path to verify conformance of the video file created. This library must export a function with the following prototype: "HRESULT VerifyVideoFile(WCHAR *filename);"

The library should load the file and return an HRESULT indicating whether the file is conformant and playable. If no path is given and the file sink used is the default ASF file sink, "asfverify.dll" is used.

The preview, still, capture, and diagnostic options require the test filter library "cameragrabber.lib", as specified in Prerequisites for the Camera Performance Test.

Verifying the Test

When the test completes running, verify that "PASS" appears in the test log for all subtests.

Troubleshooting the Test

After verifying that the configuration file is correct, use information in the log to diagnose the cause of the failure.

For additional platform specific issues, consult the CTK articles on the TechNet wiki.

See Also

Other Resources

Multimedia - Camera Tests