summaryrefslogtreecommitdiff
path: root/libavcodec/libdav1d.c
diff options
context:
space:
mode:
authorThierry Foucu <tfoucu@gmail.com>2019-11-27 16:25:33 -0800
committerJames Almer <jamrial@gmail.com>2019-11-28 10:21:20 -0300
commiteaf566ce0b9fd33120cc564bc7cd6986de3ca724 (patch)
tree049e8064aeac709ac1ad192eb4d02c1a7b934ad8 /libavcodec/libdav1d.c
parented58f8475fa8e659abc887fcd4ef1bd886be397d (diff)
Add options for spatial layers.
Disable by default to output all the layers, to match libaomdec wrapper. Add option to select the operating point for the spatial layers. Update the documentation with the new options. Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/libdav1d.c')
-rw-r--r--libavcodec/libdav1d.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c
index cf4b178f1d..5248e3f9f5 100644
--- a/libavcodec/libdav1d.c
+++ b/libavcodec/libdav1d.c
@@ -40,6 +40,8 @@ typedef struct Libdav1dContext {
int tile_threads;
int frame_threads;
int apply_grain;
+ int operating_point;
+ int all_layers;
} Libdav1dContext;
static const enum AVPixelFormat pix_fmt[][3] = {
@@ -134,6 +136,10 @@ static av_cold int libdav1d_init(AVCodecContext *c)
if (dav1d->apply_grain >= 0)
s.apply_grain = dav1d->apply_grain;
+ s.all_layers = dav1d->all_layers;
+ if (dav1d->operating_point >= 0)
+ s.operating_point = dav1d->operating_point;
+
s.n_tile_threads = dav1d->tile_threads
? dav1d->tile_threads
: FFMIN(floor(sqrt(threads)), DAV1D_MAX_TILE_THREADS);
@@ -378,6 +384,8 @@ static const AVOption libdav1d_options[] = {
{ "tilethreads", "Tile threads", OFFSET(tile_threads), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, DAV1D_MAX_TILE_THREADS, VD },
{ "framethreads", "Frame threads", OFFSET(frame_threads), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, DAV1D_MAX_FRAME_THREADS, VD },
{ "filmgrain", "Apply Film Grain", OFFSET(apply_grain), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VD },
+ { "oppoint", "Select an operating point of the scalable bitstream", OFFSET(operating_point), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 31, VD },
+ { "alllayers", "Output all spatial layers", OFFSET(all_layers), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VD },
{ NULL }
};