tree: aff2c9372d24ce13ba5fb7ad94ac4f17aa5baf4a [path history] [tgz]
  1. audio-data-serialization.any.js
  2. audio-data.any.js
  3. audio-decoder.any.js
  4. audio-encoder-config.any.js
  5. audio-encoder.any.js
  6. audioDecoder-codec-specific.any.js
  7. av1.mp4
  8. chunk-serialization.any.js
  9. encoded-audio-chunk.any.js
  10. encoded-video-chunk.any.js
  11. four-colors-flip.avif
  12. four-colors-flip.gif
  13. four-colors-full-range-bt2020-pq-444-10bpc.avif
  14. four-colors-limited-range-420-8bpc.avif
  15. four-colors-limited-range-420-8bpc.jpg
  16. four-colors-limited-range-420-8bpc.webp
  17. four-colors-limited-range-422-8bpc.avif
  18. four-colors-limited-range-444-8bpc.avif
  19. four-colors.avif
  20. four-colors.gif
  21. four-colors.jpg
  22. four-colors.mp4
  23. four-colors.png
  24. four-colors.webp
  25. h264.annexb
  26. h264.mp4
  27. image-decoder-image-orientation-none.html
  28. image-decoder-utils.js
  29. image-decoder.any.js
  30. META.yml
  31. pattern.png
  32. README.md
  33. sfx-aac.mp4
  34. sfx-alaw.wav
  35. sfx-mulaw.wav
  36. sfx-opus.ogg
  37. sfx.adts
  38. sfx.mp3
  39. utils.js
  40. video-decoder.any.js
  41. video-encoder-config.any.js
  42. video-encoder.any.js
  43. video-frame-serialization.any.js
  44. videoDecoder-codec-specific.any.js
  45. videoFrame-alpha.any.js
  46. videoFrame-canvasImageSource.html
  47. videoFrame-copyTo.any.js
  48. videoFrame-createImageBitmap.any.js
  49. videoFrame-drawImage.any.js
  50. videoFrame-texImage.any.js
  51. videoFrame.any.js
  52. vp8.webm
  53. vp9.mp4
  54. webgl-test-utils.js
webcodecs/README.md

WebCodecs Test Files

Instructions

To add, update or remove a test file, please update the list below.

Please provide full reference and steps to generate the test file so that any people can regenerate or update the file in the future.

Notes

  • When updating the sample offsets and descriptions for tests using mp4 files, it's easiest to use mp4box.js.
    • Sample offsets can be copied from the “Sample View” tab after unchecking all but offset and size. Use a multi-line edit mode and clang-format to quickly format entries.
    • Description entries can be found under moov.trak.mdia.minf.stbl.stsd in box view.
      • avc1.avcC has an offset, size in the same view. Add 8 to offset and subtract 8 from the size to get the values the tests want.
    • If you use ffprobe -show_packets to get sample offsets, you may need to add 4 to each pos value. You can tell if you need to by whether or not tests pass.

List of Test Files

four-colors.png

Generated using MSPaint like a true professional.

four-colors.avif

Lossless encoding must be used to ensure colors are perfect.

avifenc -l four-colors.png -o four-colors.avif 

four-colors.webp

Lossless encoding must be used to ensure colors are perfect.

ffmpeg -i four-colors.png -lossless 1 -y four-colors.webp 

four-colors-limited-range-420-8bpc.webp

ffmpeg -i four-colors.png -pix_fmt yuv420p four-colors-limited-range-420-8bpc.webp 

four-colors.gif

High quality encoding must be used to ensure colors are perfect.

cp four-colors.png four-colors2.png gifski -o four-colors.gif four-colors*.png 

four-colors-flip.gif

High quality encoding must be used to ensure colors are perfect.

ffmpeg -i four-colors.png -vf "rotate=PI" four-colors2.png gifski -o four-colors-flip.gif four-colors*.png 

four-colors-flip.avif

ffmpeg -i four-colors-flip.gif -vcodec libaom-av1 -crf 16 four-colors-flip.mp4 mp4box -add-image ref:primary:tk=1:samp=1 -ab avis -ab avif -ab miaf -brand avis four-colors-flip.mp4 -out four-colors-flip.avif 

four-colors-limited-range-(420|422|444)-8bpc.avif

avifenc -r l -d 8 -y 420 -s 0 four-colors.png four-colors-limited-range-420-8bpc.avif avifenc -r l -d 8 -y 422 -s 0 four-colors.png four-colors-limited-range-422-8bpc.avif avifenc -r l -d 8 -y 444 -s 0 four-colors.png four-colors-limited-range-444-8bpc.avif 

four-colors-full-range-bt2020-pq-444-10bpc.avif

avifenc -r f -d 10 -y 444 -s 0 --nclx 9/16/9 four-colors.png four-colors-full-range-bt2020-pq-444-10bpc.avif 

four-colors.jpg

Used Sqoosh.app with MozJPEG compression and RGB channels. exiftool was then used to add an orientation marker.

exiftool -Orientation=1 -n four-colors.jpg 

four-colors-limited-range-420-8bpc.jpg

Used Sqoosh.app with MozJPEG compression and YUV channels.

four-colors.mp4

Used a custom tool to convert four-colors.avif into a .mp4 file.

h264.mp4

ffmpeg -f lavfi -i testsrc=rate=10:n=1 -t 1 -pix_fmt yuv420p -vcodec h264 -tune zerolatency h264.mp4 

h264.annexb

ffmpeg -i h264.mp4 -codec copy -bsf:v h264_mp4toannexb -f h264 h264.annexb 

sfx.adts

sox -n -r 48000 sfx.wav synth 1 sine 480 ffmpeg -i sfx.wav -frames:a 10 -acodec aac -b:a 96K sfx.adts 

sfx-alaw.wav

sox -n -r 48000 sfx.wav synth 1 sine 480 ffmpeg -i sfx.wav -frames:a 10 -acodec pcm_alaw sfx-alaw.wav 

sfx.mp3

sox -n -r 48000 sfx.wav synth 1 sine 480 ffmpeg -i sfx.wav -frames:a 10 -acodec libmp3lame -b:a 96K sfx.mp3 

sfx-aac.mp4

sox -n -r 48000 sfx.wav synth 1 sine 480 ffmpeg -i sfx.wav -frames:a 10 -acodec aac -b:a 96K sfx-aac.mp4 

sfx-mulaw.wav

sox -n -r 48000 sfx.wav synth 1 sine 480 ffmpeg -i sfx.wav -frames:a 10 -acodec pcm_mulaw sfx-mulaw.wav 

sfx-opus.ogg

sox -n -r 48000 sfx.wav synth 1 sine 480 ffmpeg -i sfx.wav -frames:a 10 -acodec libopus -b:a 96K sfx-opus.ogg 

av1.mp4

ffmpeg -f lavfi -i testsrc=rate=10:n=1 -t 1 -pix_fmt yuv420p -vcodec libaom-av1 av1.mp4 

vp8.webm

ffmpeg -f lavfi -i testsrc=rate=10:n=1 -t 1 -pix_fmt yuv420p -vcodec vp8 vp8.webm 

vp9.mp4

ffmpeg -f lavfi -i testsrc=rate=10:n=1 -t 1 -pix_fmt yuv420p -vcodec vp9 vp9.mp4