LGTM. thanks On Tue, Jul 10, 2018 at 5:18 PM Michael Niedermayer <mich...@niedermayer.cc> wrote:
> Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc> > --- > libavformat/mov.c | 19 ++++++++----------- > 1 file changed, 8 insertions(+), 11 deletions(-) > > diff --git a/libavformat/mov.c b/libavformat/mov.c > index aabf06de12..67b3e11eb9 100644 > --- a/libavformat/mov.c > +++ b/libavformat/mov.c > @@ -3301,25 +3301,22 @@ static void mov_estimate_video_delay(MOVContext > *c, AVStream* st) { > int ctts_sample = 0; > int64_t pts_buf[MAX_REORDER_DELAY + 1]; // Circular buffer to sort > pts. > int buf_start = 0; > - int buf_size = 0; > int j, r, num_swaps; > > + for (j = 0; j < MAX_REORDER_DELAY + 1; j++) > + pts_buf[j] = INT64_MIN; > + > if (st->codecpar->video_delay <= 0 && msc->ctts_data && > st->codecpar->codec_id == AV_CODEC_ID_H264) { > st->codecpar->video_delay = 0; > for(ind = 0; ind < st->nb_index_entries && ctts_ind < > msc->ctts_count; ++ind) { > - if (buf_size == (MAX_REORDER_DELAY + 1)) { > - // If circular buffer is full, then move the first > element forward. > - buf_start = (buf_start + 1); > - if (buf_start == MAX_REORDER_DELAY + 1) > - buf_start = 0; > - } else { > - ++buf_size; > - } > + buf_start = (buf_start + 1); > + if (buf_start == MAX_REORDER_DELAY + 1) > + buf_start = 0; > > // Point j to the last elem of the buffer and insert the > current pts there. > j = buf_start - 1; > - if (j < 0) j = buf_size - 1; > + if (j < 0) j = MAX_REORDER_DELAY; > pts_buf[j] = st->index_entries[ind].timestamp + > msc->ctts_data[ctts_ind].duration; > > // The timestamps that are already in the sorted buffer, and > are greater than the > @@ -3331,7 +3328,7 @@ static void mov_estimate_video_delay(MOVContext *c, > AVStream* st) { > num_swaps = 0; > while (j != buf_start) { > r = j - 1; > - if (r < 0) r = buf_size - 1; > + if (r < 0) r = MAX_REORDER_DELAY; > if (pts_buf[j] < pts_buf[r]) { > FFSWAP(int64_t, pts_buf[j], pts_buf[r]); > ++num_swaps; > -- > 2.18.0 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel