Hercules C++ Fog App - AAMP player mock build

Key Information

The challenge is finished.
Show Deadlines

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

This challenge will add in a "SUPPORT_PLAYBACK" flag into the AAMP player build.  If this flag is off, the AAMP player will do the normal manifest and fragment downloading for a given stream, but it will not attempt to actually decrypt or play the individual fragments.  Basically, this will turn the AAMP player into a mock player that can be used to test the Fog recorder against DRM protected streams that wouldn't normally play back without special hardware.

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.


In the forum will be the source code to the AAMP player.  The AAMP player is a video player that implements playback.  Fog implements recording, and those recordings can be played back through AAMP.  The AAMP player can play back both HLS and Dash streams

The goal of this challenge is to add a new cmake build flag that can be used to turn off the actual windowed playback of a given video stream.  The player should still request and parse the main manifest and download the fragments in the same time as it would if playback was enabled, but we will disable the actual decryption / display of the video in a window.  This will allow us to more easily test / validate Fog as well as support DRM enabled streams that currently don't play back in AAMP.

Dash and HLS

Note that this new player must support both Dash and HLS stream formats. 

You must validate your implementation against the Fog recorder.  We need to ensure that the updated player will work successfully against the Fog recorder, playing back both HLS and Dash recordings.

Sample player

The AAMP player will be provided in the forum.  Build instructions can be found here:


Note that the AAMP player has changed quite a bit recently.  If you have trouble building, please ask questions in the forum.


Your submission should be a new AAMP player source, with an updated build flag to turn off playback.


Please include clear, updated build documentation for:

* AAMP player (without playback)

You must also provide validation documentation on how we can test the updated AAMP player against a Fog recorder for both HLS and Dash streams.

Target Ubuntu 16.04 for the changes for this challenge.


Final Submission Guidelines

Please see above


Topcoder will compensate members in accordance with our standard payment policies, unless otherwise specified in this challenge. For information on payment policies, setting up your profile to receive payments, and general payment questions, please refer to ‌Payment Policies and Instructions.


2018 Topcoder(R) Open


Final Review:

Community Review Board


User Sign-Off

ID: 30063516