AkulaBig
|
Posted: Mon Nov 04, 2024 18:17 Post subject: |
|
|
Loopback wrote: | AkulaBig wrote: | Дело в том, что многие при подсчете продолжительности расчет ведут от округленных секунд, что конечно неправильно. |
Code: | Secs := Integer(Duration / 1000); //convert miliseconds to seconds |
Что приводит вывод к старому варианту
|
Эта строка как раз у меня вопросов не вызывает. Понятно, что она является округлением до секунд по правилам математики. А вот при преобразовании в часы, минуты, секунды не надо округлять секунды, а потом от этого округления высчитывать продолжительность. То-есть обсуждать стоит только блок Custom.
Loopback wrote: |
В вашем Custom эта строка просто обрезает полученное дробное число секунд до меньшего целого, никакого округления не производится:
Code: | Secs := Integer(Duration / 1000); //convert miliseconds to seconds |
|
Это очень тонкий момент. К сожалению под рукой нет учителя математики, чтобы подтвердить правоту этого выражения. Похоже это соответствует правилам именно при преобразовании в часы, минуты, секунды. В любом случае MI работает именно по подобному алгоритму.
Loopback wrote: | Разумеется, потому что MediaInfo при форматировании не округляет, а отбрасывает миллисекунды.
|
Как я писал выше, видимо именно так должно происходить преобразование. Может у вас есть толковое словесное описание, как должно происходить преобразование? Я такого в инете не нашел. Я думаю тут причина в том, что есть разница между округлением и преобразованием. Ведь это не округление.
Loopback wrote: |
Посмотрю, но не очень скоро, вижу там много чего.
|
Конечно оставьте это до появления свободного времени. Лично меня кастомное поле вполне устраивает. И вам я написал только для того, чтобы сделать отображение одинаковым для всех. А остальные изменения да, тоже хотелось-бы учесть. Я совершенно случайно заметил, что некоторые поля не отображаются. Посмотрел, у вас оказывается в последних версиях плагина очень изменился алгоритм xml, поэтому и вылез косяк. Я просто эти строки из старого xml взял. Кстати, остальные поля я не проверял. Только те, что заметил.
Loopback wrote: |
То, что выводит GUI-версия - это уже отформатированные данные. |
Дак в этом и дело, что мы не можем отследить алгоритм преобразования. В CLI показывает часы, минуты, секунды. Но конечно это уже форматированный вывод. Скажем так, мой вывод совпадает с выводом MediaInfo и я считаю его правильным. |
|