Challenge Overview
Project Overview
Video surveillance cameras show what is happening in a scene from a remote location. Cameras are connected to digital video recorders (DVR) to allow for the recording of the scene.
Cameras and DVRs have many features available such as pan / tilt / zoom (PTZ), capturing images, and motion detection.
The project will be a cutting edge mobile application camera viewing system. The main goal of the project will be to view live video in H.264/MJPEG format from multiple cameras and recording devices. User will be able to view video from mobile devices like:
- Smartphones
- Tablets
The purpose of this project is to develop an interface library for the graphical front end. The library will serve as layer of abstraction between the user interface and the underlying device logic for video.
Application will initially support one Interlogix brand recording device (LNVR) and needs to be architected in a way to allow for addition of different brand DVRs.
Competition Task Overview
For this contest, we must implement the following requirements in BACKEND:
- All methods marked as #2 in the api document (refer to corresponding sections in LNVR Web Services v1.3.pdf, like 5.8). There might also be some tricky scenarios to consider for ptz, for example: for rotation, if the rotation is 180, the camera is upside down, so moving left is really moving right.
- All methods marked as n/a in the api document, these methond will do nothing for now though, just need the APIs to be defined
- Get device list: see section 5.2 from LNVR Web Services v1.3.pdf
- Gap map: see section 5.4 from LNVR Web Services v1.3.pdf
- It allows us to know and display what times on the playback timer has recorded video
- It allows us to play video
- It allows us to know how to link video recordings together
- You can also find more details from the specification (section 4.1.1 and 4.1.2)
Make sure you read the API Documentation carefully as it clearly defines the methods to be implemented and also has some important details about solution structure, testing, etc...
Project Structure
The existing project structure must be followed, and you are only supposed to make changes to the following projects
- HAL: you'll need to update this to implement the new methods
- TestFixture: you'll need to update this to test the new backend methods implemented in this assembly
���You should NOT modify the Ui project.
Testing
As stated above and in section 1.2.2 of the document, we need to test the entire API implemented in this contest, we don't need the UI to look fancy, just need to be able to verify the methods work.
TestFixture should show how gap map can be used, for example:
- let's say you want to go to playback at 1PM on 3/35, the gap map might return something like: 3/25 - 1PM -> 2PM, 3/25 - 2:30PM-3PM. The code needs to know that as soon as the clock goes to 2PM (first playback chunch ends), it needs to skip to 2:30PM and continue playing
To Reviewers
This is a 24h review, make sure you meet the timeline, if you miss it you'll not get "good" reviewer rating.
Also as part of the review you must provide screenshots when testing TestFixture. If you don't provide screenshots you'll also not get "good" reviewer rating.
Technology Overview
- Objective-C 2.0
- Xcode 5.x
- iOS 7
Documentation Provided
Please register to see documents in the contest forum.
Final Submission Guidelines
Submission Deliverables
A complete list of deliverables can be viewed in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials
Below is an overview of the deliverables:
- iOS solution with the required projects (library and tests)
- A complete and detailed deployment documented explaining how to deploy the application including configuration information.
Final Submission
For each member, the final submission should be uploaded to the Online Review Tool.