1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

nutenc/write_index: warn if 2 consecutive keyframes have the same PTS and discard the 2nd

This fixes an assertion failure and regression and restores previous behaviour
Fixes Ticket3197

An alternative would be to fail hard in this case and refuse to mux such data.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2013-12-22 18:47:28 +01:00
parent 64b98df389
commit de2a2caf4d

View File

@ -586,8 +586,15 @@ static int write_index(NUTContext *nut, AVIOContext *bc) {
int64_t last_pts= -1;
int j, k;
for (j=0; j<nut->sp_count; j++) {
int flag = (nus->keyframe_pts[j] != AV_NOPTS_VALUE) ^ (j+1 == nut->sp_count);
int flag;
int n = 0;
if (j && nus->keyframe_pts[j] == nus->keyframe_pts[j-1]) {
av_log(nut->avf, AV_LOG_WARNING, "Multiple keyframes with same PTS\n");
nus->keyframe_pts[j] = AV_NOPTS_VALUE;
}
flag = (nus->keyframe_pts[j] != AV_NOPTS_VALUE) ^ (j+1 == nut->sp_count);
for (; j<nut->sp_count && (nus->keyframe_pts[j] != AV_NOPTS_VALUE) == flag; j++)
n++;