Challenge Overview
The Hercules Fog application is a C++ app that can recording both HLS (Http Live Streaming) and Mpeg Dash streams to a local file system for later playback. It has ABR (adaptive bitrate) and a bunch of functionality for dealing with dropped fragments, missing servers, and optimization of the recorded streams. It will be eventually used on a huge number of embedded devices.
The current implementation will run on:
- Windows
- Linux (Ubuntu and Yocto on embedded devices)
- Mac
- Build and run Fog to record streams
- Play back the recorded streams in the modified AAMP player
AAMP
AAMP is a media player that can be used to play the streams that are recorded by Fog. Because a lot of our test streams have DRM attached to them, actual playback isn't always possible. To get around this, we have built a modified version of the player that can be used to test Fog. The modified version will do the same manifest parsing and fragment download / ABR that AAMP normally would do, but the actual fragments aren't played, so it's a good way to test.
Windows Documentation
For this challenge, please create a new "WindowsBuild.md" file that covers all the various setup steps necessary to:
- Build Fog
- Run Fog
- Debug Fog using Visual Studio
MacOS Documentation
Similar to the Windows documentation, please create a new "MacBuild.md" file that covers all the various setup steps necessary to:
- Build Fog
- Run Fog
- Debug Fog using XCode
Linux Documentation
Similar to the Windows and Mac documentation, please create a new "LinuxBuild.md" file that covers all the various setup steps necessary to:
- Build Fog
- Run Fog
- Debug Fog using gdb
We can target Ubuntu 16.04 and the gcc and other tools installed via apt-get for this documentation
Validation Documentation
A separate "AAMPValidation.md" document must be provided that describes how to use the modified AAMP player (running on Linux) to connect to Fog running on Windows, Mac, or Linux and playback both regular recordings *and* recordings in progress in the TSB (time sync buffer). Note that your validation documentation must cover:
- Regular recordings
- TSB recordings
- HLS streams
- Dash streams
- Using the HTML test harness in html-testharness
Documentation in general
The more details here the better - this documentation will be given to future challenges to help new competitors get up to speed on the build setup of Fog and ensure they know how to build, run, and test the app.
Code changes
There should be no code changes for this challenge unless confirmed in the forum.
Testing
You MUST test your documentation to ensure it works as expected. The current documentation is not ideal, is missing important steps, and doesn't cover things in detail. Don't expect reviewers to do your validation on the various platforms for you. I expect reviewers to do very little to work through issues in your submission. If something doesn't work, or steps are ambiguous or missing, expect to be marked down significantly.
Submission requirements
Your submission will only include the new markdown files listed above.