Challenge Overview
The Hercules Player is an application that allows customers to download videos to their computer or device for offline playback, along with streaming playback of videos for online playback.
The Hercules Fog project has stripped out some key portions of the Hercules Player application into a new test application for downloading videos from a server, modifying the manifest, and then playing back on various mobile and TV devices.
The current implementation is C++ and will run on:
- Windows
Linux
Mac
NOTE: This is a very technical challenge and will require a fair bit of work in setup and testing. You will need to use Linux to test the player. Ubuntu 16.04 is your best bet.
Requirements:
The current code we have been building is here:
https://gitlab.com/hercules-fog/Fog-CLI
A link will be provided in the forum that you can use to give your Gitlab username access.
Functionality and bugs
This challenge will address two bugs in the app which are logged here:
* Backfill only on TSB, not scheduled recordings: https://gitlab.com/hercules-fog/Fog-CLI/issues/323
* Validate storage write failure handling with the VFS: https://gitlab.com/hercules-fog/Fog-CLI/issues/336
The testing and verification should be the majority of the work here. This is a highly sensitive application and we cannot introduce new bugs here.
Sample player
The AAMP player will be provided in the forum. Build instructions can be found here:
https://gitlab.com/hercules-fog/Fog-CLI/wikis/aamp-build-testing
You must test your changes with the player playing a recording from Fog. If you do not do this validation and include steps on how you validated, expect to be marked down significantly in the scorecard.
Submission
Your code must be submitted as a Git patch file against the "master" branch of the Fog-CLI repo
https://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/
Base your patch file against commit hash acfb01ce18dba99dcc682e77347b64d0884fc42d .
Please make sure to test your patch before submission!
Documentation
Your documentation should include details on the validation steps taken to:
* Ensure the merge is correct
* Ensure that no functionality is broken
* Any bugs encountered that need to be addressed
* What you did to validate the bugs before / after your changes to ensure that the fixes are appropriate