Skip to content

Potential Features

bp2008 edited this page Oct 19, 2017 · 24 revisions

Potential Features

This page contains lists of features that I am considering or have considered implementing in UI3. This is mostly for my own notes, and should not be taken as a promise about anything.

Planned Features

"Planned Features" are those which I intend to implement some day.

  • Server-side ptz preset thumbnails that get shared with all users.
    • Requires server-side ptz preset thumbnails before I can even start.
  • Alert playback should behave like it does in other Blue Iris apps, where Alerts are basically just a bookmark into a clip.
  • Play audio for recordings when H.264 streaming is enabled.
    • Add a volume control to the playback controls bar.
    • Requires assistance from Blue Iris developer, as the modern audio streaming APIs are undocumented.
  • Solve problem where having webcasting disabled for all groups makes the UI behave like you only have one camera.

Possible Features

"Possible Features" are those which I may implement eventually, or not. I have no immediate plans to do any of these things.

  • Show the playback controls in a limited fashion while live viewing on the Alerts/Clips tabs.
    • Possibly show this during live view on any tab, and move the audio volume and Streaming Quality controls to it.
      • Alternatively, float relevant controls when pointer is near, as done with Fullscreen button. Less intrusive this way? Increases consistency between UI tabs.
  • Hide UI elements that can't ever be used by the current user.
    • Requires support from Blue Iris, indicating which specific permissions are available to the session.
  • Get rid of the Live View tab and integrate its unique features elsewhere.
    • If I implement the playback controls bar for live view, I can move audio volume and Streaming Quality controls to there.
      • Great for UI consistency -- not having controls in different places on different tabs.
    • The Current Group dropdown already exists on other tabs, albeit with a different label.
      • This being the only way to change groups or view a cycle stream is not the most intuitive thing I've ever come up with.
    • Profile Status and Schedule status could go in the playback controls bar. Not friendly to horizontal scaling.
    • The PTZ controls, Profile Status, and Schedule status could go in a second vertical bar.
      • Huge waste of screen space I think.
    • The PTZ controls, Profile Status, and Schedule status could go in a thick horizontal bottom bar.
      • Huge waste of screen space I think.
    • The Schedule/Profile status could be condensed to small readouts, and the controls moved to the System Configuration dialog
      • Or to a Profile/Schedule dialog.
      • Or to separate Profile and Schedule dialogs.
    • PTZ controls could appear in a minimizable dialog box only when a PTZ camera is selected.
      • Minimize to an icon in the playback controls bar or top bar.
        • Icon should be extremely visible when PTZ controls are available. Bright/colorful, maybe glowing. Dim and low contrast when not available.
    • If I achieve this, and have everything "on one tab" like UI2 has always been, then what? Is it better this way? Do I add things to the top bar now that there is no Live View tab? It already gets really tight on a portrait phone display.
      • One benefit is you don't have to worry about which tab you are on anymore. Tabs only control which list you see.
      • Another benefit: UI consistency. Each function has its place, no duplication of functionality.
      • Downside: Changing cameras would always load a clip/alert list, which is more overhead.
      • Downside: More clutter.
      • Downside: UI layout sucks if you don't have recording access.
        • Speaking of which, a user account without recording access shouldn't have Alerts or Clips tabs, so what will they have? A Live view tab? I thought I just hypothetically removed that.
          • Remove entire concept of tab-based layout, and just treat Alerts/Clips as buttons.
  • Multiple-server support (making the UI able to connect to other Blue Iris instances like UI2 can).
    • Not likely because it would force backwards compatibility and be a burden for ongoing maintenance.
    • I don't think most people would ever use it.
  • Admin login prompt could pass along a callback method, to refresh panels like the server log, server configuration, full camera list, camera properties without the user having to repeat the action that caused the login prompt.
  • Reduce wasted bandwidth by limiting the jpeg refresh rate when the camera's reported frame rate is lower than what we are actually capable of streaming.
    • This is not a common scenario, even on a LAN where bandwidth is abundant. It is particularly unimportant now that Jpeg isn't the only viable streaming option.
  • Timeline control. Simplified format at first. Maybe show the current day, the last 24 hours, or the currently loaded time range. Selecting a time will scroll the clip list (and begin playback of the most appropriate clip?)
    • Added complexity and screen-space usage, not necessarily useful without multi-clip simultaneous playback because the clip list is already a sort of timeline.
  • Allow an open clip to remain open even if the clip list no longer contains the clip.
    • I don't think this would be very useful, but after building this, it would become easier to generate URLs that open a specific clip.
  • Have a way to generate a UI3 link that points at a specific clip.
  • An alternate layout that automatically loads when the UI has significantly more height than width (e.g. portrait view)
    • This sounds like a lot of work.
  • An alternate layout that eliminates the tabs along the top and instead merges their functionality into one screen like UI2.
    • This sounds like a lot of work.
  • Mouseover of clip thumbnail causing it to animate a preview of the clip, as seen in UI2.
    • This requires better support from Blue Iris which will probably never happen. UI2's implementation is very inefficient with server CPU time.
  • Yes/No dialogs could perhaps respond to 'y' and 'n' and escape keys, and simple confirmation dialogs could respond to enter / escape.
  • H.264 playback pipeline could be made to honor frame timestamps for rendering. Currently, frames are just decoded and rendered as quickly as possible.
    • I see little benefit to this because Blue Iris doesn't send data faster than it is intended to be viewed (no buffering ahead when streaming a recording). It works fine as-is in all my tests.

Finished Features

These features, once in a list above, have been completed.

  • Single-click in the clip player does play/pause. Double-click enters fullscreen mode. Single-click action only occurs after double-click timer expires unfulfilled. See YouTube player behavior.
  • Dialogs that can use keyboard input should suppress other UI3 hotkeys.
  • Deletion failure for single clips could be handled better.
  • Add URL parameters for loading a camera, group, or fullscreen mode.
    • Fullscreen mode couldn't be triggered by URL parameter, as browsers require user input to trigger the change.
  • Make PTZ presets work better on touchscreens. Including the text box to set preset description on a phone. (android)
  • Implement JSON "users" command as a status panel like the Log panel.
  • Test large dialogs on phones.
  • Fix bug where incorrect stream length info is shown for clips in H.264 mode until the first frame is downloaded.
  • Implement "Copy image URL" with https://clipboardjs.com/
  • Preserve seek position and play/pause state when changing between player modules (N/A for live video).
  • UI Settings dialog.
    • Button to forget saved credentials.
    • Checkbox for: Long press to open context menus (enabling this should disable longpress to set preset, which is available in the context menu anyway). Affects few devices, e.g. samsung smart TV remote control
    • Idle Timeout (minutes). Enabled by default, overridable in local overrides script.
    • Option to force a particular UI scale/size.
    • Hotkey configuration
  • Clicking the speaker icon should toggle volume between 0 and its last otherwise-set position.
  • Throttle rapid clip changes to prevent heavy Blue Iris server load.
  • Throttle rapid camera changes to prevent heavy Blue Iris server load.
Clone this wiki locally