Linux application written for Raspberry Pi 2 or 3 with the following features:
1) Connects to an H.264 server over Ethernet by opening specific port #'s over TCP/IP
2) Connects to the same server using a websocket to access a small amount of configuration information.
3) Connects to the same server using a websocket to get display content selection information (basically simple codes that indicate which TCP/IP port to listen to and decode)
4) Reads raw H.264 BP NALU's off the specified TCP port and decodes those in hardware to the display (full screen). These come at 30fps, 640x480 resolution, 1250bps.
5) As display content selection information changes, open a different TCP port and start displaying the new video stream within two seconds (the keyframe rate is one every two seconds)
6) This app must restart itself if it crashes.
7) This app has no user interface, it just shows the video based on the TCP commands from the websocket.
8) Displays video stream name in an 18 point font in the lower left corner of the video displayed over a semi-opaque background so the text is viewable regardless of the video content. Text comes from the configuration information.
9) Written in C/C++
10) Latency from receipt of raw NALU to display on screen needs to be <20ms.
11) Use Video For Linux API (no GStreamer)
12) Must use hardware for H.264 decode
13) Must stream continuously without interruption for jitter as long as H.264 NALUs are available.
14) MTBF 1 week
15) Details about websocket interface will be provided once engineer is selected.