﻿<?xml version='1.0' encoding='utf-8' standalone='yes'?>
<AxeAssessmentManifest
    xmlns="http://www.microsoft.com/axe/assessment/manifest"
    SchemaVersion="1.1"
    >
  <_locDefinition>
    <_locDefault
        _loc="locNone"
        _locID="strict"
        />
    <_locTag _loc="locData">DisplayName</_locTag>
    <_locTag _loc="locData">Tag</_locTag>
    <_locTag _loc="locData">ToolTip</_locTag>
    <_locTag _loc="locData">Category</_locTag>
    <_locTag _loc="locData">Author</_locTag>
    <_locTag _loc="locData">Copyright</_locTag>
    <_locTag _loc="locData">TestCasename</_locTag>
  </_locDefinition>
  <VersionedId>
    <Guid>{683ee45e-f07f-4dbd-a0f4-a9388f3af6fa}</Guid>
    <Version>
      <Major>10</Major>
      <Minor>0</Minor>
      <Build>17134</Build>
      <Revision>1</Revision>
    </Version>
  </VersionedId>
  <MinimumAxeVersionRequired>
    <Version>
      <Major>10</Major>
      <Minor>0</Minor>
      <Build>17134</Build>
      <Revision>1</Revision>
    </Version>
  </MinimumAxeVersionRequired>
  <Description>
    <ProgrammaticName>MediaPlaybackQuality</ProgrammaticName>
    <DisplayName>Windows 10 Media Playback Quality</DisplayName>
    <ToolTip>Video and audio playback quality assessment. Supports local and streaming scenarios with the Movies and TV app, Groove app and Netflix.</ToolTip>
  </Description>
  <Properties>
    <Author>Microsoft Corporation</Author>
    <Url>https://go.microsoft.com/fwlink/?LinkID=293840</Url>
    <AuthorUrl>https://go.microsoft.com/fwlink/?LinkID=294051</AuthorUrl>
    <UpdateUrl>https://go.microsoft.com/fwlink/?LinkID=294052</UpdateUrl>
    <Copyright>© 2013 Microsoft Corporation. All rights reserved.</Copyright>
    <OnlyForProcessor>
      <X86/>
      <X64/>
      <ARM64/>
    </OnlyForProcessor>
    <BasicDisplayWarn/>
    <ExitValueMeaning>
      <ZeroIsSuccess/>
    </ExitValueMeaning>
    <RequiresX86EmulationOnArm/>
  </Properties>
  <PresentationHints>
    <Columns>
      <Column>
        <Metric>TotalPlaybackDuration</Metric>
        <PageLink>Playback-Page</PageLink>
        <Charted>true</Charted>
      </Column>
      <Column>
        <Metric>AudioTotal</Metric>
        <PageLink>Audio-Page</PageLink>
        <Charted>true</Charted>
      </Column>
      <Column>
        <Metric>VideoTotal</Metric>
        <PageLink>Video-Page</PageLink>
        <Charted>true</Charted>
      </Column>
    </Columns>
    <Pages>
      <Page>
        <Description>
          <ProgrammaticName>Playback-Page</ProgrammaticName>
          <DisplayName>Playback Statistics</DisplayName>
        </Description>
        <Groups>
          <Group>
            <Description>
              <DisplayName>Playback Statistics</DisplayName>
            </Description>
            <Columns>
              <Column>
                <Metric>StartupDuration</Metric>
                <Charted>true</Charted>
              </Column>
              <Column>
                <Metric>PlaybackDuration</Metric>
                <Charted>true</Charted>
              </Column>
            </Columns>
          </Group>
        </Groups>
      </Page>
      <Page>
        <Description>
          <ProgrammaticName>Audio-Page</ProgrammaticName>
          <DisplayName>Audio statistics</DisplayName>
        </Description>
        <Groups>
          <Group>
            <Description>
              <DisplayName>Audio statistics</DisplayName>
            </Description>
            <Columns>
              <Column>
                <Metric>CrossProcessAudioGlitch</Metric>
                <Charted>true</Charted>
              </Column>
              <Column>
                <Metric>KernelStreamingEndpointAudioGlitch</Metric>
                <Charted>true</Charted>
              </Column>
            </Columns>
          </Group>
        </Groups>
      </Page>
      <Page>
        <Description>
          <ProgrammaticName>Frame-Page</ProgrammaticName>
          <DisplayName>Late frame</DisplayName>
        </Description>
        <Groups>
          <Group>
            <Description>
              <DisplayName>Late frame statistics</DisplayName>
            </Description>
            <Columns>
              <Column>
                <Metric>FrameLateAverage</Metric>
                <Charted>true</Charted>
              </Column>
              <Column>
                <Metric>FrameLateMin</Metric>
                <Charted>true</Charted>
              </Column>
              <Column>
                <Metric>FrameLateMax</Metric>
                <Charted>true</Charted>
              </Column>
              <Column>
                <Metric>FrameLateSum</Metric>
                <Charted>true</Charted>
              </Column>
            </Columns>
          </Group>
        </Groups>
      </Page>
      <Page>
        <Description>
          <ProgrammaticName>Video-Page</ProgrammaticName>
          <DisplayName>Video statistics</DisplayName>
        </Description>
        <Groups>
          <Group>
            <Description>
              <DisplayName>Video statistics</DisplayName>
            </Description>
            <Columns>
              <Column>
                <Metric>VideoFrameGlitch</Metric>
                <PageLink>Frame-Page</PageLink>
                <Charted>true</Charted>
              </Column>
              <Column>
                <Metric>VideoSchedGlitch</Metric>
                <Charted>true</Charted>
              </Column>
              <Column>
                <Metric>VideoDropped</Metric>
                <Charted>true</Charted>
              </Column>
            </Columns>
          </Group>
        </Groups>
      </Page>
    </Pages>
  </PresentationHints>
  <MetricDefinitions>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>TotalPlaybackDuration</ProgrammaticName>
        <DisplayName>Total playback duration</DisplayName>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>Seconds</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>2</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>StartupDuration</ProgrammaticName>
        <DisplayName>Startup duration</DisplayName>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>Seconds</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>0</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>PlaybackDuration</ProgrammaticName>
        <DisplayName>Steady state duration</DisplayName>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>Seconds</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>CrossProcessAudioGlitch</ProgrammaticName>
        <DisplayName>Cross-process audio glitches</DisplayName>
        <ToolTip>Cross-process audio glitches are glitches between the audio client (usually the app) and the audio engine (usually in audiodg.exe). These are typically introduced when a playback app does not provide audio data to the audio engine in time.</ToolTip>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>count</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>KernelStreamingEndpointAudioGlitch</ProgrammaticName>
        <DisplayName>Kernel-streaming endpoint audio glitches</DisplayName>
        <ToolTip>Kernel-streaming endpoint glitches are glitches between the audio engine (usually in audiodg.exe) and the audio driver. These are typically introduced when the audio engine does not provide audio data to the speaker in time.</ToolTip>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>count</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>AudioTotal</ProgrammaticName>
        <DisplayName>Total audio glitches</DisplayName>
        <ToolTip>Sum of all Cross-process and Kernel-streaming endpoint audio glitches.  Audio glitches are discontinuities in the audio stream that may or may not be audible by the end user.</ToolTip>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>count</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>VideoSchedGlitch</ProgrammaticName>
        <DisplayName>DWM schedule glitches</DisplayName>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>count</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>VideoDropped</ProgrammaticName>
        <DisplayName>Dropped video frames</DisplayName>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>count</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>VideoFrameGlitch</ProgrammaticName>
        <DisplayName>Video glitches</DisplayName>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>count</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>VideoTotal</ProgrammaticName>
        <DisplayName>Total video glitches</DisplayName>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>count</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>FrameLateAverage</ProgrammaticName>
        <DisplayName>Average frames late</DisplayName>
        <ToolTip>The number of frames late indicates the severity of the video glitches.  The higher the frames late value, the more severe and perceivable the glitch is.</ToolTip>
      </Description>
      <Type>
        <Double/>
      </Type>
      <Units>count</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <DecimalPlaces>2</DecimalPlaces>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>FrameLateMin</ProgrammaticName>
        <DisplayName>Minimum frames late</DisplayName>
        <ToolTip>The number of frames late indicates the severity of the video glitches.  The higher the frames late value, the more severe and perceivable the glitch is.</ToolTip>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>count</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>FrameLateMax</ProgrammaticName>
        <DisplayName>Maximum frames late</DisplayName>
        <ToolTip>The number of frames late indicates the severity of the video glitches.  The higher the frames late value, the more severe and perceivable the glitch is.</ToolTip>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>count</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
    <MetricDefinition>
      <Description>
        <ProgrammaticName>FrameLateSum</ProgrammaticName>
        <DisplayName>Sum frames late</DisplayName>
        <ToolTip>The number of frames late indicates the severity of the video glitches.  The higher the frames late value, the more severe and perceivable the glitch is.</ToolTip>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Units>count</Units>
      <PrimaryStatistic>
        <Mean/>
      </PrimaryStatistic>
      <SecondaryStatistic>
        <None/>
      </SecondaryStatistic>
      <Ordinal>1</Ordinal>
    </MetricDefinition>
  </MetricDefinitions>
  <ParameterDefinitions>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>PlaybackDuration</ProgrammaticName>
        <DisplayName>Playback Duration (minutes)</DisplayName>
        <ToolTip>Specify for how long content will be played. The range is between 1 and 10 inclusive.</ToolTip>
        <Categories>
          <Category>Playback</Category>
        </Categories>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <DefaultValue>3</DefaultValue>
      <BenchmarkValue>3</BenchmarkValue>
      <Constraints>
        <MinimumConstraint>1</MinimumConstraint>
        <MaximumConstraint>10</MaximumConstraint>
      </Constraints>
      <CommandLineFormat>-PlaybackDuration {0}</CommandLineFormat>
      <Ordinal>0</Ordinal>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>PlaybackSource</ProgrammaticName>
        <DisplayName>Playback source</DisplayName>
        <ToolTip>Select content to play.</ToolTip>
        <Categories>
          <Category>Playback</Category>
        </Categories>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Enumerations>
        <Enumeration>
          <Description>
            <ProgrammaticName>CustomAudio</ProgrammaticName>
            <DisplayName>Custom Streaming Audio</DisplayName>
          </Description>
          <Value>-6</Value>
        </Enumeration>
        <Enumeration>
          <Description>
            <ProgrammaticName>DefaultAudio</ProgrammaticName>
            <DisplayName>Default Streaming Audio</DisplayName>
          </Description>
          <Value>-5</Value>
        </Enumeration>
        <Enumeration>
          <Description>
            <ProgrammaticName>Netflix</ProgrammaticName>
            <DisplayName>Netflix</DisplayName>
          </Description>
          <Value>-4</Value>
        </Enumeration>
        <Enumeration>
          <Description>
            <ProgrammaticName>DefaultStreaming</ProgrammaticName>
            <DisplayName>Default Streaming (Movies&amp;TV app Halo 2 clip)</DisplayName>
          </Description>
          <Value>-3</Value>
        </Enumeration>
        <Enumeration>
          <Description>
            <ProgrammaticName>CustomStreaming</ProgrammaticName>
            <DisplayName>Custom Streaming</DisplayName>
          </Description>
          <Value>-2</Value>
        </Enumeration>
        <Enumeration>
          <Description>
            <ProgrammaticName>CustomLocal</ProgrammaticName>
            <DisplayName>Custom Local</DisplayName>
          </Description>
          <Value>-1</Value>
        </Enumeration>
        <Enumeration>
          <Description>
            <ProgrammaticName>DefaultLocalAutoSelect</ProgrammaticName>
            <DisplayName>Default Local Autoselect (based on native screen resolution)</DisplayName>
          </Description>
          <Value>0</Value>
        </Enumeration>
        <Enumeration>
          <Description>
            <ProgrammaticName>DefaultLocal720p</ProgrammaticName>
            <DisplayName>Default Local 720p</DisplayName>
          </Description>
          <Value>720</Value>
        </Enumeration>
        <Enumeration>
          <Description>
            <ProgrammaticName>DefaultLocal1080p</ProgrammaticName>
            <DisplayName>Default Local 1080p</DisplayName>
          </Description>
          <Value>1080</Value>
        </Enumeration>
      </Enumerations>
      <Inclusion>
        <Required/>
      </Inclusion>
      <DefaultValue>1080</DefaultValue>
      <BenchmarkValue>1080</BenchmarkValue>
      <CommandLineFormat>-PlaybackSource {0}</CommandLineFormat>
      <Ordinal>2</Ordinal>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>CustomPlaybackSource</ProgrammaticName>
        <DisplayName>Custom playback source</DisplayName>
        <ToolTip>Custom content will be played only if custom is selected in the "Playback Source" dropbox.</ToolTip>
        <Categories>
          <Category>Playback</Category>
        </Categories>
      </Description>
      <Type>
        <FilePath/>
      </Type>
      <CommandLineFormat>-CustomPlaybackSource "{0}"</CommandLineFormat>
      <Ordinal>3</Ordinal>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>ExtendedLogs</ProgrammaticName>
        <DisplayName>Gather additionnal logs</DisplayName>
        <ToolTip>Gather additionnal logs for diagnostics (example: msinfo32, dxdiag, etc.)</ToolTip>
        <Categories>
          <Category>Logging</Category>
        </Categories>
      </Description>
      <Type>
        <Boolean/>
      </Type>
      <CommandLineFormat>-ExtendedLogs</CommandLineFormat>
      <Ordinal>4</Ordinal>
    </ParameterDefinition>
    <ParameterDefinition>
      <Description>
        <ProgrammaticName>TraceOption</ProgrammaticName>
        <DisplayName>Tracing option</DisplayName>
        <ToolTip>Select level of ETW tracing.</ToolTip>
        <Categories>
          <Category>Logging</Category>
        </Categories>
      </Description>
      <Type>
        <Int32/>
      </Type>
      <Visibility>
        <Hidden/>
      </Visibility>
      <Enumerations>
        <Enumeration>
          <Description>
            <ProgrammaticName>Light</ProgrammaticName>
            <DisplayName>Light</DisplayName>
          </Description>
          <Value>1</Value>
        </Enumeration>
        <Enumeration>
          <Description>
            <ProgrammaticName>Verbose</ProgrammaticName>
            <DisplayName>Verbose</DisplayName>
          </Description>
          <Value>2</Value>
        </Enumeration>
      </Enumerations>
      <DefaultValue>1</DefaultValue>
      <BenchmarkValue>1</BenchmarkValue>
      <CommandLineFormat>-TraceOption {0}</CommandLineFormat>
      <Ordinal>5</Ordinal>
    </ParameterDefinition>
  </ParameterDefinitions>
  <Execution>
    <CreateProcess>
      <ApplicationName>%AssessmentSystemPath%\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy bypass -Command "&amp; {get-childitem * -recurse | unblock-file}" ; %AssessmentSystemPath%\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy bypass -Command .\MediaQuality.ps1</ApplicationName>
      <CreateNoWindow/>
    </CreateProcess>
  </Execution>
</AxeAssessmentManifest>
