Multimedia Tests
Last updated on November 11, 1999
DirectSound
Full Duplex
Mixer
WaveDrift
DVD Test

DirectSound


Type Manual
Operating system Windows 2000 (RC3 or later); Windows 98
Log filename dsdrvtst.log
Processing time Approximately 10 minutes
Status Required for systems with a soundcard with DirectSound drivers
Requirements A DirectSound driver
Included in these HCTs: 9.x
Location in Test Manager: \System\Manual-Tests\Multimedia

The DirectSound automatic test suite tests DirectSound drivers.

Algorithm

The DirectSound automatic test suite runs the following tests on a DirectSound Driver:

4:1 ­ Driver Certification test
This test determines whether or not the driver is DirectSound certified.

4:2 ­ Mix many copies of the same wave with one LPDIRECTSOUND
This test opens up a PCM wave file and loads it into many software buffers on the same DirectSound object. The buffers are then played simultaneously.

4:3 ­ Mix many copies of the same wave with different LPDIRECTSONDs
This test opens up multiple DirectSound objects and creates a software buffer for each one. The buffers are then played simultaneously.

4:4 ­ Mix many copies of the same wave with one LPDIRECTSOUNDBUFFER
This test opens up one DirectSound object and one software buffer. Play is then issued on the one software buffer many times.

4:5 ­ Mix same wave with one LPDIRECTSOUND, random sound file
This test is similar to number 2 but it uses random PCM files for the different software buffers instead.

4:6 ­ Mix same wave with different LPDIRECTSOUNDs, random sound file
This test is similar to number 3 but it uses a common random PCM file for software buffers.

4:7 ­ Mix many different waves with one LPDIRECTSOUND, random sound file
This test is similar to number 3 but it uses random PCM files for each software buffer.

4:8 ­ Mix many different waves with different LPDIRECTSOUNDs, random sound file
This test is similar to number 4 but it uses random PCM files for each software buffer.

4:9 ­ Playing buffer stop/start
This test creates a software buffer and loads a PCM wave file into it. It then goes through 4 different sections: 1) Plays to the end of the buffer, stopping and starting with random pauses from the current position; 2) Plays to the end of the buffer, stopping and starting with random pauses from the end of the buffer; 3) Plays looping, stopping and starting with random pauses, from the current position; 4) Plays looping, stopping and starting with random pauses from the beginning. In all cases, the play operation should be successful.

4:10 ­ Play while playing
This test creates a software buffer and loads a PCM wave file into it. It then goes through 2 different sections: 1) Calls play on a normal playing buffer; 2) Calls play on a looping playing buffer.

4:11 ­ Play file in primary buffer
This test creates a write-primary buffer and loads a PCM wave file into it. Depending on the size of the buffer, the entire wave file may be loaded or streamed in. In either case, the looping flag is set when play is issued on the buffer.

4:12 ­ Play secondary buffer via streaming
This test is similar to 11 except it uses a secondary software buffer.

4:13 ­ Release DirectSoundBuffer while playing
This test creates a software secondary buffer and loads a PCM wave file into it. Release is then called on the buffer while it is still playing.

4:14 ­ Release DirectSound while playing
This test is similar to 13 except Release is called on the DirectSound object while it is still playing.

4:15.1 ­ Cycle primary buffer format while playing
This test creates a secondary software buffer and loads valid PCM wave data into the buffer. Play with the looping flag is then issued on this buffer. A primary buffer is then created (on the same DirectSound object) and the various PCM wave formats are set.

4:15.2 ­ Cycle through secondary buffer formats
This is similar to 15.1 except it uses the original secondary software buffer to cycle through the various PCM wave formats.

4:16 ­ Play buffer stop/start, random sound file
This test is similar to 9 except it uses a random sound file.

4:17 ­ Play while playing, random sound file
This test is similar to 10 except it uses a random sound file.

4:18 ­ Play file in primary buffer, random sound file
This test is similar to 11 except it uses a random sound file.

4:19 ­ Play secondary buffer via streaming, random sound file.
This test is similar to 12 except it uses a random sound file.

4:20.1 ­ Release DirectSoundBuffer while playing, random sound file
This test is similar to 13 except it uses a random sound file.

4:20.2 ­ Release DirectSound while playing, random sound file
This test is similar to 14 except it uses a random sound file.

4:21.1 ­ Play file while modifying volume value, random sound file
This test creates a secondary software buffer and loads a random PCM wave file into the buffer. Play is then called and the volume is modified.

4:21.2 ­ Play file while modifying pan value, random sound file
This test creates a secondary software buffer and loads a random PCM wave file into the buffer. Play is then called and pan is modified.

4:21.3 ­ Play file while modifying frequency value, random sound file
This test creates a secondary software buffer and loads a random PCM wave file into the buffer. Play is then called and the frequency is modified.

4:22 ­ Duplicate buffer and play
This test creates a secondary software buffer and then duplicates it many times. Play is then issued on each separate buffer (simultaneously) with the looping flag set.

4:23 ­ Duplicate buffer and play all buffers in series
This test is similar to 22 except it plays the buffers in series and without the looping flag. Namely, it stops the previous buffer before issuing a play on the next.

4:24 ­ Duplicate buffer, delete copies while playing
This test is similar to 22 except it releases the duplicate buffers while it is still in the play state.

4:25 ­ Duplicate buffer, delete original while playing
This test is very similar to 25 except it releases the original buffer while it is still in the play state.

4:26 ­ Duplicate buffer and play, modify control values
This test is similar to 22 except it modifies the volume, pan, and frequency of the buffers while they are playing.

4:27 ­ Duplicate HW buffer and play, modify control values
This test is similar to 26 except it uses hardware buffers for the original and duplicate buffers instead of software buffers.

4:28 ­ Duplicate multiple buffers and play
This test is similar to 22 except buffers are duplicated from multiple original buffers instead of just the one.

4:29 ­ Duplicate multiple buffers and play, modify control values
This test is similar to 26 except buffers are duplicated from multiple original buffers instead of just the one.

4:30 ­ Duplicate buffer and play (random sound file)
This test is similar to 22 except it uses a random PCM wave file

4:31 ­ Duplicate buffer and play all buffers in series (random sound file)
This test is similar to 23 except it uses a random PCM wave file

4:32 ­ Duplicate buffer, delete copies while playing (random sound file)
This test is similar to 24 except it uses a random PCM wave file

4:33 ­ Duplicate buffer, delete copies while playing (random sound file)
This is very similar to 25 except it uses a random PCM wave file

4:34 ­ Duplicate buffer, and play, modify control values (random sound file)
This test is similar to 26 except it uses a random PCM wave file

4:34.1 ­ Validate Streaming HW buffer
This test checks the caps of the driver returned to DirectSound. It finds the first suitable PCM wave format supported by the driver and creates a certain number of streaming hardware buffers (based on the caps obtained). The caps obtained after the creation should equal the original buffer count minus the number of buffers created. The buffers are then released and the caps obtained again. The original free buffer count should now be the same as the free buffer count reported this time.

4:34.2 ­ Validate Static HW buffer
This test is similar to 34.2 except it checks static hardware buffers.

4:35 ­ Check for positional drift
This test creates a secondary software buffer and sets the current position to some valid value. It then compares the current position with the one obtained to ensure that the value hasn't changed. This is done multiple times.

4:35.0 ­ Check for play, write positional drift
This test creates a secondary software buffer loading it with PCM wave file data. Play is then called on the buffer and the test checked to see whether or not the play and write cursors function correctly. The cursors should always ascend and never descend (for the normal play case).

4:35.1 ­ Get/Set Primary Format
This test creates a write-primary DirectSound object and creates a 3D primary buffer. Values for the 3D Listener are then set and retrieved to see if they are the same.

4:36 ­ 3D GetCaps
This test tests the validity of the caps returned from the driver. Based on the free buffer value returned from the driver, it may create that buffer amount. It is considered a failure if the number of buffers actually created is less than that reported.

4:37 ­ 3D Listener Orientation
This test creates a DirectSound object and obtains a 3D Listener interface to a 3D hardware listener. Different orientation values are then set on the listener.

4:38 ­ 3D Listener Position
This test is similar to 37 except it tests the position.

4:39 ­ 3D Listener Rolloff Factor
This test is similar to 37 except it tests the Rolloff factor.

4:40 ­ 3D Listener Doppler Factor
This test is similar to 37 except it tests the Doppler factor.

4:41 ­ 3D Listener Velocity
This test is similar to 37 except it tests the velocity.

4:42 ­ 3D Buffer Position
This test creates a DirectSound object and obtains a 3D Buffer interface to a 3D hardware buffer. Different position values are then set on the buffer.

4:43 ­ 3D Buffer Velocity
This test is similar to 42 except it tests the velocity.

4:44 ­ 3D Buffer Cone Angle
This test is similar to 42 except it tests the cone angle

4:45 ­ 3D Buffer Cone Orientation
This test is similar to 42 except it tests the cone orientation.

4:46 ­ 3D Buffer Cone Outside Volume
This test is similar to 42 except it tests the cone outside volume.

Issues

This test does not work with driver verifier, so you will be required to reboot your system before and after running this test when testing with Windows 2000.

  1. When you start this test, you will get a System Shutdown dialog. Click 'OK' to shutdown your system and disable driver verifier.
  2. After rebooting your system, you will need to log in. When you log in, Test Manager re-starts and the DirectSound test runs.
  3. After the DirectSound test is completed, your system will reboot and re-enable driver verifier.
  4. After rebooting your system, you will need to log in. When you log in, Test Manager re-starts.

Full Duplex


Type Manual
Operating system Windows 2000 (Beta 3 or later); Windows 98
Log filename ntfduplex.log
Processing time Approximately 50 minutes
Status Required for systems with a Full-Duplex soundcard.
Requirements A Full-Duplex Soundcard and an audio loopback connector (described below)
Included in these HCTs: 9.0, 9.1, 9.5
Location in Test Manager: \System\Manual-Tests\Multimedia

A full duplex soundcard is a soundcard that can record and play audio simultaneously. The full duplex test analyzes an audio signal that is output through the soundcard's line out and then recorded through the soundcard's mic in or line in to test the soundcard's simultaneous recording and playback capabilities.

This test tests input and output at like sample rates. For example: when this test is checking 8kHz sample rates, both recording and playback occur at the 8kHz sample rate.

This test does not require a microphone or speakers because it uses an audio loopback connector to record the output from the soundcard's line out to the soundcard's line in or microphone in. The audio loopback connector consists of two 1/8" stereo audio jacks (like the ones found on most consumer headphones) and the appropriate cable to connect them. This part can be purchased from most electronics stores.

To run the Full-Duplex test

  1. Connect an audio loopback connector to the line out on your soundcard, and connect the other end of the connector to the line in or microphone in (may be abbreviated mic. in) on the soundcard.
  2. Start the Full Duplex Test. When you start the Full Duplex test, a message box appears with the following message:

    "Full Duplex test requires a wave loopback cable.Do you want to run the Mixer Calibration Wizard? If you do not run the Wizard, the test will assume that you have appropriate mixer settings."

  3. Click "Yes" to run the Mixer Caliration Wizard, or "No" if you have already connected your audio loopback connector and set your volume levels.
  4. The "Line-In Line-Out" dialog appears, and detects if the audio loopback connector is connected to the sound card's "line in" and "line out". If the loopback cable is detected and the mixer settings are set correctly, the full duplex test will start. If the loopback cable is not detected, click Next to detect of the loopback cable is connected to the sound card's microphone in and line out,. If you get the following message "Full Duplex test cannot avoid clipping", adjust your mixer settings, as described below under "Issues".
  5. The "Mic Line-In"dialog appears, and detects if the audio loopback connector is connected to the sound card's line in and line out. If the loopback cable is connected and the mixer settings are set correctly, the full duplex test will start.

Issues

This test may fail if the volume settings on the mixer are set too high or too low. If the signal is distorted due to the mixer settings, the full duplex test will fail. A distorted signal may be the result of a faulty full-duplex implementation, or it may be the result of This section describes how to set recording and playback levels on your full duplex soundcard so that you can pass the full duplex test.

  1. Open the Volume Control Dialog (Start -> Programs -> Accessories -> Multimedia -> Volume Control).
  2. The balance for all input and output levels should be centered.
  3. 3. On the volume controls for the output, the master volume control slider and wave volume sliders are used to set the output volume. Some sound cards may have a line out and/or headphone sliders also. These may need to be adjusted to the correct output level also. If any of these items do not appear in the dialog, they can be shown by follwing this procedure:
    1. From the Options menu, select Properties.
    2. In the dialog section labeled "Show the following volume controls",check all available checkboxes. Some sound cards may have additional settings that need to be adjusted.
  4. The input levels need to be correctly set also. To do this, the recording level dialog needs to be shown by selecting options -> properties from the menu and selecting Recording in the dialog section labeled "Adjust volume for." The recording slider and the microphone or the line in volume should be adjusted to the correct level. If any of these items do not appear in the dialog, they can be shown by follwing this procedure:
    1. From the Options menu, select Properties.
    2. In the dialog section labeled "Show the following volume controls", check all available checkboxes. Some sound cards may have additional settings which need to be adjusted.
  5. A recording level may be shown next to the various sliders in both the recording control and volume control dialogs. These can be used to check the output volume and the recording levels. Adjust your input and output levels before running this test so that the recording level display in the Volume Control application registers an incoming signal, but that signal never makes the recording level display show red. If the recording level display shows red, the recording function of the soundcard is being overdriven which causes distortion of the signal and may cause a test failure.

This test does not work with driver verifier, so you will be required to reboot your system before and after running this test when testing with Windows 2000.

  1. When you start this test, you will get a System Shutdown dialog. Click 'OK' to shutdown your system and disable driver verifier.
  2. After rebooting your system, you will need to log in. When you log in, Test Manager re-starts and the Full Duplex test runs.
  3. After the Full Duplex test is completed, your system will reboot and re-enable driver verifier.
  4. After rebooting your system, you will need to log in. When you log in, Test Manager re-starts.

Mixer


Type Manual
Operating system Windows 2000 (RC3 or later); Windows 98
Log filename ntmixdrv32.log
Processing time Approximately 5 minutes
Status Required for systems with a soundcard.
Requirements  
Included in these HCTs: 9.x
Location in Test Manager: \System\Manual-Tests\Multimedia

This test verifies that the mixer functions of the soundcard's driver are implemented correctly.

Issues

This test does not work with driver verifier, so you will be required to reboot your system before and after running this test when testing with Windows 2000.

  1. When you start this test, you will get a System Shutdown dialog. Click 'OK' to shutdown your system and disable driver verifier.
  2. After rebooting your system, you will need to log in. When you log in, Test Manager re-starts and the DirectSound test runs.
  3. After the Mixer test is completed, your system will reboot and re-enable driver verifier.
  4. After rebooting your system, you will need to log in. When you log in, Test Manager re-starts.

WaveDrift


Type Manual
Operating system Windows 2000 (RC3 or later); Windows 98
Log filename waveDrv32.log
Processing time Approximately 60-120 minutes
Status Required, except for some servers (see Issues below). This test is no longer required for submissions made with the following HCT versions: 8.0, 8.1 and 8.2 beta.
Required Hardware Soundcard or on-board chipset and driver must be installed.
Included in these HCTs: 9.x
Location in Test Manager: \System\Manual-Tests\Multimedia

Description:

This test uses the low-level multimedia wave APIs, not the MCI interface, to verify audio hardware and driver support for all base wave functionality, as well as the extended functionality reported for the device. Failures in this test often indicate a driver or system board timing problems. Systems with an actual sample rate drift greater than 1% of theoretical may exhibit other symptoms such as lip-sync problems when playing AVI files, data corruption and gaming problems.

For any given audio device, WavDrv32 looks only at features accessible through documented Win32 APIs. Specifically, it verifies the following:

All WavDrv32 test cases are automatic and run for 60 minutes or more, depending on the speed of the test machine. Speakers and a microphone must be attached to the audio card being tested, and an audio driver must be installed.

If there are multiple audio devices, the test will, by default, choose the first one enumerated by the system. This selection can be overridden by manually selecting the desired input and output devices. Once WavDrv32 has been closed, it will remember which devices were chosen the next time it is launched. All test cases are expected to pass.

Issues

The Wavedrift test is not required for server testing if no audio components will ship with any configuration of the system.

This test does not work with driver verifier, so you will be required to reboot your system before and after running this test when testing with Windows 2000.

  1. When you start this test, you will get a System Shutdown dialog. Click 'OK' to shutdown your system and disable driver verifier.
  2. After rebooting your system, you will need to log in. When you log in, Test Manager re-starts and the DirectSound test runs.
  3. After the Wavedrift test is completed, your system will reboot and re-enable driver verifier.
  4. After rebooting your system, you will need to log in. When you log in, Test Manager re-starts.

DVD Test


Type Manual
Operating system Windows 2000 (RC3 or later)
Log filename dvdtest.log
Processing time Approximately 10 minutes
Status Required for systems with a DVD drive
Requirements A digital video disk (DVD), an audio CD, and a non-audio CD-ROM.
Included in these HCTs: 8.x, 9.x

This test tests whether the DVD drive supports the Mt. Fuji commands listed in the Microsoft PC 99 System Design Guide. This test issues Mt. Fuji commands to the specified DVD drive using the SCSI pass through and ATA pass through interfaces.

To run the DVD test
  1. Insert DVD (digital video disk) media into the DVD drive.
  2. Start Test Manager.
  3. In the Available Tests pane, open 'System', 'Storage', 'DVD Test'.
  4. Double click on 'DVD Test' to add it to the 'Selected Tests' pane.
  5. In the 'Selected Tests' pane, double click on 'DVD Tests' to open the 'Edit Test Parameters' dialog.
  6. Enter the Drive letter of the DVD drive in the 'Value' text box for 'Param1'. For example, if the DVD drive is 'e:' on your system, enter 'e:' Note: the colon is important. Without it this test will not run properly.
  7. Click 'OK' to close the dialog.
  8. Click 'Start' to start the DVD test.
  9. Click 'OK' when you are prompted to insert DVD media.

    The Mt. Fuji commands outlined in the PC 99 system design guide are issued one by one and a status report is printed.

  10. Insert a non-audio CD-ROM into the drive when prompted.
  11. Insert an audio CD into the drive when prompted.

The DVD test issues ATA commands if you are testing a system with an IDE DVD drive. These ATA commands are outlined in the PC 99 system design guide.

Issues

At this time Windows 2000 is unable to determine the drive letter of a DVD drive, so you will have to enter the drive letter as a test parameter in Test Manager. This is described above under 'To run the DVD test'.

If you do not insert DVD media into the test drive before starting the DVD test, you will fail the DVD test.

Algorithm

  1. Get a handle to the given DVD device.
  2. Ask user to insert DVD media into the drive.
  3. Issue the following commands using SCSI pass through interface: Inquiry, Test unit ready, Request sense, Mode select, Mode sense, Mechanism status, Read C/DVD capacity, Read formatted capacities, Read DVD structure, Read (12), Set read ahead, Start/stop unit, Seek, Get event status notification, Report key, Send key, Read TOC, Read (10).
  4. Issue ATAPI Identify device command using ATA pass through interface. If the command succeeds then it is an ATAPI device. Issue the following ATAPI commands also through the same interface: ATAPI soft reset, Check power mode, Execute drive diagnostics, Idle immediately, NOP, ATAPI packet, Set features, Sleep, Standby immediate.
  5. Ask the user to insert non-audio CDROM into the drive and issue the following command using SCSI pass through interface: Read header.
  6. Ask the user to insert an audio CDROM into the drive and issue the following commands using SCSI pass through interface: Read sub channel, Read CD, Read CD MSF, Play audio (10), Play audio MSF, Pause/resume, Stop play/scan, Scan.
  7. Check the return values of each of the commands. If it is FALSE or pass through returns "request sense" data, log fail message along with "request sense" data, else log pass.
  8. Check the data returned by the inquiry command, especially interface type, device type and response data format conforms to the spec. If yes, log 'pass', else log 'fail'.
  9. Check the block length returned by Read capacity command. If block length is not 2048, log 'fail', else log 'pass'.