Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
video/out/vo_sixel.c: Implement sixel as a output device
Based on the implementation of ffmpeg's sixel backend output written by Hayaki Saito https://github.com/saitoha/FFmpeg-SIXEL/blob/sixel/libavdevice/sixel.c Sixel is a protocol to display graphics in a terminal. This commit adds support to play videos on a sixel enabled terminal using libsixel. With --vo=sixel, the output will be in sixel format. The input frame will be scaled to the user specified resolution (--vo-sixel-width and --vo-sixel-height) using swscaler and then encoded using libsixel and output to the terminal. This method requires high cpu and there are high frame drops for 720p and higher resolution videos and might require using lesser colors and have drop in quality. Docs have all the supported options listed to fine tune the output quality. Things to improve: A few parameters of libsixel such as the sixel_encode_policy and the SIXEL_XTERM16 variables are hardcoded, might want to expose them as command line options. Also the initialization resolution is not automatic and if the user doesn't specify the dimensions, it picks 320x240 as the default resolution which is not optimal. So need to automatically pick the best fit resolution for the current open terminal window size. video/out/vo_sixel.c: Add command line options --vo-sixel- for the sixel output device Added width, height, dither-algo, threshold, colors, pallete-type, offset-top and offset-left as configurable parameters. Reordered the sixel implementation to resemble vo_tct's implementation. video/out/vo_sixel: Fix review issues; Add docs for sixel; Remove scroll_on_demand scrolling code video/out/vo_sixel.c: Avoid static variables, group deallocations, remove DCS Terminating sequence video/out/vo_sixel.c: remove unused headers, remove empty line from docs
- Loading branch information