+static int64_t get_best_effort_duration(ConcatFile *file, AVFormatContext *avf)
+{
+ if (file->user_duration != AV_NOPTS_VALUE)
+ return file->user_duration;
+ if (file->outpoint != AV_NOPTS_VALUE)
+ return file->outpoint - file->file_inpoint;
+ if (avf->duration > 0)
+ return avf->duration - (file->file_inpoint - file->file_start_time);
+ if (file->next_dts != AV_NOPTS_VALUE)
+ return file->next_dts - file->file_inpoint;
+ return AV_NOPTS_VALUE;
+}
+