summaryrefslogtreecommitdiff
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
parented58f8475fa8e659abc887fcd4ef1bd886be397d (diff)
downloadffmpeg-eaf566ce0b9fd33120cc564bc7cd6986de3ca724.tar.gz
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>
-rw-r--r--doc/decoders.texi7
-rw-r--r--libavcodec/libdav1d.c8
-rw-r--r--libavcodec/version.h2
3 files changed, 16 insertions, 1 deletions
diff --git a/doc/decoders.texi b/doc/decoders.texi
index 676e062e72..f18226b350 100644
--- a/doc/decoders.texi
+++ b/doc/decoders.texi
@@ -71,6 +71,13 @@ Set amount of tile threads to use during decoding. The default value is 0 (autod
Apply film grain to the decoded video if present in the bitstream. Defaults to the
internal default of the library.
+@item oppoint
+Select an operating point of a scalable AV1 bitstream (0 - 31). Defaults to the
+internal default of the library.
+
+@item alllayers
+Output all spatial layers of a scalable AV1 bitstream. The default value is false.
+
@end table
@section libdavs2
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 }
};
diff --git a/libavcodec/version.h b/libavcodec/version.h
index efa9d743f7..8b9c27378c 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,7 +29,7 @@
#define LIBAVCODEC_VERSION_MAJOR 58
#define LIBAVCODEC_VERSION_MINOR 64
-#define LIBAVCODEC_VERSION_MICRO 100
+#define LIBAVCODEC_VERSION_MICRO 101
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \