File: encode-decode

package info (click to toggle)
aom 3.13.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 38,340 kB
  • sloc: ansic: 415,031; cpp: 210,937; asm: 9,453; python: 4,479; perl: 2,339; sh: 1,878; pascal: 345; makefile: 57; javascript: 32
file content (31 lines) | stat: -rwxr-xr-x 912 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#/bin/sh
# Tests that a test video can be encoded and then decoded with aom-tools
set -e

if [ -z "$AUTOPKGTEST_TMP" ]; then
	echo 'Required env var "$AUTOPKGTEST_TMP" not set' >&2
	exit 1
fi

# Generate yuv test video with ffmpeg
cd "$AUTOPKGTEST_TMP"
ffmpeg -y -f lavfi -i testsrc=duration=1:size=320x240:rate=30 -pix_fmt yuv420p input.y4m

# Encode and decode it with aom
aomenc -o encoded.webm input.y4m
aomdec -o decoded.yuv encoded.webm

# Smoke test file sizes
TARGET_SIZE=$((320*240*30*3/2))
INPUT_SIZE=$(stat -c '%s' input.y4m)
DECODED_SIZE=$(stat -c '%s' decoded.yuv)

if [ $(echo "($INPUT_SIZE / $TARGET_SIZE - 1) ^ 2 < 0.1" | bc) -ne 1 ]; then
	echo "Bad input file size ($INPUT_SIZE, should be near $TARGET_SIZE)" >&2
	exit 1
fi

if [ $(echo "($DECODED_SIZE / $TARGET_SIZE - 1) ^ 2 < 0.1" | bc) -ne 1 ]; then
	echo "Bad decoded file size ($DECODED_SIZE, should be near $TARGET_SIZE)" >&2
	exit 1
fi