avformat/movenc: Add movie_timescale option to AVIF

Allow specifying the movie_timescale options to AVIF ouptut.

This also makes sure that when movie_timescale is not specified,
the default value of 1000 is used instead of 0. Animated AVIF
files which don't specify the movie_timescale will have the
correct duration written in the track and movie headers after this
change (instead of writing 0).

Signed-off-by: Vignesh Venkatasubramanian <vigneshv@google.com>
Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
This commit is contained in:
Vignesh Venkatasubramanian 2023-01-04 14:16:18 -08:00 committed by Zhao Zhili
parent 8e58d20e10
commit f2b1750871

View File

@ -7758,6 +7758,11 @@ static const AVCodecTag codec_f4v_tags[] = {
};
#if CONFIG_AVIF_MUXER
static const AVOption avif_options[] = {
{ "movie_timescale", "set movie timescale", offsetof(MOVMuxContext, movie_timescale), AV_OPT_TYPE_INT, {.i64 = MOV_TIMESCALE}, 1, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM},
{ NULL },
};
static const AVCodecTag codec_avif_tags[] = {
{ AV_CODEC_ID_AV1, MKTAG('a','v','0','1') },
{ AV_CODEC_ID_NONE, 0 },
@ -7767,6 +7772,7 @@ static const AVCodecTag *const codec_avif_tags_list[] = { codec_avif_tags, NULL
static const AVClass mov_avif_muxer_class = {
.class_name = "avif muxer",
.item_name = av_default_item_name,
.option = avif_options,
.version = LIBAVUTIL_VERSION_INT,
};
#endif