diff options
| author | dyknon dyknonr5fjp | 2026-01-11 23:04:54 +0900 |
|---|---|---|
| committer | dyknon dyknonr5fjp | 2026-01-11 23:04:54 +0900 |
| commit | b7bc3f0d4488b6822506b9f93121249d078c38e3 (patch) | |
| tree | 99d287cdefbfeeb20c4470c4f1bfd1eb909e7538 /ytdlsb-tasks.h | |
| parent | 8439d0383adaee15bfd9a82a4d76db352690750e (diff) | |
Rewritten: stop using ffmpeg. better flexibility about image size.
Diffstat (limited to 'ytdlsb-tasks.h')
| -rw-r--r-- | ytdlsb-tasks.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/ytdlsb-tasks.h b/ytdlsb-tasks.h new file mode 100644 index 0000000..86d3070 --- /dev/null +++ b/ytdlsb-tasks.h @@ -0,0 +1,39 @@ +#include <poll.h> +#include <time.h> +#include <curl/curl.h> +#include "ytdlsb-utils.h" + +typedef int ytdlsb_sock; +#define YTDLSB_POLLIN POLLIN +#define YTDLSB_POLLPRI POLLPRI +#define YTDLSB_POLLOUT POLLOUT + +struct ytdlsb_pollfd{ + ytdlsb_sock fd; + short events; + short revents; +}; +struct ytdlsb_task{ + int (*process)(struct ytdlsb_task *); + struct ytdlsb_pollfd *pollfd; + size_t pollfd_num; + struct timespec timeout; + void *data; +}; +struct ytdlsb_tasks{ + struct ytdlsb_task *tasks; + size_t task_num; +}; + +int ytdlsb_tasks_step(struct ytdlsb_tasks *tasks); +int ytdlsb_task_timeout_ms(struct ytdlsb_task *task, int ms); +int ytdlsb_task_timeout_ms_min(struct ytdlsb_task *task, int ms); +int ytdlsb_task_timeout_unset(struct ytdlsb_task *task); + +int ytdlsb_task_event_init(struct ytdlsb_task *task, + int (*cb)(void *), void *data); +void ytdlsb_task_event_destroy(struct ytdlsb_task *task); +int ytdlsb_task_event_wake(struct ytdlsb_task *task); + +int ytdlsb_task_fdto_from_curl( + struct ytdlsb_task *task, size_t off, int overwrite_timeout, CURLM* cm); |
