Перейти к файлу
Barret Rennie 482f734a54
Implement shutdown using the Windows API
This is implemented as a trait so that it can be swapped out for a mock
version in integration tests that does not require a full restart.
2020-06-23 21:39:36 -04:00
fxrecorder Mark code sample in config.rs as text 2020-06-16 00:24:19 -04:00
fxrunner Implement shutdown using the Windows API 2020-06-23 21:39:36 -04:00
integration-tests Add an integration test for the handshake 2020-06-16 00:24:19 -04:00
libfxrecord Handshake between the runner and recorder 2020-06-11 14:27:10 -04:00
.gitignore Add a command line interface with structopt 2019-10-08 16:19:45 -04:00
CODE_OF_CONDUCT.md Add code of conduct 2019-08-15 14:20:00 -04:00
Cargo.lock Implement shutdown using the Windows API 2020-06-23 21:39:36 -04:00
Cargo.toml Add an integration test for the handshake 2020-06-16 00:24:19 -04:00
README.md Require Rust 1.39 2020-05-26 01:33:04 -04:00
fxrecord.example.toml Add a command line interface with structopt 2019-10-08 16:19:45 -04:00

README.md

fxrecord

fxrecord is a tool for capturing and analyzing recordings of Firefox desktop startup. It consists of two parts: fxrecorder, which records the output of the reference hardware and does analysis, and fxrunner, which instruments Firefox on the reference hardware.

License

fxrecord is released under the terms of the Mozilla Public License 2.0.

Code of Conduct

This repository follows a code of conduct.

Requirements

Both fxrunner and fxrecorder require Rust 1.39+ for async/await support.

The only supported operating system for fxrunner is Windows 10. It is a statically linked executable with no other dependencies.

fxrecorder is also a statically linked executable, but it has two additional requirements:

fxrecorder presently requires a Windows 10 device as it assumes that DirectShow will be used for video capture. The capture card used while developing fxrecord only supported Windows 10 and therefore was not able to be tested against any other operating system.

Building

fxrecord is built in Rust and uses Cargo. To build for production use, run

cargo +beta build --release

and the binaries will be located in the target/release/ subdirectory. Copy the fxrunner binary to the reference device and the fxrecorder to the recording device.

Configuration

fxrunner requires a configuration file named fxrecord.toml with [fxrunner] and [fxrecorder.recording] sections:

[fxrecorder]
# The host and port that FxRunner is listening on.
host = "127.0.0.1:8888"

[fxrecorder.recording]
# The path to ffmpeg on the file system.
ffmpeg_path = "C:\ffmpeg\ffmepg.exe"

# The size of the video stream.
video_size = { y = 1920, x = 1080 }

# The desired size. If omitted, video_size will be used instead.
output_size = { y = 1366, x = 768 }

# The frame rate to capture at.
frame_rate = 60

# The name of the device to use for capture.
device = "AVerMedia GC551 Video Capture"

# The size of the buffer to use while streaming frames.
buffer_size = "1000M"

fxrunner requires a configuration file named fxrecord.toml with a [fxrunner] section:

[fxrunner]
# The host and port that FxRecorder will be able to connect to.
host = "0.0.0.0:8888"

An example configuration is provided.