lavf: move AVStream.pts_reorder_error[_count] to AVStreamInternal

Those are private fields, no reason to have them exposed in a public
header.
This commit is contained in:
Anton Khirnov 2020-10-09 09:22:36 +02:00
parent 25bade3258
commit 36d7c1dee8
3 changed files with 15 additions and 15 deletions

View File

@ -1184,12 +1184,6 @@ typedef struct AVStream {
*/
int update_initial_durations_done;
/**
* Internal data to generate dts from pts
*/
int64_t pts_reorder_error[MAX_REORDER_DELAY+1];
uint8_t pts_reorder_error_count[MAX_REORDER_DELAY+1];
/**
* An opaque field for libavformat internal usage.
* Must not be accessed in any way by callers.

View File

@ -225,6 +225,12 @@ struct AVStreamInternal {
} *info;
/**
* Internal data to generate dts from pts
*/
int64_t pts_reorder_error[MAX_REORDER_DELAY+1];
uint8_t pts_reorder_error_count[MAX_REORDER_DELAY+1];
/**
* Internal data to analyze DTS and detect faulty mpeg streams
*/

View File

@ -1027,8 +1027,8 @@ static int64_t select_from_pts_buffer(AVStream *st, int64_t *pts_buffer, int64_t
if (dts == AV_NOPTS_VALUE) {
int64_t best_score = INT64_MAX;
for (i = 0; i<delay; i++) {
if (st->pts_reorder_error_count[i]) {
int64_t score = st->pts_reorder_error[i] / st->pts_reorder_error_count[i];
if (st->internal->pts_reorder_error_count[i]) {
int64_t score = st->internal->pts_reorder_error[i] / st->internal->pts_reorder_error_count[i];
if (score < best_score) {
best_score = score;
dts = pts_buffer[i];
@ -1039,13 +1039,13 @@ static int64_t select_from_pts_buffer(AVStream *st, int64_t *pts_buffer, int64_t
for (i = 0; i<delay; i++) {
if (pts_buffer[i] != AV_NOPTS_VALUE) {
int64_t diff = FFABS(pts_buffer[i] - dts)
+ (uint64_t)st->pts_reorder_error[i];
diff = FFMAX(diff, st->pts_reorder_error[i]);
st->pts_reorder_error[i] = diff;
st->pts_reorder_error_count[i]++;
if (st->pts_reorder_error_count[i] > 250) {
st->pts_reorder_error[i] >>= 1;
st->pts_reorder_error_count[i] >>= 1;
+ (uint64_t)st->internal->pts_reorder_error[i];
diff = FFMAX(diff, st->internal->pts_reorder_error[i]);
st->internal->pts_reorder_error[i] = diff;
st->internal->pts_reorder_error_count[i]++;
if (st->internal->pts_reorder_error_count[i] > 250) {
st->internal->pts_reorder_error[i] >>= 1;
st->internal->pts_reorder_error_count[i] >>= 1;
}
}
}