Hercules C++ Fog App - Scheduled recording backfill and storage limit cleanup

Register
Submit a solution
The challenge is finished.

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
There are a couple new bugs that need to be addressed in the codebase.

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!

Your patch file should be very, very "clean", meaning that it shouldn't have whitespace changes, or changes that are inconsequential.  Only important changes should be covered in the patch file.

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


Final Submission Guidelines

Please see above

ELIGIBLE EVENTS:

2018 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30064277