From XiphWiki
< OggOpus
Revision as of 09:12, 17 August 2011 by Gmaxwell (talk | contribs)
Jump to: navigation, search

This page lists test vectors needed for OggOpus which are specific to the Ogg mapping (separate from the opus bitstream test vectors, though they do some bitstream testing as a side efffect)

  • All test vectors should be chained files with at least two parts
    • Chained file where the second link has no pregap and starts with inter frames (to ensure that decoder state is reset)
  • Pregap (set large pre-gap with a chime "if you just heard a chime, your player is broken")
  • Multichannel
    • Multichannel stereo (e.g. mono+mono)
    • Multichannel w/pregap and random channel maps
    • Multichannel with silent channels
      • Totally silent multichannel
    • Multichannel with 256 channels
    • Mapping tests for the Vorbis mappings (e.g. name of the speaker spoken by each speaker)
  • Files with replaygain metadata (esp files which are obviously too quiet/loud without applying replaygain)
    • Multiple identical ReplayGain comments in OpusTags
    • matching unnormalized WAV output.
  • Files with crazy input rate.
  • Header-gain set very high with a very quiet input (silent if you don't implement header gain).
  • Header-gain set very low with an input that will clip a decoder if the header gain is not done internally.
  • Single packet per page
  • Utterly stuffed pages with constant continued pages
  • Pages whose contents are entirely and partially dropped frames (len=0) (maybe redundant with bitstream tests)
  • Files with chimes after the end (testing end length chopping)
  • File with all opus modes and frame sizes
  • Stereo files using many mono frames at the beginning/end
  • OpusTags comment values containing very large nonsense comments, duplicate comment values etc.
  • Illegal test vectors that must fail
    • Zero streams (N=0)
    • Too many two-output streams
      • M>N
      • M<=N but M+N>255
    • Channels mapped to nonexistent stream indices (255 > index >= M+N)
    • Illegal OpusTags comments
      • Total length larger or shorter than the packet
      • Illegal field names
      • Illegal field contents
      • Illegal field (no "=")
      • Multiple conflicting ReplayGain comments
      • ReplayGain comments containing illegal values
        • Weird encodings of correct-looking values?
  • All GP==0