@ -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 }
} ;