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 need to implement all methods in scope of contest#2 (Android only) in the provided API definitiions document, please also double check the following list of requriements which are also in scope of this assembly:
- 2.3 Device Management – Add Device
- 2.4 Device Management – Device List View
- 2.5 Device Management - Delete Device
- 2.6 Device Management – Update Device
- 3.17 PTZ Controls
- 3.18 Digital Zoom
- 3.18.2 PTZ Iris Controls
- 3.19 PTZ Presets Controls
- 4.1.2 Gap Maps
- 5 Viewing Events
More Details
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...
Deliberable
The output of this assembly will be:
- A component library (HAL) that interacts with the devices listed above
- A Test Fixture that interacts with the HAL to test all the functions defined in the interface (note that some interfaces might not be testable because device does not support the defined capabilities)
���Please refer to the provided document for details, you should also follow the solution structure mentioned in the application spec (we have provided a base project with folder structure setup)
We've also provided the iOS code base so you can check that for reference.
Testing
As stated above and in the application spec, 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
24h Review
This is a 24h review challenge, reviewers should pay attention to the deadline.
Technology Overview
- Java
- Eclipse with ADT
- Minimum target: Android 4 (ICS) / API 15
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:
- Android 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.