OggOpus/testvectors

From XiphWiki

< OggOpus(Difference between revisions)
Jump to: navigation, search
(link to greg's file collection)
 
(5 intermediate revisions not shown)
Line 1: Line 1:
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)
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)
 +
 +
Greg is collecting a draft file set at https://people.xiph.org/~greg/opus_testvectors/
 +
* All test vectors should be chained files with at least two parts
* 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)
** 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")
+
* Pre-skip (set large pre-skip with a chime "if you just heard a chime, your player is broken")
* Multichannel
* Multichannel
** Multichannel stereo (e.g. mono+mono)
** Multichannel stereo (e.g. mono+mono)
-
** Multichannel w/pregap and random channel maps
+
** Multichannel w/pre-skip and random channel maps
** Multichannel with silent channels
** Multichannel with silent channels
-
*** Totally silent multichannel
+
*** Totally silent multichannel (Should this one be invalid?)
 +
** Multichannel with repeated channels (i.e. one stream used for multiple channels)
** Multichannel with 256 channels
** Multichannel with 256 channels
** Mapping tests for the Vorbis mappings (e.g. name of the speaker spoken by each speaker)
** 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.
* 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 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.
* Header-gain set very low with an input that will clip a decoder if the header gain is not done internally.
 +
* Header-gain set very low, and R128_TRACK_GAIN to normalize it
 +
** matching WAV outputs ... but matching to what?
* Single packet per page
* Single packet per page
* Utterly stuffed pages with constant continued pages
* Utterly stuffed pages with constant continued pages
Line 24: Line 27:
* Stereo files using many mono frames at the beginning/end
* Stereo files using many mono frames at the beginning/end
* OpusTags comment values containing very large nonsense comments, duplicate comment values etc.
* OpusTags comment values containing very large nonsense comments, duplicate comment values etc.
 +
* Files with non-zero initial granulepos, pre-skip, trimmed last page to check duration calculation
-
* Illegal test vectors that must fail
+
=== Illegal test vectors that MUST fail ===
-
** Zero streams (N=0)
+
* Zero streams (N=0)
-
** Too many two-output streams
+
* Too many two-output streams
-
*** M>N
+
** M>N
-
*** M<=N but M+N>255
+
** M<=N but M+N>255
-
** Channels mapped to nonexistent stream indices (255 > index >= M+N)
+
* Channels mapped to nonexistent stream indices (255 > index >= M+N)
-
** Illegal OpusTags comments
+
* Illegal OpusTags comments
-
*** Total length larger or shorter than the packet
+
** Total length larger or shorter than the packet
-
*** Illegal field names
+
** Illegal field names
-
*** Illegal field contents
+
** Illegal field contents
-
*** Illegal field (no "=")
+
** Illegal field (no "=")
-
*** Multiple conflicting ReplayGain comments
+
** Multiple R128_TRACK_GAIN comments (should this be required to fail?)
-
*** ReplayGain comments containing illegal values
+
** R128_TRACK_GAIN comments containing illegal values (should this be required to fail?)
-
**** Weird encodings of correct-looking values?
+
*** Non-ASCII encodings of correct-looking values
-
*All GP==0
+
* All GP==0
 +
* first data granulepos too small
 +
* preskip > final granulepos

Latest revision as of 00:24, 26 June 2012

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)

Greg is collecting a draft file set at https://people.xiph.org/~greg/opus_testvectors/


  • 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)
  • Pre-skip (set large pre-skip with a chime "if you just heard a chime, your player is broken")
  • Multichannel
    • Multichannel stereo (e.g. mono+mono)
    • Multichannel w/pre-skip and random channel maps
    • Multichannel with silent channels
      • Totally silent multichannel (Should this one be invalid?)
    • Multichannel with repeated channels (i.e. one stream used for multiple channels)
    • Multichannel with 256 channels
    • Mapping tests for the Vorbis mappings (e.g. name of the speaker spoken by each speaker)
  • 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.
  • Header-gain set very low, and R128_TRACK_GAIN to normalize it
    • matching WAV outputs ... but matching to what?
  • 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.
  • Files with non-zero initial granulepos, pre-skip, trimmed last page to check duration calculation

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 R128_TRACK_GAIN comments (should this be required to fail?)
    • R128_TRACK_GAIN comments containing illegal values (should this be required to fail?)
      • Non-ASCII encodings of correct-looking values
  • All GP==0
  • first data granulepos too small
  • preskip > final granulepos
Personal tools


Main Page

Xiph.Org Projects

Audio—

Video—

Text—

Container—

Streaming—