On Sun, Nov 15, 2015 at 5:55 PM, Michael Niedermayer <mich...@niedermayer.cc> wrote: > On Sun, Nov 15, 2015 at 04:04:42PM +0700, Muhammad Faiz wrote: >> no warning when packet duration is valid >> >> patch attached > >> From 789e9f0e93a246fd820401e6c298835bf40dc0c3 Mon Sep 17 00:00:00 2001 >> From: Muhammad Faiz <mfc...@gmail.com> >> Date: Sun, 15 Nov 2015 15:25:43 +0700 >> Subject: [PATCH] ffmpeg: fix overriding packet duration warning >> >> no warning when packet duration is valid >> --- >> ffmpeg.c | 7 ++++--- >> 1 file changed, 4 insertions(+), 3 deletions(-) >> >> diff --git a/ffmpeg.c b/ffmpeg.c >> index 3341777..5b9e38e 100644 >> --- a/ffmpeg.c >> +++ b/ffmpeg.c >> @@ -673,10 +673,11 @@ static void write_frame(AVFormatContext *s, AVPacket >> *pkt, OutputStream *ost) >> } >> >> if (ost->frame_rate.num && ost->is_cfr) { >> - if (pkt->duration > 0) >> + int64_t new_duration = av_rescale_q(1, >> av_inv_q(ost->frame_rate), >> + ost->st->time_base); >> + if (pkt->duration > 0 && pkt->duration != new_duration) >> av_log(NULL, AV_LOG_WARNING, "Overriding packet duration by >> frame rate, this should not happen\n"); >> - pkt->duration = av_rescale_q(1, av_inv_q(ost->frame_rate), >> - ost->st->time_base); >> + pkt->duration = new_duration; > > does it work to leave the duration instead of overriding if its > already set ? > i mean the new cfr duration code is certainly not correct for many > common cases (like 24000/1001 framerates at a 90khz timebase) so > overriding things by it if something else already set a (more correct?) > duration might be a bad idea
It just change warning message, when actually pkt->duration is equal to new_duration, no warning is generated. It does not change the previous behavior. About overriding, don't ask me. I don't know for that. That is not from me. It is the previous behavior. Thank's. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel