4 Functional Requirements
4.1 General
The program shall be designed with a GUI. Via the standard window bar buttons of the operating system the user may select to operate the application as a floating window or full screen.
4.2 Operating System
The binary shall be designed for Microsoft Windows operating systems. It shall run on Windows7 32bit and 64 bit. It is highly recommended that the source distribution supports both Windows and Linux.
4.3 Installation
Two installations shall be provided, a binary and a source version.
The binary shall be targeted to easy install and run. The installer shall add an entry called “ONVIF File Player” to the Program menu.
The source distribution shall allow easy creation of the executable from the sources. It shall include project files for Visual Studio Express and optionally other tools. If other libraries are needed for the build a readme document shall describe exactly where these can be obtained and how they have to be included into the project so that the executables can be built without additional information.
4.4 File Selection
If a parameter is passed to the program it shall interpret the parameter as the file path to operate on.
In case no parameter is passed on start of the application a file selection box shall be opened. The user has to select a file or directory.
The application shall operate on the provided path. In case of a single file it shall playback only the content of the file. In case of a directory it is assumed that all files in the directory form a file-set and belong to the same recording. The player shall check that all recordings really belong to the same recording as defined in the surveillance application format specification.
4.5 Authentication Verification
The program shall support a simple certificate store. This is a directory containing X.509 certificates of CAs. Provide a menu item “Certificates->Add” that opens a file explorer to copy a certificate to the CA store.
Before playing back a file, the program shall scan the file or file-set for authentication boxes (as defined in the ONVIF Export File Format Specification) and verify each of the entries. For each of the entries all the meta information shall be displayed as well as an information whether the CA is trusted (known) or not. In case of a file-set it shall warn in case not all meta information is consistent. The Authentication information shall be provided in a child popup window. It shall be scrollable in case there is more information available than can be shown on one page.
The verification operation may take longer to proceed. Progress shall be displayed. A cancel button shall allow to abort the authentication verification operation.
4.6 Timeline
The lower section of the application shall show a timeline. In the simplest case this may be a contiguous bar. In case of gaps in the recording multiple time ranges are shown as bars. Either display the UTC time for both start and end of each slice or implement a tooltip that shows the absolute time when the mouse hovers over the timeline.
The scaling of the timeline shall be selected such that the left margin refers to the start time and the right margin to the end time.
A hairline or small triangle shall show the current playback position. The user shall be able to position the playback position by clicking in the timeline.
4.7 Playback
Playback of the Video starts by default from the start time. As described in the chapter before the playback position can be modified by clicking in the timeline.
The playback speed is real time only. There is no requirement for fast forward or reverse playback modes. The playback cursor shall jump over any gaps instead of displaying black screen for a longer time.
The Play/Pause button can be used to toggle between play and pause mode. Similar to other players its icon shall show the action and not the state. So in play mode it shall show a pause icon and vice versa.
<space>should be used as hotkey toggling play/pause mode.</space>
4.8 Rendering
The application shall render video and optionally audio smoothly. The rendering of both video and audio shall be in sync with the timeline playback cursor.
4.9 Application
The application shall start as floating window with 400 pixel Video window size. The window tool bar shall show the full screen toggle button that allows to switch the application between floating window and full screen mode.