File: TODO

package info (click to toggle)
chafa 1.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, sid
  • size: 2,032 kB
  • sloc: ansic: 14,804; xml: 527; python: 228; makefile: 172; sh: 67
file content (96 lines) | stat: -rw-r--r-- 3,453 bytes parent folder | download
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
TODO
====

If you're particularly interested in any of this, send patches/pull requests
or maybe just prod me a little.

Minor Features/UX
-----------------

- HTML output.
- Symbols: Math.
- Accept image on standard input.
- Accept -o, --output to write to file.
- Verbose output. Show file names.
- Add a --test option to print a test page.
- Add a --show-symbols op to print matching symbols.
- Add a --ping-pong option for animations.
- Strv building API in addition to GString?
- If FG color is transparent, see if we can use an inverted symbol and swap
  with BG.
  - Avoid using transparent foreground due to XFCE Terminal (other terminals?)
    weird handling with background picture set?
    - Except in FGBG modes.
- Optionally use FG colors only, no BG or inverse.
- Test with more terminals.
  - iTerm?
  - Other OSX terminals?
  - PuTTY on Windows 8, 10?
    - Windows 7 fonts support half, solid, some borders.
  - Come up with some kind of support matrix.
- Support Uxxxx symbol specification in symbol map and UI.
- Optional double-width symbol support.
  - Many geometric shapes/math symbols need this.
  - Process two cells at a time and compare summed error to corresponding
    sum of the two cells for double-width symbols.

Major features
--------------

- Lossy/lossless intra-frame compression.
  - By desired output size.
  - By maximum desired per-cell error.
  - By total error?
  - Slide window over row, calculate mean colors, calc error?
- Lossy/lossless delta compression.
  - Double-buffer with a checkpoint call to swap.
    - Dirty map not enough in case each frame is composited in multiple steps.
  - Emit difference between checkpoint state and current.
  - Optimization: Keep a rect or region of changed area.
  - Multiply previous symbol's new error with weight to increase or decrease
    stability (prevent flicker)?
- Allow getting and setting character cells (individual cells and rects).
  - Raw mode (indexed/etc) and RGB conversion mode.
- Drawing context with clip rect/region, etc.
  - Potentially a context stack.
  - Getting into NCurses territory...
- Sixel support? Could be handled purely in ImageMagick, but maybe we could do
  better.
- Video playback.
- Interactive UI (may need to be in separate tool).

Optimization
------------

- Avoid ImageMagick for remaining common formats like PNG, JPEG and directly
  use more efficient decoders instead.
- Speed up alpha transparency code path.
- Speed up 240/256 color mapping for DIN99d.
- Preload next image/frame in delay phase.
- Don't calculate error if we're only using a single symbol (e.g. vhalf).

Cleanup
-------

- Use a ChafaColorPair struct internally instead of an array.

The Fine Material
-----------------

- Gallery of examples.
- Tips.
  - For scrolling, use e.g. chafa input.jpg -s 200 | less -S
  - Rate-controlled playback with e.g. cat input.txt | pv -qL 100k
  - Playback with awk + proper inter-frame delay.
  - X11 applications in terminal
    1) Xvfb :99 -ac -fbdir t -screen 0 1440x900x24 &
    2) DISPLAY=:99 lament -root &
    3) chafa --watch t/Xvfb_screen0
  - gnome-shell in terminal
    - XDG_SESSION_TYPE=x11 DISPLAY=:99 gnome-shell
    - Run as different user.
  - Using (unreleased) ffmpeg driver:
    - ./ffmpeg -i movie.mkv -pix_fmt rgba -f chafa -color 16 -symbols vhalf,space -fill ascii -

- Better stylesheets for man page, library reference manual.
  - Maybe just redo the web site with Jekyll or something.