diff options
author | Anton Khirnov <anton@khirnov.net> | 2023-05-07 15:24:01 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2023-05-15 10:56:48 +0200 |
commit | a238ba9c3c9987bccb27e9d37fcef2ae8b355aeb (patch) | |
tree | f1abb0131bba98dee6235a7a0d39b3e69d72d25e /fftools/ffmpeg.c | |
parent | 7d1d61cc5f57708434ba720b03234b3dd93a4d1e (diff) | |
download | ffmpeg-a238ba9c3c9987bccb27e9d37fcef2ae8b355aeb.tar.gz |
fftools/ffmpeg: stop using deprecated ticks_per_frame
Diffstat (limited to 'fftools/ffmpeg.c')
-rw-r--r-- | fftools/ffmpeg.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 9920f946dc..e2ada7a352 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -1498,12 +1498,13 @@ static int process_input_packet(InputStream *ist, const AVPacket *pkt, int no_eo } else if (pkt->duration) { ist->next_dts += av_rescale_q(pkt->duration, pkt->time_base, AV_TIME_BASE_Q); } else if(ist->dec_ctx->framerate.num != 0) { - int ticks = ist->last_pkt_repeat_pict >= 0 ? - ist->last_pkt_repeat_pict + 1 : - ist->dec_ctx->ticks_per_frame; - ist->next_dts += ((int64_t)AV_TIME_BASE * - ist->dec_ctx->framerate.den * ticks) / - ist->dec_ctx->framerate.num / ist->dec_ctx->ticks_per_frame; + int fields = (ist->codec_desc && + (ist->codec_desc->props & AV_CODEC_PROP_FIELDS)) ? + ist->last_pkt_repeat_pict + 1 : 2; + AVRational field_rate = av_mul_q(ist->dec_ctx->framerate, + (AVRational){ 2, 1 }); + + ist->next_dts += av_rescale_q(fields, av_inv_q(field_rate), AV_TIME_BASE_Q); } break; } |