From b7bc3f0d4488b6822506b9f93121249d078c38e3 Mon Sep 17 00:00:00 2001 From: dyknon Date: Sun, 11 Jan 2026 23:04:54 +0900 Subject: Rewritten: stop using ffmpeg. better flexibility about image size. --- ytdlsb-utils.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 ytdlsb-utils.h (limited to 'ytdlsb-utils.h') diff --git a/ytdlsb-utils.h b/ytdlsb-utils.h new file mode 100644 index 0000000..abb581b --- /dev/null +++ b/ytdlsb-utils.h @@ -0,0 +1,45 @@ +#ifndef YTDLSB_UTILS_H +#define YTDLSB_UTILS_H + +#include +#include +#include +#include + +inline static int is_little_endian(){ + int i = 1; + return *(char *)(void *)&i; +} + +#define eprintf(fmt, ...) fprintf(stderr, "\n" fmt, ##__VA_ARGS__) +#define CK_INNER(errproc, expr, cond, msg, ...) ({ \ + typeof(expr) cktmp = (expr); \ + if(!(cktmp cond)){ \ + eprintf("E%"PRIdPTR" at %s:%d(%s): assert(%s)" msg "\n", \ + (intptr_t)cktmp, __FILE__, __LINE__, __func__, \ + #expr " " #cond, ##__VA_ARGS__); \ + errproc; \ + } \ + cktmp; \ +}) + +#define CK(label, expr, cond) CK_INNER(goto label, expr, cond, "") +#define CKT(label, expr) CK(label, expr, ) +#define CKP(label, expr) CK(label, expr, >= 0) +#define CKZ(label, expr) CK(label, expr, == 0) +#define CKM(label, expr) CKZ(label, expr) +#define CKR(label, expr) CK(label, expr, != NULL) +#define CKA(expr, cond) CK_INNER(abort(), expr, cond, "") +#define CKAR(expr) CKA(expr, != NULL) +#define CKAP(expr) CKA(expr, >= 0) +#define CK_WARN(expr, cond) CK_INNER(, expr, cond, "") +#define CK_MSG(label, expr, cond, msg, ...) \ + CK_INNER(goto label, expr, cond, ": " msg, ##__VA_ARGS__) +#define TRY_NUMCAST(label, type, expr) ({ \ + typeof(expr) cktmp = (expr); \ + if((type)cktmp != cktmp) goto label; \ + if(cktmp < 0 && 0 < (type)-1) goto label; \ + (type)cktmp; \ +}) + +#endif //YTDLSB_UTILS_H -- cgit v1.2.3