DigiView-Android icon indicating copy to clipboard operation
DigiView-Android copied to clipboard

[Refacto] Extract core features to a separate library

Open jlucidar opened this issue 4 years ago • 0 comments

So this is not a top priority at the moment, but It worth starting the debate.

The app is rather simple to understand today and the architecture is really straightforward. As the project grows, it's going to start being a mess. So we should at some point reorganize things a little bit and tidy up the code base. One great Idea we talked about on Discord is to put all the internals of the project in a seperate library, so people can build apps on top of it. (like super fancy 8 simultaneous viewer with shiny overlay for races, etc...)

The DigiView app itself will then be built on top of the lib.

So we should discuss what we want to extract to this library, and what features the lib would host. (maybe time to get the pen out and draw some neat architecture schemes ?)

A non exhaustive list :

Core

  • Usb Management (autoDetection/ authorization)
  • USB abstraction layers (InputStream / Output Stream)
  • Goggles Abstraction
  • Datasource splitter (so several stream consumers can access the stream at the same time)

Data Consumers

  • Exoplayer H264Extractor
  • Circular Buffering ?
  • MediaCodec
  • FFmpegKit ?
  • Direct Access

Extras (add UI components / High level classes for easy integration)

  • Exoplayer
  • MediaPlayer ?
  • DVR
  • RTMP

Everybody's input is more than welcome !

jlucidar avatar May 20 '21 00:05 jlucidar