1TODO 2==== 3 4If you're particularly interested in any of this, send patches/pull requests 5or maybe just prod me a little. 6 7Minor Features/UX 8----------------- 9 10- HTML output. 11- Symbols: Math. 12- Accept image on standard input. 13- Accept -o, --output to write to file. 14- Verbose output. Show file names. 15- Add a --test option to print a test page. 16- Add a --show-symbols op to print matching symbols. 17- Add a --ping-pong option for animations. 18- Strv building API in addition to GString? 19- If FG color is transparent, see if we can use an inverted symbol and swap 20 with BG. 21 - Avoid using transparent foreground due to XFCE Terminal (other terminals?) 22 weird handling with background picture set? 23 - Except in FGBG modes. 24- Test with more terminals. 25 - iTerm? 26 - Other OSX terminals? 27 - PuTTY on Windows 8, 10? 28 - Windows 7 fonts support half, solid, some borders. 29 - Terminology. 30 - Emulate tycat. 31 - Emacs ansi-term. 32 - Emacs shell (TERM=dumb). 33 - Come up with some kind of support matrix. 34- More symbol aliases 35 - CP437 36 37Major features 38-------------- 39 40- Lossy/lossless intra-frame compression. Data rate regulated: 41 - By desired output size. 42 - By maximum desired per-cell error. 43 - By total error? 44 - Slide window over row, calculate mean colors, calc error? 45- Lossy/lossless delta compression. 46 - Double-buffer with a checkpoint call to swap. 47 - Dirty map not enough in case each frame is composited in multiple steps. 48 - Emit difference between checkpoint state and current. 49 - Optimization: Keep a rect or region of changed area. 50 - Multiply previous symbol's new error with weight to increase or decrease 51 stability (prevent flicker)? 52- Drawing context with clip rect/region, etc. 53 - Potentially a context stack. 54 - Getting into NCurses territory... 55- Video playback. 56- Interactive UI (may need to be in separate tool). 57 58Optimization 59------------ 60 61- Avoid ImageMagick for remaining common formats like PNG, JPEG and directly 62 use more efficient decoders instead. 63- Speed up alpha transparency code path. 64- Preload next image/frame in delay phase. 65- Don't calculate error if we're only using a single symbol (e.g. vhalf). 66 67The Fine Material 68----------------- 69 70- Tips. 71 - For scrolling, use e.g. chafa input.jpg -s 200 | less -S 72 - Rate-controlled playback with e.g. cat input.txt | pv -qL 100k 73 - Playback with awk + proper inter-frame delay. 74 - X11 applications in terminal 75 1) Xvfb :99 -ac -fbdir t -screen 0 1440x900x24 & 76 2) DISPLAY=:99 lament -root & 77 3) chafa --watch t/Xvfb_screen0 78 - gnome-shell in terminal 79 - XDG_SESSION_TYPE=x11 DISPLAY=:99 gnome-shell 80 - Run as different user. 81 - Using (unreleased) ffmpeg driver: 82 - ./ffmpeg -i movie.mkv -pix_fmt rgba -f chafa -color 16 -symbols vhalf,space -fill ascii - 83