2018-10-19 4:58 GMT+02:00, Leo Izen <leo.i...@gmail.com>: > --- > fftools/ffmpeg.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c > index da4259a9a8..5d68194676 100644 > --- a/fftools/ffmpeg.c > +++ b/fftools/ffmpeg.c > @@ -2045,12 +2045,14 @@ static void do_streamcopy(InputStream *ist, > OutputStream *ost, const AVPacket *p > if (ost->enc_ctx->codec_type == AVMEDIA_TYPE_VIDEO) > ost->sync_opts++; > > - if (pkt->pts != AV_NOPTS_VALUE) > + if (ist->framerate.num) > + opkt.pts = av_rescale_q(ist->pts, AV_TIME_BASE_Q, > ost->mux_timebase) - ost_tb_start_time; > + else if (pkt->pts != AV_NOPTS_VALUE) > opkt.pts = av_rescale_q(pkt->pts, ist->st->time_base, > ost->mux_timebase) - ost_tb_start_time; > else > opkt.pts = AV_NOPTS_VALUE; > > - if (pkt->dts == AV_NOPTS_VALUE) > + if (pkt->dts == AV_NOPTS_VALUE || ist->framerate.num) > opkt.dts = av_rescale_q(ist->dts, AV_TIME_BASE_Q, > ost->mux_timebase); > else > opkt.dts = av_rescale_q(pkt->dts, ist->st->time_base, > ost->mux_timebase); > @@ -2602,7 +2604,7 @@ static int process_input_packet(InputStream *ist, > const AVPacket *pkt, int no_eo > avpkt = *pkt; > } > > - if (pkt && pkt->dts != AV_NOPTS_VALUE) { > + if (pkt && pkt->dts != AV_NOPTS_VALUE && !ist->framerate.num) { > ist->next_dts = ist->dts = av_rescale_q(pkt->dts, > ist->st->time_base, AV_TIME_BASE_Q); > if (ist->dec_ctx->codec_type != AVMEDIA_TYPE_VIDEO || > !ist->decoding_needed) > ist->next_pts = ist->pts = ist->dts;
How can this be tested? Carl Eugen _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel