1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
## Backlog
- Explore new compiled backends
- Update the book
- Romain to document new internals
- Write article for ICFP
- support for ffmpeg subtitles
- use OCaml 5 (after it has matured)
- use native (as in native.liq) implementation of switch (based on
source.dynamic)
- reimplement video.tile in native liq
- rework buffer.adaptative
- use source getters for switch in order to be able to play two tracks ever day
(#2880)
### From lioquidshop 5:
- ~~Better handling over core module erasure~~
- Switch stream callbacks to async first
- ~~Add variable with current liq script name.~~
### Maybe TODO:
- remove requests and use sources instead everywhere (a request is a source with
one track [or more]) (weak maybe)
- Precise scheduling with queue.push, etc.: we could make the track available
at some precise time if requests were sources...
- this may allow stuff like `append` more easily
- Add support for modules, load minimal API by default
- Simple mechanism to tell source how much data will be expected in advance (e.g. 10s with cross) to allow automatic buffer management.
- Redefine switch-based transitions.
### Nice to have
- refine video support in order to have next liquidshop running on Liquidsoap (dogfooding)
- use row variables for methods, using Garrigue's _Simple Type Inference for Structural Polymorphism_
- can we reimplement something like [melt](https://www.mltframework.org/)?
- support for WebRTC using WHIP / WHEP
- support decorations on a subtitle image track
- make bindings to pipewire to support webcams and screensharing
## For 2.2
### Done
- ~~Separate language core (#2397)~~
- ~~Online version (#2397)~~
- ~~Available at: https://www.liquidsoap.info/try/~~
- ~~Needs some cleanup, definition of a minimal JS library.~~
- ~~Switch to `dune`~~
- ~~Separate standard library (in pure liq)~~
- ~~support for multi-track audio~~
- ~~live switch with ffmpeg encoded content~~
- ~~deprecate "!" and ":=" in favor of x.get / x.set~~
- ~~switch to immutable content for metadata~~
- ~~Add script tooling, prettier etc.~~
- ~~switch to immutable content for frames (#2364)~~
- ~~frame should be changed to extensible arrays (a bit like `Strings`) instead of filling a buffer~~
- ~~take the opportunity to change the handling of track boundaries (currently
boundary = we have a partial fill, which has quite messy corner cases)~~
## For 2.3
### Done:
- ~~Rewrite streaming loop~~
- ~~rewrite the clock system~~
- ~~the code is unreadable and overengineered ⇒ simplify it~~
- we want to get rid of the assumption clock = thread (Feasible but problem with OCaml 5)
- ~~Optimize runtime: start time, typing and memory usage~~
- ~~javascrtipt/browser support using [WebCodecs](https://developer.mozilla.org/en-US/docs/Web/API/WebCodecs_API)!~~
|