1 / 25

Fidelity Test – Import and Export

Fidelity Test – Import and Export. Introduction and Troubleshooting Matthew van Eerde, Windows Sound. Agenda. What is Fidelity and how does it work? Fidelity before export and import were invented. What export and import are for. How to run export; how to run import.

ardara
Download Presentation

Fidelity Test – Import and Export

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fidelity Test – Import and Export Introduction and Troubleshooting Matthew van Eerde, Windows Sound

  2. Agenda • What is Fidelity and how does it work? • Fidelity before export and import were invented. • What export and import are for. • How to run export; how to run import. • When does a new log need to be exported? • Submission type – basic/premium, desktop/mobile, etc. • Devices – same hardware, same revisions. • Topology – same inputs, same outputs, same paths through device. • Something went wrong. What do I do? • Couldn’t open the import file... why? • The topology is different... why? • Resources – online tips, support.

  3. Fidelity Test – “Run Locally"

  4. Fidelity Test – “Run Locally" • Standard DTM setup: • Controller • Studio • System under test • Additionally: • Audio Precision analyzer • Audio Precision host + APIB cable • Audio cables • Drawbacks: • Audio Precision analyzer is a large commitment • Cost of running test can be disproportionate to benefit

  5. Fidelity Test – “Export”

  6. Fidelity Test – “Export” • Same setup as "run locally“: • Test results exported to a specially-decorated log file. • This is the same as the .wtl (Windows Test Log) file on the DTM controller, but with an added hash. • The hash ensures that the file has not changed since it was created. Hash: SHA-1/Encrypted 408e96f2f46e35f916454ac3fad19567b6cb788 (from here on the file is the same as the .wtl file) <?xml version="1.0" ?> <WTT-Logger> <RTI ID="165573444" Machine="MATEER-DEV" ... /> <CTX ID="384048256" Current="WTTLOG" Parent="ROOT" /> <Machine ...></Machine> (this line is important... more on this later) <Msg UserText="REQUIREMENTS: Basic Desktop" ... ></Msg> (basic or premium; desktop or mobile) (and so are these... more on this later) <Msg UserText="DEVICE-INFO: HDAUDIO\FUNC_01..." ...> </Msg> (PnP ID plus hash of topology) <Msg UserText="Topology: HD Audio Speaker mixer..." > </Msg> ()

  7. Fidelity Test – “Import”

  8. Fidelity Test - “Import” • Setup changes from "run locally“: • No AP analyzer, APIB cable, or audio cables necessary! • "AP host" is still necessary, but for DTM Scheduler reasons only. It takes no active role in the test - it is just a dumb machine. • Fidelity Test must be able to reach and read the log file from System Under Test. • What about the log file? • Log file must be exactly the same as when it was exported (even whitespace, line breaks, and case). • Content of log file must match system being tested (more on this later). • Requirements must be compatible between log file and submission (can't import a "basic" pass into a "premium" submission).

  9. When Does a New File Need to be Exported? • A premium submission can only import a premium log. A basic submission can import either a basic or a premium log: • So, it suffices to export only a premium log. • The list of PnP IDs of audio devices must match between the system under test and the log file: • So, if you add a USB Webcam, you must export a log that includes the USB Webcam. • If the codec REV_ number is incremented, you must export a new log. • If the SUBSYS_ number changes, you must export a new log • The audio "topology" exposed by each audio device in the system under test must match the corresponding audio topology recorded in the log file: • So, if you can connect a pin on the codec to either a "CD in" or an "AUX", you must export a log each way. • If you have a third-party driver for a UAA-compliant device, export a log with the third-party driver installed and a log with the UAA class driver installed (such as the Microsoft HD Audio class driver).

  10. What Is “Topology?”

  11. What Is “Topology?” • The previous slide was a screenshot of a single audio filter, viewed in KSStudio.exe, available as part of the Windows Driver Kit. • The topology provides a detailed map of how data flows; for capture, from the hardware through the driver to the operating system; for render, from the operating system through the driver to the hardware. • Topology is exposed by the audio driver.

  12. More on Topology • Driver changes might change topology: • If a driver version changes, it might or might not affect the topology exposed by any given hardware. • Class drivers use other information: • The Microsoft USB audio class driver uses information in the USB descriptor (stored in the USB audio device) to decide what topology to expose. If this changes, the topology might change. • The Microsoft HD Audio class driver uses information in the HD Audio pin configuration registers (usually stored in the motherboard BIOS) to decide what topology to expose. If this changes, the topology will probably change. • Some third-party HD Audio drivers also use the pin configuration registers. • Jack presence detection: • Some hardware can detect when a jack is plugged in. • Windows Vista allows the driver to expose filters dynamically. • Some HDMI drivers use this dynamic behavior based on an HDMI handshake. • Always plug in all audio jacks - including HDMI - when running any audio test. • Use mmsys.cpl to verify that there are no "unplugged" audio endpoints.

  13. Best Practices on Topology • If you do any of these, export a new log: • Change the USB descriptor in a USB audio device. • Change the HD Audio pin configuration in the BIOS. • Install a new version of an audio driver. • Always do this: • Plug in all audio jacks before running any audio test. • Verify in mmsys.cpl that no jacks are "unplugged“. • Verify in mmsys.cpl that the listed audio endpoints are sensible.

  14. Unplugged Endpoint in mmsys.cpl

  15. Problems Reading/Writing File

  16. Problems Reading/Writing File • Could not import from file (...) (error 0x8007....) • Export dry run failed (...) (error 0x8007....) • 0x80070002 is ERROR_FILE_NOT_FOUND • 0x80070005 is ERROR_ACCESS_DENIED Fidelity Test runs on the system under test... (has different C:, D:, ... drives than the studio machine) ... as local user .\DTMLLUAdminUser (will likely not have permission to \\server\share paths) Best practice: Place the file on the C: drive of the system under test

  17. Requirement Mismatch • "Requirements in the log do not match requirements for this test pass" • Importing basic log into premium submission? • Importing desktop log into mobile submission... or vice versa. • Look at REQUIREMENTS: and REPLAYED: REQUIREMENTS: log lines. • Note that the Fidelity requirements are different for (basic/premium) (desktop/mobile). • A premium logcan be imported into a basic submission, but everything else must match.

  18. Device or Topology Mismatch • "Some devices in this SUT, selected for test, do not appear in the log file" • "This log file contains devices that do not exist in the SUT" • This means there is a mismatch, either in the list of PnP IDs, or in some device's topology. • Make sure all jacks are plugged in; confirm via mmsys.cpl. • If that doesn't fix it, look at the DEVICE-INFO: and REPLAYED: DEVICE-INFO: lines - compare the PnP IDs. • If those all match, look at the Topology hashes and find the ones that don't match; then look at the Topology: lines and break them out.

  19. Example • An import fails with "This log file contains devices that do not exist in the SUT" • Compare DEVICE-INFO lines first: DEVICE-INFO: HDAUDIO\FUNC_01&VEN_VVVV&DEV_DDDD&SUBSYS_SSSSSSSS&REV_RRRR (Topology SHA-1 hash: f0a5d91d8a1497db91147431472a7535e5e1853) REPLAYED: DEVICE-INFO: HDAUDIO\FUNC_01&VEN_VVVV&DEV_DDDD&SUBSYS_SSSSSSSS&REV_RRRR (Topology SHA-1 hash: 62d23834359a8c8842bdc7e468ed4b4f88591) • The PnP IDs have been sanitized, but they matched (trust me.) The Topology hashes, on the other hand, don't!

  20. Example (continued) • Topology in SUT Topology: HD Audio CD in capture mixer (Pins: Filter, CD Audio; Nodes: CD Volume, CD Mute; Connections: CD Audio => CD Volume(1), CD Mute(0) => Filter, CD Volume(0) => CD Mute(1); ); HD Audio CD in capture (Pins: Recording Control, Filter; Nodes: Unnamed; Connections: Filter => Unnamed(1), Unnamed(0) => Recording Control; ); HD Audio Headphone mixer (Pins: Filter, Headphones; Nodes: Speakers, Master Mute; Connections: Filter => Speakers(1), Master Mute(0) => Headphones, Speakers(0) => Master Mute(1); ); HD Audio Headphone (Pins: PC Speaker, Filter; Nodes: HD Audio line out; Connections: PC Speaker => HD Audio line out(1), HD Audio line out(0) => Filter; ); HD Audio Speaker mixer (Pins: Filter, Speakers; Nodes: Speakers, Master Mute; Connections: Filter => Speakers(1), Master Mute(0) => Speakers, Speakers(0) => Master Mute(1); ); HD Audio Microphone mixer (Pins: Filter, Microphone; Nodes: Mic Volume, Mic Mute, Microphone Boost; Connections: Microphone => Mic Volume(1), Microphone Boost(0) => Filter, Mic Mute(0) => Microphone Boost(1), Mic Volume(0) => Mic Mute(1); ); HD Audio Microphone (Pins: Recording Control, Filter; Nodes: Unnamed; Connections: Filter => Unnamed(1), Unnamed(0) => Recording Control; ); HD Audio Digital in mixer (Pins: Filter, Digital Input Device (SPDIF); Nodes: ; Connections: Digital Input Device (SPDIF) => Filter; ); HD Audio Digital in (Pins: Filter, Filter; Nodes: SPDIF Interface; Connections: Filter => SPDIF Interface(1), SPDIF Interface(0) => Filter; ); HD Audio SPDIF out mixer (Pins: Filter, Digital Output Device (SPDIF); Nodes: Master Mute; Connections: Filter => Master Mute(1), Master Mute(0) => Digital Output Device (SPDIF); ); HD Audio SPDIF out (Pins: Filter, Filter; Nodes: SPDIF Interface; Connections: Filter => SPDIF Interface(1), SPDIF Interface(0) => Filter; ); • Topology from file REPLAYED: Topology: HD Audio CD in capture mixer (Pins: Filter, CD Audio; Nodes: CD Volume, CD Mute; Connections: CD Audio => CD Volume(1), CD Mute(0) => Filter, CD Volume(0) => CD Mute(1); ); HD Audio CD in capture (Pins: Recording Control, Filter; Nodes: Unnamed; Connections: Filter => Unnamed(1), Unnamed(0) => Recording Control; ); HD Audio Headphone mixer (Pins: Filter, Headphones; Nodes: Speakers, Master Mute; Connections: Filter => Speakers(1), Master Mute(0) => Headphones, Speakers(0) => Master Mute(1); ); HD Audio Headphone (Pins: PC Speaker, Filter; Nodes: HD Audio line out; Connections: PC Speaker => HD Audio line out(1), HD Audio line out(0) => Filter; ); HD Audio Speaker mixer (Pins: Filter, Speakers; Nodes: Speakers, Master Mute; Connections: Filter => Speakers(1), Master Mute(0) => Speakers, Speakers(0) => Master Mute(1); ); HD Audio Speaker (Pins: PC Speaker, Filter; Nodes: HD Audio line out; Connections: PC Speaker => HD Audio line out(1), HD Audio line out(0) => Filter; );HD Audio Microphone mixer (Pins: Filter, Microphone; Nodes: Mic Volume, Mic Mute, Microphone Boost; Connections: Microphone => Mic Volume(1), Microphone Boost(0) => Filter, Mic Mute(0) => Microphone Boost(1), Mic Volume(0) => Mic Mute(1); ); HD Audio Microphone (Pins: Recording Control, Filter; Nodes: Unnamed; Connections: Filter => Unnamed(1), Unnamed(0) => Recording Control; ); HD Audio Digital in mixer (Pins: Filter, Digital Input Device (SPDIF); Nodes: ; Connections: Digital Input Device (SPDIF) => Filter; ); HD Audio Digital in (Pins: Filter, Filter; Nodes: SPDIF Interface; Connections: Filter => SPDIF Interface(1), SPDIF Interface(0) => Filter; ); HD Audio SPDIF out mixer (Pins: Filter, Digital Output Device (SPDIF); Nodes: Master Mute; Connections: Filter => Master Mute(1), Master Mute(0) => Digital Output Device (SPDIF); ); HD Audio SPDIF out (Pins: Filter, Filter; Nodes: SPDIF Interface; Connections: Filter => SPDIF Interface(1), SPDIF Interface(0) => Filter; );

  21. Parsing Topology • That's kind of daunting, so let's break it down: each line contains several filters. • Each filter looks like: • Filter name (Pins: ...; Nodes: ...; Connections: ...; ); • Each filter corresponds to a KSStudio block. • Recommended legible layout: Filter name ( Pins: Pin 1, Pin 2, ...; (these are the things on the outside of the block) Nodes: Node 1, Node 2, ...; (these are the things on the inside of the block) Connections:(Nodes have two sides, Node(0) and Node(1); Pins have one side) Pin 1 => Node 1(1), Node 1(0) => Node 2(0), ...; ); • Parse both topologies into the legible layout, then use a "diff" tool to see what changed (various tools available).

  22. Example (continued) • Topology in SUT HD Audio CD in capture mixer ( Pins: Filter, CD Audio; Nodes: CD Volume, CD Mute; Connections: CD Audio => CD Volume(1), CD Mute(0) => Filter, CD Volume(0) => CD Mute(1); ); HD Audio CD in capture ( Pins: Recording Control, Filter; Nodes: Unnamed; Connections: Filter => Unnamed(1), Unnamed(0) => Recording Control; ); ... (etc.) • Topology from file HD Audio CD in capture mixer ( Pins: Filter, CD Audio; Nodes: CD Volume, CD Mute; Connections: CD Audio => CD Volume(1), CD Mute(0) => Filter, CD Volume(0) => CD Mute(1); ); HD Audio CD in capture ( Pins: Recording Control, Filter; Nodes: Unnamed; Connections: Filter => Unnamed(1), Unnamed(0) => Recording Control; ); ... (etc.)

  23. What's the Difference? • The following filter was exposed when the exported log file was created, but is not exposed in the system under test: HD Audio Speaker ( Pins: PC Speaker, Filter; Nodes: HD Audio line out; Connections: PC Speaker => HD Audio line out(1), HD Audio line out(0) => Filter; ); • Diagnosis: there's something wrong with the "Speaker" endpoint, which is actually a line out. Checking mmsys.cpl confirms the diagnosis; the "Speaker" endpoint is listed as "Not plugged in."

  24. Online Resources • Audio Fidelity Testing http://www.microsoft.com/whdc/whql/audiofidelity.mspx • Windows Logo Kit Requirements http://www.microsoft.com/whdc/winlogo/hwrequirements.mspx • Windows Driver Kit / Windows Logo Kit https://connect.microsoft.com/site/sitehome.aspx?SiteID=148 • System Error Codes http://msdn2.microsoft.com/en-us/library/ms681381.aspx

  25. Disclaimer • © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related