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 (with some build tweaks)
* Linux
* Mac
This challenge will attempt to finalise some recent changes and implement some suggestions from the client.
Branch
We will target the code in branch Optimisation2 for this challenge
Issues
The issues to implement in this challenge have been logged in Gitlab:
* https://gitlab.com/hercules-fog/Fog-CLI/issues/162
* https://gitlab.com/hercules-fog/Fog-CLI/issues/163
Validation
You must provide clear steps for validation. You are encouraged to add extra debug logging (we may remove it later) or other functionality so that we can easily see how the fragment requests are handled and whether things are pass-through or from the Fog recording.
Bonus
If you have any additional suggestions on things that can be done to speed up playback tune times, please mention those in your README or implement them in your submission for additional review points. If something is intensive to implement but may be worthwhile, feel free to clearly document your idea in your README, with justification on the performance benefits, and we may ask you to do it directly for additional payment or may launch another contest based on the idea.
Submission
Your submission to OR should be a Git patch file that can be applied to see the fixes. Here is documentation on how to generate a Git patch file:
https://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/
We will target Git commit hash d93d317dbf8b548422996c9bc7dca85e9ca0fcbf on the "Optimisation2" branch
Submission README:
Please submit a Git patch file and a separate README (don't update the README in Git) that describes your changes and how to validate the optimisations above.
Video: