avformat/vivo: Favor setting fps from explicit fractions

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit bf1e93bdc9)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer 2021-12-06 11:38:39 +01:00
parent deba3d0372
commit 480f1a198c

View File

@ -121,7 +121,7 @@ static int vivo_get_packet_header(AVFormatContext *s)
static int vivo_read_header(AVFormatContext *s) static int vivo_read_header(AVFormatContext *s)
{ {
VivoContext *vivo = s->priv_data; VivoContext *vivo = s->priv_data;
AVRational fps = { 1, 25}; AVRational fps = { 0 };
AVStream *ast, *vst; AVStream *ast, *vst;
unsigned char *line, *line_end, *key, *value; unsigned char *line, *line_end, *key, *value;
long value_int; long value_int;
@ -212,13 +212,16 @@ static int vivo_read_header(AVFormatContext *s)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
value_used = 1; value_used = 1;
fps = av_inv_q(av_d2q(d, 10000)); if (!fps.num && !fps.den)
fps = av_inv_q(av_d2q(d, 10000));
} }
if (!value_used) if (!value_used)
av_dict_set(&s->metadata, key, value, 0); av_dict_set(&s->metadata, key, value, 0);
} }
} }
if (!fps.num || !fps.den)
fps = (AVRational){ 1, 25 };
avpriv_set_pts_info(ast, 64, 1, ast->codecpar->sample_rate); avpriv_set_pts_info(ast, 64, 1, ast->codecpar->sample_rate);
avpriv_set_pts_info(vst, 64, fps.num, fps.den); avpriv_set_pts_info(vst, 64, fps.num, fps.den);