tree: 4e27bd4d504f5d5f3636057ee55ecf984bba978e [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. four-colors-flip.avif
  7. four-colors-flip.gif
  8. four-colors-full-range-bt2020-pq-444-10bpc.avif
  9. four-colors-limited-range-420-8bpc.avif
  10. four-colors-limited-range-420-8bpc.jpg
  11. four-colors-limited-range-420-8bpc.webp
  12. four-colors-limited-range-422-8bpc.avif
  13. four-colors-limited-range-444-8bpc.avif
  14. four-colors.avif
  15. four-colors.gif
  16. four-colors.jpg
  17. four-colors.mp4
  18. four-colors.png
  19. four-colors.webp
  20. h264.annexb
  21. h264.mp4
  22. image-decoder-image-orientation-none.html
  23. image-decoder-utils.js
  24. image-decoder.any.js
  25. META.yml
  26. pattern.png
  27. README.md
  28. sfx-opus.ogg
  29. utils.js
  30. video-decoder.any.js
  31. video-encoder-config.any.js
  32. video-encoder.any.js
  33. video-frame-serialization.any.js
  34. video-frame.any.js
  35. videoDecoder-codec-specific.any.js
  36. videoFrame-canvasImageSource.html
  37. videoFrame-createImageBitmap.any.js
  38. videoFrame-drawImage.any.js
  39. videoFrame-readInto.any.js
  40. videoFrame-texImage.any.js
  41. vp9.mp4
  42. 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.

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-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