mirror of
https://github.com/mpv-player/mpv
synced 2025-03-24 12:22:25 +00:00
vo_tct: reduce lut_item size and generate it without snprintf
This commit is contained in:
parent
7d2b7fa019
commit
2d4fae4f70
@ -68,7 +68,7 @@ struct vo_tct_opts {
|
|||||||
|
|
||||||
struct lut_item {
|
struct lut_item {
|
||||||
char str[4];
|
char str[4];
|
||||||
int width;
|
uint8_t width;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct priv {
|
struct priv {
|
||||||
@ -80,8 +80,8 @@ struct priv {
|
|||||||
struct mp_rect src;
|
struct mp_rect src;
|
||||||
struct mp_rect dst;
|
struct mp_rect dst;
|
||||||
struct mp_sws_context *sws;
|
struct mp_sws_context *sws;
|
||||||
struct lut_item lut[256];
|
|
||||||
bstr frame_buf;
|
bstr frame_buf;
|
||||||
|
struct lut_item lut[256];
|
||||||
};
|
};
|
||||||
|
|
||||||
// Convert RGB24 to xterm-256 8-bit value
|
// Convert RGB24 to xterm-256 8-bit value
|
||||||
@ -316,10 +316,15 @@ static int preinit(struct vo *vo)
|
|||||||
p->sws->log = vo->log;
|
p->sws->log = vo->log;
|
||||||
mp_sws_enable_cmdline_opts(p->sws, vo->global);
|
mp_sws_enable_cmdline_opts(p->sws, vo->global);
|
||||||
|
|
||||||
for (int i = 0; i < 256; ++i) {
|
for (int i = 0; i < MP_ARRAY_SIZE(p->lut); ++i) {
|
||||||
char buff[8];
|
char* out = p->lut[i].str;
|
||||||
p->lut[i].width = snprintf(buff, sizeof(buff), ";%d", i);
|
*out++ = ';';
|
||||||
memcpy(p->lut[i].str, buff, 4); // some strings may not end on a null byte, but that's ok.
|
if (i >= 100)
|
||||||
|
*out++ = '0' + (i / 100);
|
||||||
|
if (i >= 10)
|
||||||
|
*out++ = '0' + ((i / 10) % 10);
|
||||||
|
*out++ = '0' + (i % 10);
|
||||||
|
p->lut[i].width = out - p->lut[i].str;
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE_STR(TERM_ESC_HIDE_CURSOR);
|
WRITE_STR(TERM_ESC_HIDE_CURSOR);
|
||||||
|
Loading…
Reference in New Issue
Block a user