Challenge Overview
Challenge Objectives
- C++ application running on MacOS X, offering Javascript APIs to developers
- More details can be found here: http://www.sparkui.org/index.html
- We will target Mac OS X for this challenge. Submitters and reviewers will need access to OS X
Basic requirements for this challenge:
- Fix a couple issues from the previous challenge
- Add in support for MSE APIs
NOTE: AAMP will NOT be used for this challenge. This will be GStreamer only
Project Background
"Spark" is the name for the pxScene project we've done work for in the past. The links below offer a lot more details on these particular technologies. pxCore is a C++ graphics library that is used on a wide variety of embedded devices that the client distributes. Spark is a wrapper application around pxCore that exposes the drawing APIs to Javascript through Node and V8.
The client would like to start supporting MSE / EME in Spark through GStreamer. This is the long-term goal of this project
- MSE: https://en.wikipedia.org/wiki/Media_Source_Extensions
- ESE: https://en.wikipedia.org/wiki/Encrypted_Media_Extensions
Technology Stack
- Spark: https://github.com/pxscene/pxCore
- Build instructions: https://github.com/pxscene/pxCore/blob/master/examples/pxScene2d/README.md
- Debug instructions using VSCode: https://github.com/pxscene/pxCore/blob/master/examples/pxScene2d/VSCODE_DEBUG.md
Code access
- The main Spark code is available in Github
- We will target this branch, which has the Gstreamer libraries added that the client wants to use, along with the code from the previous challenge: https://github.com/topcoderinc/pxCore/tree/_tc_video
- You are free to target any commit hash at 988f5b3 or after.
Individual requirements
These Github tickets comprise the requirements for this challenge:- https://github.com/topcoderinc/pxCore/issues/287
- https://github.com/topcoderinc/pxCore/issues/288
- https://github.com/topcoderinc/pxCore/issues/289
- https://github.com/topcoderinc/pxCore/issues/290
Validation
We will be editing the videoPlayer.js file to use MSE APIs as part of issue #290. The validation documentation should cover how to use this file in the Spark UINOTE: The requirements for #287 require a separate document describing the APIs and how they are implemented, for review and presenting to the client. Please ensure this major requirement is met.
Sample files
Any file here is fine for testing: https://peach.blender.org/download/Others you may find are also OK, just make sure they are licensed appropriately, preferably Creative Commons.
Deployment guide and validation document
Make sure to require two separate documents for validation.A README.md that covers:
- Updated build instructions for building the new Spark app with AAMP integration
- How to validate basic video playback and how to use the new videoPlayer.js file
What To Submit
- Patch file targeting a recent commit hash of pxCore (specifically the _tc_video branch here: https://github.com/topcoderinc/pxCore/tree/_tc_video)
- Updated codebase (optional, but definitely recommended in case there are problems with your patch file)
- README.md
- Validation.md
- API.md that covers the HTML5 video API and how that's implemented fully in the code.