avformat/mpegts: Use differential score for analyze()
This avoids high scores in random data that has a high 0x47 frequency Fixes Ticket3844 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
b7d5e016a3
commit
427bcdf035
@ -506,6 +506,7 @@ static int analyze(const uint8_t *buf, int size, int packet_size, int *index)
|
|||||||
int stat[TS_MAX_PACKET_SIZE];
|
int stat[TS_MAX_PACKET_SIZE];
|
||||||
int i;
|
int i;
|
||||||
int best_score = 0;
|
int best_score = 0;
|
||||||
|
int best_score2 = 0;
|
||||||
|
|
||||||
memset(stat, 0, packet_size * sizeof(*stat));
|
memset(stat, 0, packet_size * sizeof(*stat));
|
||||||
|
|
||||||
@ -517,11 +518,13 @@ static int analyze(const uint8_t *buf, int size, int packet_size, int *index)
|
|||||||
best_score = stat[x];
|
best_score = stat[x];
|
||||||
if (index)
|
if (index)
|
||||||
*index = x;
|
*index = x;
|
||||||
|
} else if (stat[x] > best_score2) {
|
||||||
|
best_score2 = stat[x];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return best_score;
|
return best_score - best_score2;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* autodetect fec presence. Must have at least 1024 bytes */
|
/* autodetect fec presence. Must have at least 1024 bytes */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user