16 lines
520 B
C
16 lines
520 B
C
#include "libdav1d.h"
|
|
#include <math.h>
|
|
|
|
#define DAV1D_VERSION_AT_LEAST(x,y) \
|
|
(DAV1D_API_VERSION_MAJOR > (x) || DAV1D_API_VERSION_MAJOR == (x) && DAV1D_API_VERSION_MINOR >= (y))
|
|
|
|
#define MIN(x, y) (((x) < (y)) ? (x) : (y))
|
|
|
|
void set_threading(Dav1dSettings* s, int threads) {
|
|
#if DAV1D_VERSION_AT_LEAST(6,0)
|
|
s->n_threads = threads;
|
|
#else
|
|
s->n_tile_threads = MIN(floor(sqrt(threads)), DAV1D_MAX_TILE_THREADS);
|
|
s->n_frame_threads = MIN(ceil(threads / s->n_tile_threads), DAV1D_MAX_FRAME_THREADS);
|
|
#endif
|
|
} |