diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c index 9a24a3e408d58546dd121816b8df3df6ff78b139..52a7c106170de95112ba05cf757b7801d99cb136 100644 --- a/libavcodec/libdav1d.c +++ b/libavcodec/libdav1d.c @@ -34,6 +34,7 @@ typedef struct Libdav1dContext { Dav1dData data; int tile_threads; + int apply_grain; } Libdav1dContext; static av_cold int libdav1d_init(AVCodecContext *c) @@ -46,6 +47,7 @@ static av_cold int libdav1d_init(AVCodecContext *c) dav1d_default_settings(&s); s.n_tile_threads = dav1d->tile_threads; + s.apply_grain = dav1d->apply_grain; s.n_frame_threads = FFMIN(c->thread_count ? c->thread_count : av_cpu_count(), DAV1D_MAX_FRAME_THREADS); res = dav1d_open(&dav1d->c, &s); @@ -216,6 +218,7 @@ static av_cold int libdav1d_close(AVCodecContext *c) #define VD AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_DECODING_PARAM static const AVOption libdav1d_options[] = { { "tilethreads", "Tile threads", OFFSET(tile_threads), AV_OPT_TYPE_INT, { .i64 = 1 }, 1, DAV1D_MAX_TILE_THREADS, VD }, + { "filmgrain", "Apply Film Grain", OFFSET(apply_grain), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, VD }, { NULL } };