Implement guessed_pts in avcodec_decode_video2
Signed-off-by: Nicolas George <nicolas.george@normalesup.org> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
committed by
Michael Niedermayer
parent
52b2e95cd9
commit
76ad67cae7
27
cmdutils.c
27
cmdutils.c
@@ -749,33 +749,6 @@ int read_file(const char *filename, char **bufptr, size_t *size)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void init_pts_correction(PtsCorrectionContext *ctx)
|
||||
{
|
||||
ctx->num_faulty_pts = ctx->num_faulty_dts = 0;
|
||||
ctx->last_pts = ctx->last_dts = INT64_MIN;
|
||||
}
|
||||
|
||||
int64_t guess_correct_pts(PtsCorrectionContext *ctx, int64_t reordered_pts, int64_t dts)
|
||||
{
|
||||
int64_t pts = AV_NOPTS_VALUE;
|
||||
|
||||
if (dts != AV_NOPTS_VALUE) {
|
||||
ctx->num_faulty_dts += dts <= ctx->last_dts;
|
||||
ctx->last_dts = dts;
|
||||
}
|
||||
if (reordered_pts != AV_NOPTS_VALUE) {
|
||||
ctx->num_faulty_pts += reordered_pts <= ctx->last_pts;
|
||||
ctx->last_pts = reordered_pts;
|
||||
}
|
||||
if ((ctx->num_faulty_pts<=ctx->num_faulty_dts || dts == AV_NOPTS_VALUE)
|
||||
&& reordered_pts != AV_NOPTS_VALUE)
|
||||
pts = reordered_pts;
|
||||
else
|
||||
pts = dts;
|
||||
|
||||
return pts;
|
||||
}
|
||||
|
||||
FILE *get_preset_file(char *filename, size_t filename_size,
|
||||
const char *preset_name, int is_path, const char *codec_name)
|
||||
{
|
||||
|
Reference in New Issue
Block a user