Commit 1842b275 authored by Paul B Mahol's avatar Paul B Mahol

lavu: 256 color support

Signed-off-by: 's avatarPaul B Mahol <onemda@gmail.com>
parent 46a47077
...@@ -58,6 +58,8 @@ static const uint8_t color[16 + AV_CLASS_CATEGORY_NB] = { ...@@ -58,6 +58,8 @@ static const uint8_t color[16 + AV_CLASS_CATEGORY_NB] = {
[16+AV_CLASS_CATEGORY_DECODER ] = 3, [16+AV_CLASS_CATEGORY_DECODER ] = 3,
[16+AV_CLASS_CATEGORY_FILTER ] = 10, [16+AV_CLASS_CATEGORY_FILTER ] = 10,
[16+AV_CLASS_CATEGORY_BITSTREAM_FILTER] = 9, [16+AV_CLASS_CATEGORY_BITSTREAM_FILTER] = 9,
[16+AV_CLASS_CATEGORY_SWSCALER ] = 7,
[16+AV_CLASS_CATEGORY_SWRESAMPLER ] = 7,
}; };
static int16_t background, attr_orig; static int16_t background, attr_orig;
...@@ -66,26 +68,29 @@ static HANDLE con; ...@@ -66,26 +68,29 @@ static HANDLE con;
#define reset_color() SetConsoleTextAttribute(con, attr_orig) #define reset_color() SetConsoleTextAttribute(con, attr_orig)
#else #else
static const uint8_t color[16 + AV_CLASS_CATEGORY_NB] = { static const uint32_t color[16 + AV_CLASS_CATEGORY_NB] = {
[AV_LOG_PANIC /8] = 0x41, [AV_LOG_PANIC /8] = 52 << 16 | 196 << 8 | 0x41,
[AV_LOG_FATAL /8] = 0x41, [AV_LOG_FATAL /8] = 208 << 8 | 0x41,
[AV_LOG_ERROR /8] = 0x11, [AV_LOG_ERROR /8] = 196 << 8 | 0x11,
[AV_LOG_WARNING/8] = 0x03, [AV_LOG_WARNING/8] = 226 << 8 | 0x03,
[AV_LOG_INFO /8] = 9, [AV_LOG_INFO /8] = 253 << 8 | 0x09,
[AV_LOG_VERBOSE/8] = 0x02, [AV_LOG_VERBOSE/8] = 40 << 8 | 0x02,
[AV_LOG_DEBUG /8] = 0x02, [AV_LOG_DEBUG /8] = 34 << 8 | 0x02,
[16+AV_CLASS_CATEGORY_NA ] = 9, [16+AV_CLASS_CATEGORY_NA ] = 250 << 8 | 0x09,
[16+AV_CLASS_CATEGORY_INPUT ] = 0x15, [16+AV_CLASS_CATEGORY_INPUT ] = 219 << 8 | 0x15,
[16+AV_CLASS_CATEGORY_OUTPUT ] = 0x05, [16+AV_CLASS_CATEGORY_OUTPUT ] = 201 << 8 | 0x05,
[16+AV_CLASS_CATEGORY_MUXER ] = 0x15, [16+AV_CLASS_CATEGORY_MUXER ] = 213 << 8 | 0x15,
[16+AV_CLASS_CATEGORY_DEMUXER ] = 0x05, [16+AV_CLASS_CATEGORY_DEMUXER ] = 207 << 8 | 0x05,
[16+AV_CLASS_CATEGORY_ENCODER ] = 0x16, [16+AV_CLASS_CATEGORY_ENCODER ] = 51 << 8 | 0x16,
[16+AV_CLASS_CATEGORY_DECODER ] = 0x06, [16+AV_CLASS_CATEGORY_DECODER ] = 39 << 8 | 0x06,
[16+AV_CLASS_CATEGORY_FILTER ] = 0x12, [16+AV_CLASS_CATEGORY_FILTER ] = 155 << 8 | 0x12,
[16+AV_CLASS_CATEGORY_BITSTREAM_FILTER] = 0x14, [16+AV_CLASS_CATEGORY_BITSTREAM_FILTER] = 192 << 8 | 0x14,
[16+AV_CLASS_CATEGORY_SWSCALER ] = 153 << 8 | 0x14,
[16+AV_CLASS_CATEGORY_SWRESAMPLER ] = 147 << 8 | 0x14,
}; };
#define set_color(x) fprintf(stderr, "\033[%d;3%dm", color[x] >> 4, color[x]&15) #define set_color(x) fprintf(stderr, "\033[%d;3%dm", (color[x] >> 4) & 15, color[x] & 15)
#define set_256color(x) fprintf(stderr, "\033[48;5;%dm\033[38;5;%dm", (color[x] >> 16) & 0xff, (color[x] >> 8) & 0xff)
#define reset_color() fprintf(stderr, "\033[0m") #define reset_color() fprintf(stderr, "\033[0m")
#endif #endif
static int use_color = -1; static int use_color = -1;
...@@ -108,15 +113,18 @@ static void colored_fputs(int level, const char *str) ...@@ -108,15 +113,18 @@ static void colored_fputs(int level, const char *str)
use_color = !getenv("NO_COLOR") && !getenv("AV_LOG_FORCE_NOCOLOR") && use_color = !getenv("NO_COLOR") && !getenv("AV_LOG_FORCE_NOCOLOR") &&
(getenv("TERM") && isatty(2) || (getenv("TERM") && isatty(2) ||
getenv("AV_LOG_FORCE_COLOR")); getenv("AV_LOG_FORCE_COLOR"));
if (getenv("AV_LOG_FORCE_256COLOR"))
use_color *= 256;
#else #else
use_color = getenv("AV_LOG_FORCE_COLOR") && !getenv("NO_COLOR") && use_color = getenv("AV_LOG_FORCE_COLOR") && !getenv("NO_COLOR") &&
!getenv("AV_LOG_FORCE_NOCOLOR"); !getenv("AV_LOG_FORCE_NOCOLOR");
#endif #endif
} }
if (use_color) { if (use_color == 1) {
set_color(level); set_color(level);
} } else if (use_color == 256)
set_256color(level);
fputs(str, stderr); fputs(str, stderr);
if (use_color) { if (use_color) {
reset_color(); reset_color();
......
...@@ -35,6 +35,8 @@ typedef enum { ...@@ -35,6 +35,8 @@ typedef enum {
AV_CLASS_CATEGORY_DECODER, AV_CLASS_CATEGORY_DECODER,
AV_CLASS_CATEGORY_FILTER, AV_CLASS_CATEGORY_FILTER,
AV_CLASS_CATEGORY_BITSTREAM_FILTER, AV_CLASS_CATEGORY_BITSTREAM_FILTER,
AV_CLASS_CATEGORY_SWSCALER,
AV_CLASS_CATEGORY_SWRESAMPLER,
AV_CLASS_CATEGORY_NB, ///< not part of ABI/API AV_CLASS_CATEGORY_NB, ///< not part of ABI/API
}AVClassCategory; }AVClassCategory;
......
...@@ -103,6 +103,7 @@ static const AVClass av_class = { ...@@ -103,6 +103,7 @@ static const AVClass av_class = {
.version = LIBAVUTIL_VERSION_INT, .version = LIBAVUTIL_VERSION_INT,
.log_level_offset_offset = OFFSET(log_level_offset), .log_level_offset_offset = OFFSET(log_level_offset),
.parent_log_context_offset = OFFSET(log_ctx), .parent_log_context_offset = OFFSET(log_ctx),
.category = AV_CLASS_CATEGORY_SWRESAMPLER,
}; };
unsigned swresample_version(void) unsigned swresample_version(void)
......
...@@ -70,6 +70,7 @@ const AVClass sws_context_class = { ...@@ -70,6 +70,7 @@ const AVClass sws_context_class = {
.class_name = "SWScaler", .class_name = "SWScaler",
.item_name = sws_context_to_name, .item_name = sws_context_to_name,
.option = options, .option = options,
.category = AV_CLASS_CATEGORY_SWSCALER,
}; };
const AVClass *sws_get_class(void) const AVClass *sws_get_class(void)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment