#!/bin/sh -e
#
# Copyright 2017-2020 RnD Center "ELVEES", JSC
# SPDX-License-Identifier: BSD-2-Clause
#
# Author: Alexey Kiselev <akiselev@elvees.com>
#
# MCom-02 vpoutdrm driver test
#
# TODO: Add support for LCD testing
#

CARD='/sys/class/drm/card0-HDMI-A-1-HDMI'
STATUS=$(cat ${CARD}/status)

echo 'HDMI status: '${STATUS}
if [ ${STATUS} != "connected" ]; then
    exit 1
fi

CONNECTOR=21
MODES='640x480-60 800x600-60 1024x768-60 1280x720-60 1920x1080-60'

set +e
for MODE in ${MODES}; do
    # send SIGINT as Ctrl+C
    timeout -s SIGINT 5 modetest -M vpout-drm -s ${CONNECTOR}:${MODE}
done
set -e

SAMPLE_DURATION=5
SAMPLE_WIDTH=1280
SAMPLE_HEIGHT=720
SAMPLE_FILE=$(mktemp /tmp/hdmitest.raw.XXXXXX)

trap 'rm -f ${SAMPLE_FILE}' INT TERM EXIT

ffmpeg -loglevel error -y -f lavfi \
    -i testsrc=duration=${SAMPLE_DURATION}:size=${SAMPLE_WIDTH}x${SAMPLE_HEIGHT} \
    -f rawvideo -pix_fmt bgra ${SAMPLE_FILE}

ffmpeg -loglevel error -f rawvideo -pix_fmt bgra \
    -s ${SAMPLE_WIDTH}x${SAMPLE_HEIGHT} -re -i ${SAMPLE_FILE} \
    -f fbdev /dev/fb0
