#!/sbin/openrc-run description='GPU Screen Recorder User Service' supervisor=supervise-daemon command=/usr/bin/gpu-screen-recorder respawn_delay=5 retry=INT/5 _add_arg() { [ "$2" ] && command_args="${command_args} $1 '$2'" } start_pre() { if [ "${ARGS}" ]; then command_args="${ARGS}" return 0 fi command_args='-v no' _add_arg -w "${VIDEO_INPUT}" _add_arg -region "${VIDEO_REGION}" _add_arg -c "${CONTAINER}" _add_arg -s "${VIDEO_RESOLUTION}" _add_arg -f "${FPS}" _add_arg -cursor "${CURSOR}" _add_arg -restore-portal-session "${RESTORE_PORTAL_SESSION}" if [ "${AUDIO_DEVICES}" ]; then local i for i in ${AUDIO_DEVICES}; do _add_arg -a "${i}" done fi _add_arg -ac "${AUDIO_CODEC}" _add_arg -ab "${AUDIO_BITRATE}" _add_arg -k "${VIDEO_CODEC}" _add_arg -q "${VIDEO_QUALITY}" _add_arg -bm "${VIDEO_BITRATE}" _add_arg -fm "${VIDEO_FRAMERATE}" _add_arg -cr "${VIDEO_COLORRANGE}" _add_arg -tune "${VIDEO_TUNE}" _add_arg -keyint "${VIDEO_KEYFRAME}" _add_arg -encoder "${VIDEO_ENCODER}" _add_arg -fallback-cpu-encoding "${VIDEO_ALLOW_CPU}" _add_arg -r "${REPLAY_SECS}" _add_arg -replay-storage "${REPLAY_STORAGE}" _add_arg -restart-replay-on-save "${REPLAY_CLEAR}" _add_arg -df "${REPLAY_DATEDIRS}" _add_arg -o "${OUTPUT_PATH}" _add_arg -ro "${OUTPUT_DIR}" [ "${EXTRA_ARGS}" ] && command_args="${command_args} ${EXTRA_ARGS}" }