12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #!/bin/bash
- #
- # Any copyright is dedicated to the Public Domain.
- # http://creativecommons.org/publicdomain/zero/1.0/
- #
- # Script to generate <video src> reftest files, from corresponding reftest
- # files that use <video poster>.
- #
- # This script expects to be run from this working directory:
- # mozilla-central/layout/reftests/w3c-css/submitted/images3
- #
- # It requires that the tools png2yuv and vpxenc be available, from the
- # Ubuntu packages 'mjpegtools' and 'vpx-tools'. More info here:
- # http://wiki.webmproject.org/howtos/convert-png-frames-to-webm-video
- VIDEO_REFTEST_PATH="../../../webm-video"
- imageFileArr=("colors-16x8.png" "colors-8x16.png")
- numImageFiles=${#imageFileArr[@]}
- # Copy image files, and generate webm files:
- for ((i = 0; i < $numImageFiles; i++)); do
- imageFileName=${imageFileArr[$i]}
- imageDest=$VIDEO_REFTEST_PATH/$imageFileName
- echo "Copying $imageDest."
- hg cp support/$imageFileName $imageDest
- videoDest=`echo $imageDest | sed "s/png/webm/"`
- echo "Generating $videoDest."
- png2yuv -f 1 -I p -b 1 -n 1 -j $imageDest \
- | vpxenc --passes=1 --pass=1 --codec=vp9 --lossless=1 --max-q=0 -o $videoDest -
- hg add $videoDest
- done
- reftestListFileName="$VIDEO_REFTEST_PATH/reftest.list"
- # Loop across all <video poster> tests:
- for origTestName in object-position-png-*p.html; do
- # Find the corresponding reference case:
- origReferenceName=$(echo $origTestName |
- sed "s/p.html/-ref.html/")
- # The generated testcase will have "-webm" instead of "-png", and unlike
- # the original png test, it won't have a single-letter suffix to indicate the
- # particular container element. (since it's unnecessary -- there's only one
- # possible container element for webm, "<video>")
- videoTestName=$(echo $origTestName |
- sed "s/png/webm/" |
- sed "s/p.html/.html/")
- videoReferenceName=$(echo $videoTestName |
- sed "s/.html/-ref.html/")
- # Generate reference file (dropping "support" subdir from image paths):
- echo "Copying $origReferenceName to $VIDEO_REFTEST_PATH."
- videoReferenceFullPath=$VIDEO_REFTEST_PATH/$videoReferenceName
- hg cp $origReferenceName $videoReferenceFullPath
- sed -i "s,support/,," $videoReferenceFullPath
- # Generate testcase
- # (converting <video poster="support/foo.png"> to <video src="foo.webm">):
- echo "Generating $videoTestName from $origTestName."
- videoTestFullPath=$VIDEO_REFTEST_PATH/$videoTestName
- hg cp $origTestName $videoTestFullPath
- sed -i "s/PNG image/WebM video/" $videoTestFullPath
- sed -i "s/poster/src/" $videoTestFullPath
- sed -i "s,support/,," $videoTestFullPath
- sed -i "s/png/webm/" $videoTestFullPath
- sed -i "s/$origReferenceName/$videoReferenceName/" $videoTestFullPath
- # Update reftest manifest:
- annotation="fails-if(layersGPUAccelerated) skip-if(Android||B2G)"
- comment="# Bug 1098417 for across-the-board failure, Bug 1083516 for layersGPUAccelerated failures, Bug 1084564 for Android/B2G failures"
- echo "$annotation == $videoTestName $videoReferenceName $comment" \
- >> $reftestListFileName
- done
|