[wlx/wdx] TCMediaInfo
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Плагины Total Commander

#1: [wlx/wdx] TCMediaInfo Author: Loopback PostPosted: Tue Sep 08, 2009 11:27
    —
TCMediaInfo - контентный/листерный плагин для извлечения информации из видео и аудио файлов. Плагин использует библиотеку MediaInfo и поддерживает все форматы, которые поддерживаются библиотекой.

Поскольку библиотека MediaInfo может извлекать множество метаданных, плагин, будучи полностью настраиваемым, позволяет получать практически любую информацию из медиа-файлов. По умолчанию ряд наиболее полезных полей и режимов просмотра уже настроены в стандартной конфигурации. Поддержка скриптового интерпретатора позволяет полностью настроить вывод под свои нужды.

Контентный плагин умеет кэшировать информацию в базе данных, что существенно ускоряет последующий доступ к ней.

Ссылки

TCMediaInfo на Wincmd.ru

Онлайн-версия справки

Новые версии библиотеки MediaInfo

Предыдущие версии плагина

Ранние беты (если вдруг кому-то надо)


История создания

Долгое время пользовал хороший плагин Media, но к сожалению, он не работает с MKV, OGM и другими новыми форматами. Недавно наткнулся на тему, которая напомнила о существовании отличной библиотеки MediaInfo. Но вариант её использования, как описано в этой теме, требует регистрации компонентов и для меня отпадает как непортабельный. Посему решено было написать свой интерфейс для библиотеки.


Last edited by Loopback on Tue Jun 25, 2024 13:14; edited 3 times in total

#2: Re: [wdx] TCMediaInfo Author: 790 PostPosted: Tue Sep 08, 2009 23:21
    —
Loopback wrote:
Недавно наткнулся на тему http://forum.wincmd.ru/viewtopic.php?t=12141


Ну и зачем было создавать новую тему? Пожелания, предложения и вопросы уже написаны там - вот на них хотелось бы получить ответы... или теперь надо копировать всё сюда?

#3:  Author: Alextp PostPosted: Tue Sep 08, 2009 23:27
    —
Новый плагин, новая тема.
автору: плагин подд-ет аудио (mp3,ogg и т.д.)?

#4:  Author: 790 PostPosted: Tue Sep 08, 2009 23:53
    —
Если плагин использовался, то при закрытии ТС или SuperWDX - окно AccessViolation с грохотом и прочими спец-эффектами...

#5:  Author: Tol!kLocation: Арзамас PostPosted: Wed Sep 09, 2009 00:54
    —
Для AVC+AAC в Матрёшке не сообщает ни видео ни аудио поток,
хотя для AVC+AC3 сообщает и то и другое

#6:  Author: 790 PostPosted: Wed Sep 09, 2009 01:33
    —
Tol!k wrote:
Для AVC+AAC в Матрёшке не сообщает ни видео ни аудио поток

У меня так же. Наверно, надо поставить Audio Bitrate=BitRate/String - раньше так работало.
--------------------

Не получилось сделать Duration (custom), чтоб было HH:MM:SS (без микросекунд!!)
--------------------

Одним из достоинств wdx_Media 0.6 является "база" видео, куда 1 раз записывается инфа о видео-файле и больше не нужно её каждый раз извлекать и тратить время.
А ещё там есть список кодеков, которые можно обзывать как тебе захочется, сокращать названия, а то некоторые по пол-экрана занимают...

#7:  Author: DrSharkLocation: Kyiv, Ukraine PostPosted: Wed Sep 09, 2009 04:31
    —
Для *.flv, *.swf, *.mid/*.midi/*.rmi и *.rmvb вообще никакие параметры не выводит. Хотя сама программа Mediainfo (у меня старая 0.7.7.4) с ними справляется.
И ещё замечание: битрейт Bitrate.KBps в килобитах выводится, по-этому будет более правильно в плагине применять сокращение Kbps, т.к. большую B принято исвользовать для обозначения байтов (подробнее тут).

#8:  Author: Loopback PostPosted: Wed Sep 09, 2009 10:56
    —
790 wrote:
Если плагин использовался, то при закрытии ТС или SuperWDX - окно AccessViolation с грохотом и прочими спец-эффектами...

Вот это странно, у меня такого не было ни разу. Правда тестировал только на XP.

Alextp wrote:

автору: плагин подд-ет аудио (mp3,ogg и т.д.)?

Да, плюс всё что подерживает (и будет поддерживать в будущем) MediaInfo. Плагин - это просто интерфейс для неё.

Tol!k wrote:
Для AVC+AAC в Матрёшке не сообщает ни видео ни аудио поток,
хотя для AVC+AC3 сообщает и то и другое

Родная GUI-утилита тоже не выводит его... похоже библиотека пока не умеет получать эту информацию.

790 wrote:

Не получилось сделать Duration (custom), чтоб было HH:MM:SS (без микросекунд!!)

Думаю проще и быстрее всего будет поменять базовый параметр

Code:

Duration (custom)=Duration/String3


и использовать выражение:

Code:

[Duration (custom)]
DefaultExpr=Copy(var,1,Length(var)-4)


790 wrote:

Одним из достоинств wdx_Media 0.6 является "база" видео, куда 1 раз записывается инфа о видео-файле и больше не нужно её каждый раз извлекать и тратить время.

Да, интересная вещь. Что ж, если к плагину будет интерес, подумаю об этом.

790 wrote:

А ещё там есть список кодеков, которые можно обзывать как тебе захочется, сокращать названия, а то некоторые по пол-экрана занимают...

Согласен, такая фича не помешает. Можно попробовать прикрутить.

DrShark wrote:
Для *.flv, *.swf, *.mid/*.midi/*.rmi и *.rmvb вообще никакие параметры не выводит. Хотя сама программа Mediainfo (у меня старая 0.7.7.4) с ними справляется.

Просто этих расширений не было в списке поддерживаемых. Нужно их добавить в ключ Formats в настройках и переустановить плагин, чтобы TC получил новый Detect String.

DrShark wrote:

И ещё замечание: битрейт Bitrate.KBps в килобитах выводится, по-этому будет более правильно в плагине применять сокращение Kbps, т.к. большую B принято исвользовать для обозначения байтов (подробнее тут).

Ок, принимаю.

#9:  Author: Alextp PostPosted: Wed Sep 09, 2009 12:52
    —
1 Лучше назвать .ini как MediaInfo.Sample.ini, и копировать в Mediainfo.ini при запуске.
2. Можно сделать detect string пустой, и определять форматы по строке formats внутри плагина. Так плагин не будет требовать переустановки при изменении formats

PS Похоже, смысла писать AudioInfo 2 уже нет.

#10:  Author: 790 PostPosted: Wed Sep 09, 2009 13:03
    —
Loopback wrote:
790 wrote:
Если плагин использовался, то при закрытии ТС или SuperWDX - окно AccessViolation с грохотом и прочими спец-эффектами...

Вот это странно, у меня такого не было ни разу. Правда тестировал только на XP.

Ну а я на чём? WinXP SP2.
Может проблема в связке SuperWDX + MediaInfo ? Или ты тестируешь на ТС 7.5 ? а я на ТС 7.04а

Loopback wrote:
Tol!k wrote:
Для AVC+AAC в Матрёшке не сообщает ни видео ни аудио поток, хотя для AVC+AC3 сообщает и то и другое

Родная GUI-утилита тоже не выводит его... похоже библиотека пока не умеет получать эту информацию.

MediaInfo_DLL_0.7.9_Windows_i386 получает эту информацию.

Loopback wrote:
790 wrote:

Одним из достоинств wdx_Media 0.6 является "база" видео...

Да, интересная вещь. Что ж, если к плагину будет интерес, подумаю об этом.

А к этой базе ещё и прикручена микро-прога по очистке базы от устаревших записей Smile
---------------
На мой взгляд, нужно взять готовый плагин wdx_Media 0.6 и просто добавить ему поддержку недостающих форматов, чем изобретать всё по новой...
(А может оно итак всё есть у автора, просто не выложено на wincmd.ru или где-то ещё и не можем найти?)

#11:  Author: Loopback PostPosted: Wed Sep 09, 2009 14:13
    —
Alextp wrote:

1 Лучше назвать .ini как MediaInfo.Sample.ini, и копировать в Mediainfo.ini при запуске.

Согласен, уже думал об этом. На всякий случай, можно сделать копирование сэмпла в рабочий файл, если пользователь забыл это сделать.
Alextp wrote:

2. Можно сделать detect string пустой, и определять форматы по строке formats внутри плагина. Так плагин не будет требовать переустановки при изменении formats

Это, конечно, сделать можно, но тогда плагин будет вызываться коммандером для всех файлов. Хотя, может это не сильно замедлит работу, зато удобство налицо.

790 wrote:

Ну а я на чём? WinXP SP2.
Может проблема в связке SuperWDX + MediaInfo ? Или ты тестируешь на ТС 7.5 ? а я на ТС 7.04а

И там, и там. Посмотрю, в принципе есть идея что это может быть.

790 wrote:

MediaInfo_DLL_0.7.9_Windows_i386 получает эту информацию.

Так плагин и использует эту версию. Ничего не выводится.
А ты как проверяешь?

790 wrote:

На мой взгляд, нужно взять готовый плагин wdx_Media 0.6 и просто добавить ему поддержку недостающих форматов, чем изобретать всё по новой...

Ну скажем так, я ничего и не изобретал - библиотека MediaInfo существует не первый год и поддерживает кучу форматов. Более того, есть шанс что она будет развиваться дальше. Задача стояла удобно использовать её в TC.
790 wrote:

(А может оно итак всё есть у автора, просто не выложено на wincmd.ru или где-то ещё и не можем найти?)

Может быть, я новее не встречал. И исходников ее нет, так что и говорить в общем-то не о чем... Впрочем, предполагаю что добавить в плагин поддержку того множества форматов, что поддерживает MediaInfo - адский труд, особенно если учесть, что большинство SDK пишутся на С, а плагин написан на Delphi.

#12:  Author: Alextp PostPosted: Wed Sep 09, 2009 15:20
    —
Loopback wrote:
На всякий случай, можно сделать копирование сэмпла в рабочий файл

даже нужно

Loopback wrote:
для всех файлов. Хотя, может это не сильно замедлит работу

думаю, не сильно. Плагин вызывается для папок, где все равно почти всё- аудиофайлы..

#13:  Author: 790 PostPosted: Wed Sep 09, 2009 16:40
    —
Loopback
Я извиняюсь, может не понял о чём идёт речь, КОДЕКИ видео и аудио в mkv показываются, BitRate не показывается

Вот пример (MediaInfoActiveX.dll 0.7.9):
(фильм).mkv | 01:38:48.040 | V_MPEG4/ISO/AVC @ | AAC LC-SBR @ | 1/6

Вот как раз BitRate после @ отсутствует

#14:  Author: Loopback PostPosted: Wed Sep 09, 2009 18:11
    —
790 wrote:
Я извиняюсь, может не понял о чём идёт речь, КОДЕКИ видео и аудио в mkv показываются, BitRate не показывается
Вот пример (MediaInfoActiveX.dll 0.7.9):
(фильм).mkv | 01:38:48.040 | V_MPEG4/ISO/AVC @ | AAC LC-SBR @ | 1/6
Вот как раз BitRate после @ отсутствует

Ну так я про это и говорю, и официальная оболочка c той же библиотекой тоже битрейт для пары AVC/AAC не показывает:

http://total.darkhost.ru/images/mkv_avi.png

В то время как для AVI все ок.

#15:  Author: Tol!kLocation: Арзамас PostPosted: Wed Sep 09, 2009 18:40
    —
790 wrote:
Наверно, надо поставить Audio Bitrate=BitRate/String - раньше так работало.
Перестал показываться поток для AC3
790 wrote:
Может проблема в связке SuperWDX + MediaInfo?
WinXP SP3, ТС 7.50, SuperWDX установлен, но не в связке с MediaInfo — AccessViolation нет

#16:  Author: SamLab PostPosted: Wed Sep 09, 2009 23:56
    —
Аудиокодек не отображается в колонке

#17:  Author: 790 PostPosted: Sat Sep 12, 2009 02:04
    —
Попытка закрыть Super_WDX после настройки в нём плагина.



Тоже самое и при выходе из самого ТС, на этот раз уже использовал 7.5 final.

#18:  Author: Loopback PostPosted: Sat Sep 12, 2009 18:27
    —
SamLab wrote:
Аудиокодек не отображается в колонке

Ну тут еще много чего надо донастраивать Smile Надо смотреть, в каких полях что выводится и найти правильные.

790 wrote:
Попытка закрыть Super_WDX после настройки в нём плагина.

Скорее всего Super_WDX выгружает плагин, при этом происходит выгрузка библиотеки. В следующей версии будет исправление (надеюсь, т.к. у себя такой ошибки не повторил).

#19:  Author: mauricio PostPosted: Fri Sep 25, 2009 12:34
    —
Здравствуйте. Постараюсь понятно объяснить проблему.

К примеру открываю папку с видео роликами в режиме инфо - Видео
Колонки стандартные - (Размер) - (Время) - (Ширина/Высота) - (Кадры) - (Кодек)
И все ролики, допустим 300 штук не умещаются в окне, соответственно появляется скролл бар, но извлечение инфы из файлов происходит только до конца окна, т.e всю папку почему то плагин сразу не читает (Как например explorer в режиме просмотра эскизов страниц - неважно сколько файлов открыл - подождал и вся папка как на ладони)
Здесь же приходится скролить вниз - чтение начинает идти, НО при этом возникают дикие тормоза (проц Core 2 Q9550 Ram 4 Gb) загрузка 50-70 % все 4 ядра - просто жуть!
В чем может быть проблема, в глючности плагина?

--
ps при просмотре инфы Аудио (Размер - Время - Битрет - Тип - Частота) всё идёт практически без задержек. Ну а Фото тем более.
TC 7.50 от Samlab
Насколько помню в 7.04 такого вроде не было((

#20:  Author: 790 PostPosted: Mon Sep 28, 2009 19:48
    —
mauricio
да, плагин и весь ТС бывает зависает, когда встречается такой "хитрый" видео-файл, в котором неправильно указаны кодеки и т.п. или ещё какие-то глюки. И при этом ТС не может открыть панель даже в обычном (подробном) режиме. Суть в том, что автор плагина тут не причём, просто не все делают видео-файлы "стандартными" Smile

Помогает, но не всегда: ограничить размер "проверяемых" видео-файлов, например, *.avi<3000mb... (в основном, контейнеры avi могут содержать такую пакость)

#21:  Author: Loopback PostPosted: Tue Sep 29, 2009 11:13
    —
В принципе, для контентных плагинов с долгой загрузкой в API тотала есть специальный механизм. Но я не представляю, как его реализовать с этой библиотекой, поскольку нет возможности получить её состояние (файл загружается или уже загружен). Да и не спасет это от нагрузки процессора, т.к. сама библиотека его нагружает при загрузке файла.

Вот если все же реализую базу, тогда этот процесс будет одноразовым.

#22:  Author: 790 PostPosted: Wed Dec 16, 2009 21:25
    —
Плагин ещё живой? Развитие продолжается?

Проблемы так и остались:
Главное: AccessViolation с Super_WDX.
А ещё:
нет "базы", ранее "прохешированых" фильмов,
нет возможности переименовывать кодеки по своему.

И плагин до сих пор не выложен wincmd.ru

#23:  Author: Loopback PostPosted: Wed Dec 16, 2009 23:02
    —
Скажем так - пока "подвешен". В последнее время занимался в основном TCTorrent. Ну тот в общем-то почти завершен, по окончании, наверное, займусь этим.

#24:  Author: SamLab PostPosted: Sat Jan 02, 2010 17:08
    —
Как по мне - Торрент-плагин и не нужен при наличии МюТоррента, а вот текущий плагин очень необходим, но нуждается в доработке!

#25:  Author: SCHMasterLocation: Киев PostPosted: Mon Jan 11, 2010 05:38
    —
Quote:
Впрочем, предполагаю что добавить в плагин поддержку того множества форматов, что поддерживает MediaInfo - адский труд, особенно если учесть, что большинство SDK пишутся на С, а плагин написан на Delphi

Была у меня мысль подключить MediaInfo (с SDK разобрался вроде). Но отказался. Причина тривиальна MediaInfo довольно долго извлекает информацию для почти всех типов файлов...
Возможно когда доберусь все-таки до делфей, что-нибудь и придумаю (самому очень нужно), но пока нет физически времени...

#26:  Author: Loopback PostPosted: Mon Jan 11, 2010 12:52
    —
SamLab wrote:
Как по мне - Торрент-плагин и не нужен при наличии МюТоррента, а вот текущий плагин очень необходим, но нуждается в доработке!

Ну кому как... имхо для быстрого просмотра юТоррент неудобен.
SCHMaster wrote:
Была у меня мысль подключить MediaInfo (с SDK разобрался вроде). Но отказался. Причина тривиальна MediaInfo довольно долго извлекает информацию для почти всех типов файлов...

Да, действительно медленно. И если для одного файла это почти незаметно, контентный плагин работает очень задумчиво... Чувствую, без базы тут не обойтись.

#27:  Author: 790 PostPosted: Mon Jan 11, 2010 13:25
    —
SCHMaster
Ну так твой же wdx media? Благодаря "Базе данных" там всё работает очень быстро, т.к. не извлекает инфу каждый раз. А благодаря codecs.cfg можно изменять названия кодеков на свои собственные.
Не хватает только поддержки новомодных форматов *.mkv;*.flv;*.tp ... , а если б было, так и не нужен MediaInfo

#28:  Author: SCHMasterLocation: Киев PostPosted: Mon Jan 11, 2010 14:11
    —
Разобрать, что к чему в этих "новомодных" форматах - нужно время. Да и, подозреваю, скорость не увеличится от этого. Но... Все равно основная проблема - нехватка времени на поддержку плагина.

#29:  Author: Den_KlimovLocation: Ukraine.Kiev PostPosted: Sat Feb 06, 2010 04:05
    —
SCHMaster wrote:
Разобрать, что к чему в этих "новомодных" форматах - нужно время. Да и, подозреваю, скорость не увеличится от этого. Но... Все равно основная проблема - нехватка времени на поддержку плагина.

Очень жаль. Sad

#30:  Author: SCHMasterLocation: Киев PostPosted: Thu Feb 11, 2010 14:13
    —
Еще "ложка дегтя"...
Мне, по роду работы, каждый день, причем постоянно, приходится иметь дело с видео в несжатом формате (AVI, MOV). Файлы такого рода занимают гигабайты (есть и по 20-30 гиг). Представляете, сколько времени занимает обработка такого файла (просчет битрейта видео в AVI формате вычесляется парсингом всего файла хоть в моем плагине, хоть через MediaInfo)? "Затыкаются" и мой плагин и оболочка для MediaInfo, если ее использую. А если, не дай Бог, случайно на такой сетевой файл нарвешься, то все. Спасает только CTRL+ALT+ESC и "прибивание" ТС. База данных тут уже не спасает - файлы постоянно меняются, изменяются, добовляются и удаляются.
... это так, информация к размышлению для разработчика. У меня, пока, нет физически времени "подрихтовать" свой плагин Confused

#31:  Author: Loopback PostPosted: Fri Feb 12, 2010 17:23
    —
SCHMaster
Ну, лично мне вообще не хочется углубляться в структуры форматов, ибо времени на это тоже нет совершенно. Поэтому и идея была использовать готовый "движок", приделав к нему вменяемый интерфейс. Немного его еще доработать - и можно будет пользоваться, хотя, полагаю, и в этом случае никакими средствами не уйти от недостатков и ограничений движка. MediaInfo - универсальное, но довольно медленное решение.

Quote:
просчет битрейта видео в AVI формате вычесляется парсингом всего файла

А если для больших файлов не парсить его целиком? Понятно, что при VBR значение будет приближенное, но зато и скорость выше.
Но опять же, с MediaInfo такой фокус точно не пройдет.

#32:  Author: SCHMasterLocation: Киев PostPosted: Wed Feb 17, 2010 03:57
    —
Loopback
Quote:
MediaInfo - универсальное, но довольно медленное решение.

Это точно!
Quote:
А если для больших файлов не парсить его целиком? Понятно, что при VBR значение будет приближенное, но зато и скорость выше.

Для VBR значение всегда весьма приблизительное, к сожалению.
Quote:
Но опять же, с MediaInfo такой фокус точно не пройдет.

Опять в яблочко!

#33:  Author: 790 PostPosted: Wed Feb 17, 2010 17:34
    —
SCHMaster
С большими файлами обошёлся просто: шаблон в поисковике ТС, в котором указано, что видео-файлы, в которых ковыряется плагин >3000 mb... Короче, в видео-файлы с определёнными расширениями и больше 3Gb и в особых папках (сетевых, HDTV...) плагин не лезет

#34:  Author: Yorker PostPosted: Fri May 28, 2010 11:57
    —
Loopback
Плагин заброшен?

#35:  Author: Loopback PostPosted: Fri Jun 04, 2010 22:40
    —
Yorker
Ну в краткосрочной перспективе можно считать да. Нужно ускорять работу, а без базы это выглядит нереальным. Пробовал прикрутить SQLite, но что-то при решении "в лоб" заметного ускорения не добился. А написание чего-то своего требует немеряно времени, которого пока нет.

#36:  Author: Yorker PostPosted: Mon Jun 07, 2010 12:21
    —
Loopback
Ну ладно. Буду ждать, когда время появится Smile

#37:  Author: BartholomeoLocation: СПб PostPosted: Tue Aug 10, 2010 01:09
    —
Loopback, SCHMaster
А можно ли реализовать MediaInfo как wlx? Для FAR-а это сделали (http://forum.farmanager.com/viewtopic.php?p=57909). На мой взгляд, это очень удобно.

Известно, что есть GUI для МедиаИнфо, но он открывается только в заданном размере (требует лишнего движения для прокрутки или разворачивания).

#38:  Author: Loopback PostPosted: Tue Aug 10, 2010 13:54
    —
Bartholomeo
Если брать общий вывод библиотеки и просто показать его в окне листера (как, собственно, и сделано в том плагине) можно написать быстро.

А чтобы было как-то красиво - нужно время. А его пока нет, даже чтобы поправить то, что уже есть.

#39:  Author: BartholomeoLocation: СПб PostPosted: Tue Aug 10, 2010 16:48
    —
Loopback,
Красота, в общем-то, не нужна. Так... Если только для удобства считывания. Желательна еще бы возможность копирования инфы. Было бы неплохо, коль было возможно выбирать варианты представления (типа: компактно, развернуто и т.п.). Но этого - общий вывод библиотеки и просто показать его в окне листера - было бы уже достаточно.

Ну, и совсем здорово смотреть инфу в быстром просмотре, так, чтобы вся информация помещалась в окошке без прокрутки, целиком.

Спасибо, что быстро откликнулся

#40:  Author: Loopback PostPosted: Tue Aug 10, 2010 18:08
    —
Bartholomeo
Ну раз так, вот плагин в простейшем виде. Альфа, без инсталлятора.

Поскольку вывод библиотеки отформатирован пробелами, я по-умолчанию поставил моноширинный шрифт Courier New - с обычными будет смотреться отвратно. Но можно поменять в ini.

В быстром просмотре по-идее должен работать тоже, но целиком инфа вряд ли уместится.

Будет время - доработаю, сейчас пока только так.

Скачать

#41:  Author: BartholomeoLocation: СПб PostPosted: Tue Aug 10, 2010 22:59
    —
Loopback
Спасибо. Качаю. Пробую.
------
Установил через Plugin Manager. Работает. Уже лучше чем GUI MediaInfo. Но у меня работает только через Universal Viewer с подключенными плагинами. А внутренний просмотрщик и быстрый просмотр - не цепляют. Plugin Manager показывает, что плагин "не загружен".

Еще. Сменил в *ини файле размер шрифта и тип - результата никакого.

Но, вообще, в кайф, если это будет доделано. Спасибо.

#42:  Author: Loopback PostPosted: Wed Aug 11, 2010 10:12
    —
Bartholomeo
Так вроде листерные плагины в тотале не загружаются до первого использования. Возможно, первым всегда загружается внутренний просмотр? Проверь, что Detect для плагина установился как "MULTIMEDIA & FORCE".

Шрифт поправил, обновленный архив по той же ссылке.

#43:  Author: BartholomeoLocation: СПб PostPosted: Wed Aug 11, 2010 21:02
    —
Loopback
Спасибо за твою работу. Шрифт теперь действительно регулируется.
Но вот у меня опять только через Universal Viewer работает, а внутр. просмотрщик и быстр. просмотр - нет, никак. Я и так и эдак устанавливал, и ассоциация "MULTIMEDIA & FORCE" выставлена, и порядок загрузки, и снимал галочку в настройках "воспроизводить мультмедиа" - все безрезультатно - соответственно и внутр. просмотрщик и быстрый просмотр воспроизводят видео, а в Plugin Manager отмечен статус "плагин не загружен".
С другими плагами все вроде в порядке. Никогда с таким не сталкивался. Покопаюсь еще, но надеюсь на тебя. Спасибо.
-----
Понял, в чем дело.
Внутр. Lister (и Quick Viewer) с отключенным "воспроизводить мультмедиа" выводят инфу в режиме "2 двоичный". Но если отметить "4 Графика/ Мультимедиа/ LS-плагины 4" (и только в этом режиме), то тогда выводится имено текст из MediaInfo.

Жажду и алчу сие (NB! это просто вопль, но не давление):
1. компктное размещение инфы (так чтоб в окне быстр. просм. помещалось целиком)
2. темный фон, светлый шрифт (хорошо бы возможность настраивать)
3. подсветка (выделение жирным) битрейта, аспекта, размера и др.(возможность настройки)
4. выбор режима типа: "кратко", "выборочно"

#44:  Author: Loopback PostPosted: Thu Aug 12, 2010 11:08
    —
Bartholomeo wrote:
Жажду и алчу сие (NB! это просто вопль, но не давление):

Когда буду доделывать, часть кода по настройкам изображения возьму из TCTorrent, там всё это уже есть.

#45:  Author: ask-rusLocation: Russian Federation PostPosted: Thu Aug 12, 2010 11:29
    —
Просил бы модеров выделить в отдельную тему "[wlx] MediaInfo", начиная с этого поста.

#46:  Author: Loopback PostPosted: Thu Aug 12, 2010 11:45
    —
ask-rus
Мне кажется, пусть лучше в одной будут. Потом сделаю как с TCTorrent - будет объединенный плагин + отдельно wdx.

#47:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Aug 12, 2010 12:09
    —
Loopback
В таком случае разделять действительно нет смысла, а надо просто чуть изменить заголовок. Сделано.

#48:  Author: BartholomeoLocation: СПб PostPosted: Thu Aug 12, 2010 12:25
    —
Loopback
Еще. Изменил в Plugin Manager ассоциацию с "MULTIMEDIA & FORCE" на "MULTIMEDIA", внутр. просм. и быстр. просм. стали подцеплять нормально. Отбражение стало не в двоичном коде, а как надо "графика и т.п."
Еще раз спасибо.

#49:  Author: Alextp PostPosted: Thu Aug 12, 2010 12:56
    —
заглянул случайно.
Кажется надо делать ассоц-ю не "MULTIMEDIA & FORCE" а "MULTIMEDIA | FORCE" т.к. иначе плагин активиз. только при force , т.е. при вызове ручном режима 4.

#50:  Author: Loopback PostPosted: Thu Aug 12, 2010 21:12
    —
Alextp
Да, вполне возможно.

#51:  Author: BartholomeoLocation: СПб PostPosted: Fri Aug 20, 2010 11:46
    —
Фантазирую. А возможно ли сделать так, чтобы инфо показывалось во всплывающей подсказке при наведении курсора мыши на медиафайл?

#52:  Author: Loopback PostPosted: Fri Aug 20, 2010 16:08
    —
Bartholomeo
Гислер эти фантазии давно воплотил, у тотала есть такой стандартный функционал. В подсказку для заданного типа файла выводится информация из полей wdx-плагина. Смотри в настройках, "Содержимое панелей - Пользовательские".

#53:  Author: BartholomeoLocation: СПб PostPosted: Sat Aug 21, 2010 01:32
    —
Loopback
Спасибо, напомнил, а то я маразмирую. У меня уже к jpg было настроено - забыл.
--------------
Loopback, у меня wdx показывает все, что нужно только для divx, avi (с WMV3, DX5, XviD внутри) и mp4.

В остальных видео (wmv, mpg, mpeg) не показывает нужный мне stream size с любым string - ни в колонках, ни, соответственно, в подсказке. А wlx для этих типов отражает. Пробовал поместить mpg в mkv, безрезультатно. А вот если wmv3 (в vdub) или mpg (в avidemux) сохранить в avi (stream copy), то тогда wdx отображает stream size.

Для flv (vp6,7, avc) wdx не показывает ничего (в форматы добавил), wlx и в GUI отражается.

Еще. Попробовал обновить библиотеку (на MediaInfo_DLL_0.7.34_Windows_i386) в wdx, - заменил библиотеку копированием, обновил, как в инструкции, батником saveprops.bat текстовый файл allprops.txt, но плагин перестал работать.

MediaInfoActiveX.dll зарегистрирован, все перезапускал, как надо.

Нужно ждать доработки плагина(ов) или это я что-то не так сделал?

#54:  Author: Loopback PostPosted: Sun Aug 22, 2010 01:27
    —
С окончанием жары возникло вдруг непреодолимое желание поправить, наконец, этот плагин Smile Желанию противиться не стал. В общем, пришлось переписать почти с нуля, поскольку изначально он все же получился довольно корявым. Всё сильно изменилось, поэтому к сожалению, тому кто уже делал свои настройки к старой версии, придется всё делать заново.

1. Конфиг хранится в XML. На мой взгляд, структуру стало хранить несравненно удобнее и логичнее.
2. Добавлена база для ускорения загрузки информации. То что я ранее говорил насчет скорости Sqlite можно спокойно забыть.
3. Значение колонки можно собирать на основе нескольких полей MediaInfo.
4. Для скриптинга теперь используется Pascal Script, с точки зрения возможности поддержки юникода, к тому же он развивается.
5. Плагин теперь юникодный.

Правда, что касается базы, осталась одна проблема, которую пока не знаю, как решить. Если запущено две копии тотала и обе пытаются писать в один файл - будут проблемы. Хотя читать могут оба спокойно. Как корректно понять, что в данный момент в базу другим процессом выполняется запись - неясно.

Скачать


Bartholomeo wrote:
В остальных видео (wmv, mpg, mpeg) не показывает нужный мне stream size

Попробуй новую версию с новой библиотекой. Если не заработает, надо искать, в какое поле библиотека выводит нужную инфу. По-идее, всё, что видно в листерном плагине, может быть получено отдельно, надо только найти нужное поле.
Bartholomeo wrote:
Еще. Попробовал обновить библиотеку (на MediaInfo_DLL_0.7.34_Windows_i386)

В новой версии исправлено.
Bartholomeo wrote:
MediaInfoActiveX.dll зарегистрирован

А вот это для плагина не нужно совершенно. Никакого ActiveX-а, я это дело не люблю Smile

#55:  Author: BartholomeoLocation: СПб PostPosted: Sun Aug 22, 2010 01:56
    —
Loopback
Качаю. Не терпится испытать. Спасибо!
------
Loopback, при установке (и далее при обращении к плагину) выскакивает окошко TCMediaInfo
Quote:
Compiler error in column 'Audio codec custom'
[Error] (1:68): Unknown identifier 'AudiocodecID'
При добавлении колонки Аудиокодек (польз) плагин отображает Error, а Видеокодек (польз) работает.

И еще. Я так понял, если не буду использовать базу, то в xml должен поставить <UseBase>False</UseBase>?
----
ТС 7.55а, ХР3

#56:  Author: Loopback PostPosted: Sun Aug 22, 2010 11:53
    —
Bartholomeo wrote:
при установке (и далее при обращении к плагину) выскакивает окошко TCMediaInfo

Да... в последний момент удалил строчку из конфигурации, только удалил по ошибке определение источника вместо колонки. Залил обновленную версию (ссылка та же), там правильный TCMediaInfo.sample.xml. Или можешь просто в узел "sources" добавить строчку
Code:
<source name="AudioCodecID" field="CodecID" context="Audio"/>


Bartholomeo wrote:
Я так понял, если не буду использовать базу, то в xml должен поставить <UseBase>False</UseBase>?

Совершенно верно. Тогда можно даже Sqlite3.dll удалить.

#57:  Author: ProgMan13 PostPosted: Sun Aug 22, 2010 14:53
    —
Quote:
Если запущено две копии тотала и обе пытаются писать в один файл - будут проблемы. Хотя читать могут оба спокойно.

Мутексы в помощь. Перед запись создать мутекс, после - разрушить. Потом перед записью проверять наличие мутекса, например, секунд 10, если мутекс не разрушен - просто не записывать.

Quote:
02.03.10 Fixed: when TC was started from two different user names (via Runas), the second one couldn't write to the log file and access the thumbs database (requires security descriptor in CreateMutex to allow it)

Эта цитата из истории TC показывает возможные проблемы доступа.

#58:  Author: BartholomeoLocation: СПб PostPosted: Sun Aug 22, 2010 16:16
    —
Loopback
Да. Спасибо. Теперь устанавливается без ошибок.
Loopback, никак не осилю xml. Мне нужно получить StreamSize/String5: With proportion, он же, по-моему, просто StreamSize/String.
Я вставил в узел источников строку <source name="VideoStreamSize" field="StreamSize/String5" context="Video"/>, а в узел колонок в секции <!-- Video --> строку <column name="VideoStreamSize">type="template">StreamSize/String5</column>. Результата никакого. Пробовал просто <column name="VideoStreamSize">StreamSize/String5</column> - то же. Также и для Audio.

Как мне поступить?

#59:  Author: MVVLocation: Ростов-Дон PostPosted: Sun Aug 22, 2010 16:24
    —
Loopback wrote:
Правда, что касается базы, осталась одна проблема, которую пока не знаю, как решить. Если запущено две копии тотала и обе пытаются писать в один файл - будут проблемы. Хотя читать могут оба спокойно. Как корректно понять, что в данный момент в базу другим
ProgMan13 wrote:
процессом выполняется запись - неясно.

Мутексы в помощь. Перед запись создать мутекс, после - разрушить. Потом перед записью проверять наличие мутекса, например, секунд 10, если мутекс не разрушен - просто не записывать.

А по-моему, тут спокойно и без мутексов можно обойтись - сам файл отлично сыграет роль мутекса:

Если надо выполнить запись в базу, чтобы вторая копия не смогла одновременно записать в тот же файл, но могла читать в это время, открываем файл на запись с флагом одновременного доступа FILE_SHARE_READ и без флага FILE_SHARE_WRITE. А если нужно, чтобы вторая копия и читать файл не могла, пока первая пишет в него, открываем без флагов одновременного доступа. После записи, естественно, закрываем файл. При этом при попытке открыть файл из другой копии в доступе будет отказано - и можно будет те же 10 секунд выждать и попытаться еще раз. В функции CreateFile за одновременный доступ отвечает параметр dwShareMode. И, по идее, более высокоуровневые средства записи в файл тоже должны поддерживать нечто подобное.

#60:  Author: Loopback PostPosted: Sun Aug 22, 2010 17:42
    —
ProgMan13 wrote:
Мутексы в помощь. Перед запись создать мутекс, после - разрушить.

Возможно, таким путем и придется пойти. Но хотелось бы найти родные средства Sqlite для управления общим доступом.
Bartholomeo wrote:
Мне нужно получить StreamSize/String5: With proportion,

Всё сделано почти правильно, только в тексте колоночного узла должно быть не имя поля MediaInfo, а имя источника. Вот так:

<column name="Video Stream Size">VideoStreamSize</column>

MVV wrote:
Если надо выполнить запись в базу, чтобы вторая копия не смогла одновременно записать в тот же файл, но могла читать в это время, открываем файл на запись с флагом одновременного доступа FILE_SHARE_READ и без флага FILE_SHARE_WRITE.

Тут немного сложнее, поскольку всеми файловыми операциями занимается библиотека. Функция sqlite3_open не принимает никаких флагов. В общем, если встроенных средств не найдется, мутексы выглядят более реальным решением.

В целом, Sqlite очень неплохо документирована, буду искать. Просто думал может кто-то с ней уже имел дело.

#61:  Author: BartholomeoLocation: СПб PostPosted: Sun Aug 22, 2010 18:59
    —
Loopback,
Loopback wrote:
в тексте колоночного узла должно быть не имя поля MediaInfo, а имя источника. Вот так:
<column name="Video Stream Size">VideoStreamSize</column>
Спасибо, помогло. Буду пробовать и другие поля.
------
Кажется, ошибку нашел. Не показывался Битрейт аудио в кбпс. В строке 151 (если в оригинале) заменил expr="script" на type="script", стало отображать

#62:  Author: Loopback PostPosted: Mon Aug 23, 2010 09:54
    —
Bartholomeo wrote:
Кажется, ошибку нашел. Не показывался Битрейт аудио в кбпс. В строке 151 (если в оригинале) заменил expr="script" на type="script", стало отображать

Спасибо, точно.

#63:  Author: BartholomeoLocation: СПб PostPosted: Mon Aug 23, 2010 14:26
    —
Loopback,
Все (для моих целей) работает надежно на разных форматах.
Loopback, затеял округлить видео кбпс и аудио кб/с до целых, и не получается. Что нужно сделать? Я так понимаю, нужен round в строках 130 и 151 или как? Пробовал создать новый unit с expr=Round(var/1024,-2) - отражает, но все равно не округляет. При этом библиотека и в GUI и в wlx отражает округленно до целых (и, кстати, делит не на 1024, а на 1000, хотя использует киби- и мебибайты).
-----
Ух. Нашел. Нужно вместо
Code:
begin Output:=Format('%f', [Double(VideoBr)/1000])
прописать
Code:
begin Output:=Format('%d', [Trunc(Double(VideoBr)/1000)])
То же и для аудио.

Last edited by Bartholomeo on Mon Aug 23, 2010 17:03; edited 1 time in total

#64:  Author: RamiroLocation: у тотала столько поклонников? PostPosted: Mon Aug 23, 2010 16:35
    —
Loopback
Спасибо за плагин, пользуюсь им постоянно), подскажите как можно сделать чтоб в (Всё аудио строкой) давало более подробную информацию по каналам в mp3 (Joint Stereo), конечно в ини можно подставить [=media.channel mode], но тогда строки дублируются...

#65:  Author: BartholomeoLocation: СПб PostPosted: Mon Aug 23, 2010 17:47
    —
Ramiro, извини, влезу, заинтересовало. "Всё аудио строкой", появилось, по-моему, только в TCMediaInfo 0.6, но там нет инишника, а xml. Я не нашел ни в allprops.txt, ни в ini, ни в xml (в старом и новом плагине) выражение media.channel mode.

Я так понимаю, что нужно прописать любой возможный параметр в скрипте строки 151 (<column name="All audio as string" type="script">), взяв выражение в allprops.txt

#66:  Author: Loopback PostPosted: Mon Aug 23, 2010 18:16
    —
Bartholomeo
Да, можно и так, кстати. Или можно задать точность 0 для формата f:
Code:

Output:=Format('%.0f', [Double(VideoBr)/1024])


Ramiro, Bartholomeo
Вот и я сразу не нашел, где этот режим каналов. Пришлось срочно писать утилиту для вывода всех пар поле-значение Smile В результате, нашел, какой нужно добавить источник:

Code:

<source name="AudioFormatSettingsMode" field="Format_Settings_Mode" context="Audio"/>

И изменить скрипт для колонки "Всё одной строкой":
Code:

begin
  Output:='';
  if (AudioBrMode <> '') then Output:=AudioBrMode;
  if (AudioBr <> '') then Output:=Output+'@'+Format('%d', [Trunc(Double(AudioBr)/1000)]);
  if (AudioSamplingRate <> '') then Output:=Output+', '+AudioSamplingRate+'Hz';
  if (AudioResolution <> '') then Output:=Output+', '+AudioResolution+'bit';
  if (AudioFormatSettingsMode <> '') then
   Output:=Output+', '+AudioFormatSettingsMode
  else
     if (AudioChannels <> '') then
     case AudioChannels of
      1: Output:=Output+', Mono';
      2: Output:=Output+', Stereo';
     end;
end.

#67:  Author: RamiroLocation: у тотала столько поклонников? PostPosted: Mon Aug 23, 2010 20:30
    —
Loopback
Cпасибо всё здорово отображается!
Bartholomeo
Я имел в виду wincmd.ini, а выражение media.channel mode от Media-плагина.

#68:  Author: Loopback PostPosted: Tue Sep 14, 2010 16:04
    —
В связи с грядущим отъездом в отпуск, в котором программированием заниматься точно не буду Smile, выкладываю немного исправленную версию, в которой вроде удалось решить проблему общего доступа. Также была добавлена возможность использования сессионной базы (в памяти, без создания файла).

Скачать (0.61 beta)

#69:  Author: mrmerak PostPosted: Sat Sep 18, 2010 15:11
    —
Loopback
а можно WLX версию?

#70:  Author: Loopback PostPosted: Mon Sep 20, 2010 15:53
    —
Mr.Merak
Страницей ранее была. Примитивная, но пока то что есть.

#71:  Author: mrmerak PostPosted: Mon Sep 20, 2010 18:35
    —
Loopback
о! норм.
Заголовки (General, Video, Audio) только желательно сделать жирными. Ну и русский язык желательно бы

#72: TcMediInfo показывает время кодирования на 4 часа больше Author: StarS PostPosted: Tue Oct 12, 2010 11:41
    —
Добрый день!
При переименовании файла *.MOV с помощью плагина tcmediainfo используя шаблон [=tcmediainfo.Дата кодирования.Y-M-D h-m-s] дата/время имени результирующего файла получается на 4 часа больше, чем реальное время кодирования файла.
Как добиться правильного времени?
Чувствую, что это связано с часовым поясом (UTC: +3) и настройкой Total Commandeк "Коррекция времени NTFS->Игнорировать разницу в 1час" ( 3+ 1 = 4), но как грамотно решить проблему - не знаю.
MediaInfo.exe показвает дату кодирования файла правильно :"Encoded date : UTC 2010-09-21 23:13:45".

#73:  Author: CaptainFlintLocation: Москва PostPosted: Tue Oct 12, 2010 13:41
    —
StarS wrote:
Чувствую, что это связано с часовым поясом (UTC: +3) и настройкой Total Commandeк "Коррекция времени NTFS->Игнорировать разницу в 1час" ( 3+ 1 = 4)

Небольшое уточнение: не столько коррекция времени NTFS, сколько учёт зимнего-летнего времени. Сейчас действует летнее время, прибавляющее час к тем трём часам, вот и получается 4. Видимо, плагин возвращает локальное время, а Тотал ожидает UTC.

#74:  Author: Loopback PostPosted: Tue Oct 12, 2010 14:20
    —
StarS
Да, дело в часовом поясе. Сейчас плагин передает тоталу время на Гринвичском меридиане - как этого требует спецификация плагина. Тотал сам прибавляет к этому времени нужное количество часов, с учетом пояса и летнего времени.

Но со скриптингом это довольно легко обойти. Просто преобразуем исходную строку UTC-даты как надо, не используя тоталовские функции.

Добавь такую колонку в конфигурацию и используй ее:

Code:

<column name="Encoded Date (GMT, Y-M-D h-m-s)" type="script">
    <![CDATA[
    var
      YMD,h,m,s: string;
    begin
      if Copy(EncDate, 1, 3) = 'UTC' then
      begin
        YMD:=Copy(EncDate, 5, 10);
        h:=Copy(EncDate, 16, 2);
        m:=Copy(EncDate, 19, 2);
        s:=Copy(EncDate, 22, 2);
        Output:=Format('%s %s-%s-%s', [YMD,h,m,s]);
      end
      else
        Output:=EncDate;
    end.
    ]]>
</column>


#75:  Author: RamiroLocation: у тотала столько поклонников? PostPosted: Tue Oct 12, 2010 14:54
    —
Loopback wrote:

Ramiro, Bartholomeo
Вот и я сразу не нашел, где этот режим каналов. Пришлось срочно писать утилиту для вывода всех пар поле-значение Smile

Спасибо за утилиту, вот только горизонтального скролла не хватает, некоторая инфа уходит за края и не посмотреть)))

#76:  Author: Loopback PostPosted: Tue Oct 12, 2010 15:19
    —
Ramiro wrote:
вот только горизонтального скролла не хватает

Есть такое дело, поправил, ссылка та же.

#77:  Author: StarS PostPosted: Tue Oct 12, 2010 20:40
    —
Loopback wrote:
Добавь такую колонку в конфигурацию и используй ее:


Подскажите, куда этот код добавлять нужно?

 !  Avada:
Избыточное цитирование убрано.

#78:  Author: FlasherLocation: Москва PostPosted: Tue Oct 12, 2010 20:54
    —
StarS
Можно и без оверквотинга обойтись.
Вставить кусок нужно в файл TCMediaInfo.xml после любого закрывающего тега </column>.

#79:  Author: StarS PostPosted: Tue Oct 12, 2010 21:53
    —
Flasher wrote:
StarS
Можно и без оверквотинга обойтись.
Вставить кусок нужно в файл TCMediaInfo.xml после любого закрывающего тега </column>.


Понял.
То есть если файла TCMediaInfo.xml у меня нет, то нужно его создать Smile
Затем вставить нужный код. Попробую. Спасибо за помощь!

#80:  Author: FlasherLocation: Москва PostPosted: Tue Oct 12, 2010 22:00
    —
StarS wrote:
То есть если файла TCMediaInfo.xml у меня нет
Т.е. как нет? Он входит в состав дистрибутива плагина.

#81:  Author: Loopback PostPosted: Tue Oct 12, 2010 22:16
    —
StarS
А версия-то плагина какая? В предыдущей был TCMediaInfo.ini, сейчас TCMediaInfo.xml. Если старая - нужно обновиться, т.к. предложенное решение только для последней версии.

#82:  Author: StarS PostPosted: Tue Oct 12, 2010 23:00
    —
Loopback wrote:
StarS
А версия-то плагина какая? В предыдущей был TCMediaInfo.ini, сейчас TCMediaInfo.xml. Если старая - нужно обновиться, т.к. предложенное решение только для последней версии.


А где его взять можно? По сайту полазил - не нашёл.

#83:  Author: FlasherLocation: Москва PostPosted: Tue Oct 12, 2010 23:04
    —
На предыдущей странице.

#84:  Author: Loopback PostPosted: Tue Oct 12, 2010 23:22
    —
Вообще давно надо было поправить первый пост. Обновил.

StarS
Перед установкой новой версии лучше полностью убрать предыдущую, поскольку она была полностью переписана.

#85:  Author: StarS PostPosted: Tue Oct 12, 2010 23:36
    —
Всем спасибо!
Поставил, подправил TCMediaInfo.xml, сразу же всё заработало как надо.

Автору респект!

 !  Avada:
И вновь убрано избыточное цитирование. При ответе достаточно выделить в предыдущем посте только нужное и тогда уж нажать кнопку "Цитата". Если цитата вообще нужна.

#86:  Author: RamiroLocation: у тотала столько поклонников? PostPosted: Wed Oct 13, 2010 21:10
    —
Loopback wrote:

Есть такое дело, поправил, ссылка та же.

Cпасибо, а можно чуток сдвинуть захват, а то не до конца захватывает...

#87:  Author: StarS PostPosted: Fri Oct 15, 2010 09:19
    —
С файлами *.MOV моего фотика разобрались Smile

Взял *.AVI с чужого фотоаппарата - плагин не работает.
MediaInfo показывает "Дата мастеринга : Thu Sep 23 23:53:41 2010".

Можно как нибудь забороть эту проблему?

#88:  Author: Loopback PostPosted: Fri Oct 15, 2010 10:13
    —
Ramiro wrote:
а можно чуток сдвинуть захват

Ок.
StarS wrote:
Взял *.AVI с чужого фотоаппарата - плагин не работает.
MediaInfo показывает "Дата мастеринга : Thu Sep 23 23:53:41 2010".

Мда, очень интересно. По-видимому недоработка библиотеки - я полагал, что вывод всегда должен быть в UTC.

Разумеется, раз библиотека выдает этот текст, и отсюда можно скриптом сформировать нужные данные. Но это будет еще одно поле, либо можно использовать то же поле, но сделать выбор формата источника единицами.

Попробуй открыть файл этой утилитой и посмотреть, может эта дата еще где-то выводится правильно? Если нет, то какое показывается имя поля с этой датой?

#89:  Author: StarS PostPosted: Fri Oct 15, 2010 10:50
    —
Утилита miviewer.exe говорит "DLL not found".

Версия MediaInfo идущая с K-Lite при вызове через контекстное меню проводника говорит :
"Mastered date : Thu Sep 23 23:53:41 2010"

Версия MediaInfo, скачанная на днях с офф. сайта программы имеет развитый интерфейс и при вызове через контекстное меню проводника говорит (как я сообщал выше):
"Дата мастеринга : Thu Sep 23 23:53:41 2010"
У меня в контекстном меню две строки "MediaInfo".
Других дат обе версии MediaInfo не выдают.

#90:  Author: Loopback PostPosted: Fri Oct 15, 2010 11:09
    —
StarS wrote:
Утилита miviewer.exe говорит "DLL not found".

Рядом с ней должна находиться MediaInfo.dll, иначе не заработает.

Нужно выяснить названия полей для этой авишки, в которых хранится эта дата. Предполагаю, это Mastered_Date.

#91:  Author: StarS PostPosted: Fri Oct 15, 2010 11:38
    —
Miviewer.exe из дат показывает:

Mastered_Date:Thu Sep 23 23:53:41 2010
File_Created_Date: UTC 2010-10-04 15:38:17.611
File_Created_Date_Local: 2010-10-04 19:38:17.611
File_Modified_Date: UTC 2010-09-23 19:53:42.000
File_Modified_Date_Local: 2010-09-23 23:53:42.000

#92:  Author: Loopback PostPosted: Fri Oct 15, 2010 12:20
    —
StarS
В принципе видно, что Mastered_Date совпадает с File_Modified_Date. Так что если взять File_Modified_Date - можно использовать предыдущий скрипт. Правда, придется добавить еще и источник:

Code:

<source name="FileModifiedDate" field="File_Modified_Date"/>


Code:

<column name="Modified Date (GMT, Y-M-D h-m-s)" type="script">
    <![CDATA[
    var
      YMD,h,m,s: string;
    begin
      if Copy(FileModifiedDate, 1, 3) = 'UTC' then
      begin
        YMD:=Copy(FileModifiedDate, 5, 10);
        h:=Copy(FileModifiedDate, 16, 2);
        m:=Copy(FileModifiedDate, 19, 2);
        s:=Copy(FileModifiedDate, 22, 2);
        Output:=Format('%s %s-%s-%s', [YMD,h,m,s]);
      end
      else
        Output:=FileModifiedDate;
    end.
    ]]>
</column>

#93:  Author: StarS PostPosted: Fri Oct 15, 2010 12:26
    —
O'k.
Попробую.

#94:  Author: StarS PostPosted: Fri Oct 15, 2010 12:37
    —
Только к File_Modified_Date ещё 4 часа добавить нужно Smile

Или использовать File_Modified_Date_Local

#95:  Author: Loopback PostPosted: Fri Oct 15, 2010 12:48
    —
Ну это смотри как нужно. Чтобы по минимуму изменить на File_Modified_Date_Local, просто поменяй в код источника выше:

Code:

<source name="FileModifiedDate" field="File_Modified_Date_Local"/>

#96:  Author: StarS PostPosted: Fri Oct 15, 2010 13:17
    —
Спасибо.
Всё получилось!
Пользую File_Modified_Date_Local.

Немного подкрутил скрипт после "ELSE" в части формата вывода -
вместо недопустимого символа ":" в имени файла поставил "-" Smile

#97:  Author: Tol!kLocation: Арзамас PostPosted: Sun Dec 05, 2010 17:31
    —
wlx MediaInfo
После вызова плагина Листер перестаёт реагировать на клавиши 1...7
Через меню режимы переключаются.

#98:  Author: Loopback PostPosted: Mon Dec 06, 2010 12:07
    —
Tol!k
Да, есть такое. Поправил, теперь все клавиши, неподдерживаемые плагином, передаются тоталу.

Ссылка та же.

#99:  Author: Tol!kLocation: Арзамас PostPosted: Sat Feb 05, 2011 12:44
    —
TCMediaInfo.wdx 0.0.6.1
Временами выскакивает окно:
Quote:
---------------------------
TCMediaInfo:
---------------------------
Fields in configuration file was added. It's need to clear database in order new fields will be visible. If you choose "No", plugin continue to work with database disabled.

Clear database?
---------------------------
Да Нет
---------------------------
При редактировании схем в WdxInfoPacker 1.4.1постоянно, независимо от варианта ответа.
___________________
winXP SP3 rus, TC 7.56a

#100:  Author: FlasherLocation: Москва PostPosted: Sat Feb 05, 2011 13:17
    —
Подтверждаю. У меня в основном при нажатии плюсика в диалоге "Настройка набора колонок", а бывает вообще ни с того ни с сего при банальной навигации или смене оконного режима.

#101:  Author: Loopback PostPosted: Sat Feb 05, 2011 14:10
    —
Tol!k wrote:
Временами выскакивает окно:

Если в конфигурацию добавляется источник (<source>), то при использовании базы его надо добавить и туда. При этом логично, что информацию из файлов нужно перечитать, для чего база очищается. В других случаях этот диалог появляться не должен.

Есть предположение, что теряется путь к базе. Вот отладочная версия, попробуй поставить ее и посмотреть debug.log в каталоге плагина - правильно ли вычислено имя базы, состав полей, и какое поле плагин не находит в базе.

Кстати, в этой версии уже сделана поддержка произвольных путей к базе, так что возможно ошибка уже исправлена.

#102:  Author: Tol!kLocation: Арзамас PostPosted: Sat Feb 05, 2011 15:34
    —
Quote:
DBPath: C:\wincmd\wdx\TCMediaInfo\base.db
SourceCount: 36
Sources: Duration,OverallBitRate,GeneralFormat,EncDate,StreamCount,Title,Album,Performer,Copyright,Comment,Composer,Genre,TrackNumber,Medium,Source,
EncodedWith,VideoFormat,VideoBr,VideoCodecID,VideoFrameWidth,VideoFrameHeight,VideoFPS,VideoFrameCount,AudioStreamCount,AudioLang,AudioFormat,
AudioBr,AudioCodecID,AudioBrMode,AudioSamplingRate,AudioChannels,AudioResolution,AudioFormatSettingsMode,TextStreamCount,TextLang,TextFormat
DBFieldsCount: -3
DBFields:
Field Missed: Duration

Диалог 100% возникает при нажатии [Редактир.] в WdxInfoPacker
При этом добавляется строка http://img140.imageshack.us/img140/660/baseue.png

ЗЫ
Кажется нашёл способ устранения диалога: вызвать TCMediaInfo в wdxGuide
лог становится
Quote:
DBPath: C:\wincmd\wdx\TCMediaInfo\base.db
SourceCount: 36
Sources: Duration,OverallBitRate,GeneralFormat,EncDate,StreamCount,Title,Album,Performer,Copyright,Comment,Composer,Genre,TrackNumber,Medium,Source,
EncodedWith,VideoFormat,VideoBr,VideoCodecID,VideoFrameWidth,VideoFrameHeight,VideoFPS,VideoFrameCount,AudioStreamCount,AudioLang,AudioFormat,
AudioBr,AudioCodecID,AudioBrMode,AudioSamplingRate,AudioChannels,AudioResolution,AudioFormatSettingsMode,TextStreamCount,TextLang,TextFormat
DBFieldsCount: 36
DBFields: DURATION,OVERALLBITRATE,GENERALFORMAT,ENCDATE,STREAMCOUNT,TITLE,ALBUM,PERFORMER,COPYRIGHT,COMMENT,COMPOSER,GENRE,
TRACKNUMBER,MEDIUM,SOURCE,ENCODEDWITH,VIDEOFORMAT,VIDEOBR,VIDEOCODECID,VIDEOFRAMEWIDTH,VIDEOFRAMEHEIGHT,VIDEOFPS,
VIDEOFRAMECOUNT,AUDIOSTREAMCOUNT,AUDIOLANG,AUDIOFORMAT,AUDIOBR,AUDIOCODECID,AUDIOBRMODE,AUDIOSAMPLINGRATE,
AUDIOCHANNELS,AUDIORESOLUTION,AUDIOFORMATSETTINGSMODE,TEXTSTREAMCOUNT,TEXTLANG,TEXTFORMAT

PPS
в логах сделал переносы, ибо распирает форум

#103:  Author: FlasherLocation: Москва PostPosted: Sat Feb 05, 2011 15:45
    —
Если убрать базу из каталога плагина, то баг исчезает.

#104:  Author: Tol!kLocation: Арзамас PostPosted: Sat Feb 05, 2011 15:50
    —
Flasher
Как убрать?
Удалял, но после первого вызова база снова создаётся и баг возвращается.

#105:  Author: FlasherLocation: Москва PostPosted: Sat Feb 05, 2011 15:52
    —
Tol!k
Странно. База понятно, что новая создаётся, но почему баг вернулся.. Confused Причём до удаления у меня такие тормоза перед появлением колонок были, а сейчас всё моментально.
После того как lng перевёл в UTF-8 - всё вернулось, потом опять удалил базу - сообщение убралось, но список чего-то всё равно медленней стал появляться. После перезапуска ТС опять сообщение.. В общем, ждём что автор скажет.

#106:  Author: Loopback PostPosted: Sat Feb 05, 2011 18:39
    —
Tol!k
Flasher
Не знаю, как работает с плагинами wdxInfoPacker, но по логу в общем-то видно, что в тот момент, когда появляется ошибка, плагин не смог получить поля из базы. Создается впечатление, что в загрузка происходит многократно в одном процессе.

Немного изменил способ инициализации плагина. Попробуйте еще раз (ссылка та же).

#107:  Author: Tol!kLocation: Арзамас PostPosted: Sat Feb 05, 2011 19:00
    —
То же самое.
Лог сразу после удаления базы:
Quote:
Initialized
DBPath: C:\wincmd\wdx\TCMediaInfo\base.db
SourceCount: 36
Sources: Duration,OverallBitRate,GeneralFormat,EncDate,StreamCount,Title,Album,Performer,Copyright,
Comment,Composer,Genre,TrackNumber,Medium,Source,EncodedWith,VideoFormat,VideoBr,VideoCodecID,
VideoFrameWidth,VideoFrameHeight,VideoFPS,VideoFrameCount,AudioStreamCount,AudioLang,AudioFormat,
AudioBr,AudioCodecID,AudioBrMode,AudioSamplingRate,AudioChannels,AudioResolution,AudioFormatSettingsMode,
TextStreamCount,TextLang,TextFormat
DBFieldsCount: -3
DBFields:
DB initialization called, but seems DB is locked, no fields retrieved.
Field Missed: Duration


Last edited by Tol!k on Sat Feb 05, 2011 19:02; edited 1 time in total

#108:  Author: FlasherLocation: Москва PostPosted: Sat Feb 05, 2011 19:01
    —
Loopback wrote:
Не знаю, как работает с плагинами wdxInfoPacker
Я вообще-то писал про диалог "Настройка набора колонок".
Всё попрежнему.

#109:  Author: Loopback PostPosted: Sat Feb 05, 2011 19:24
    —
Flasher
Я на настройке колонок ни разу не смог повторить. Чувствую, придется смотреть инфопакер.

Кстати, а покажите, что у вас в секции <options>. И попробуйте задать такой параметр BasePath (если он другой):

Code:
<BasePath>base.db</BasePath>

#110:  Author: Tol!kLocation: Арзамас PostPosted: Sat Feb 05, 2011 19:34
    —
Code:
    <options>
        <Formats>AVI,DIVX,MPEG,MPE,MPA,DAT,MPG,ASF,VOB,MKV,OGM,MP1,MP2,MP3,MP4,M4A,M4V,AVC,WAV,AIFF,OGG,WMA,MOV,WMV,QT,AC3,DTS,AU,D2V,RA,RM,APE,FLAC</Formats>
        <MultiSeparator> / </MultiSeparator>
        <BaseFile>Not implemented yet</BaseFile>
        <MemoryBase>False</MemoryBase>
        <UseBase>True</UseBase>
        <SqlitePath>Sqlite3.dll</SqlitePath>
    </options>


<BasePath>...</BasePath> вообще не было. Добавил – без изменений.

#111:  Author: FlasherLocation: Москва PostPosted: Sat Feb 05, 2011 19:54
    —
У меня всё то же самое.

#112:  Author: Loopback PostPosted: Sat Feb 05, 2011 20:57
    —
Поковырял инфопакер - у меня сообщение так ни разу и не появилось. Правда, и инфопакер сейчас через плагин никакую информацию не получает, что связано с неполной реализацией ANSI-версии (поправлю).

В общем, куда копать - пока не знаю.

#113:  Author: Loopback PostPosted: Sun Feb 06, 2011 01:47
    —
Есть подозрение, что причину нашел: при получении количества полей запросом на пустой базе, список имен полей возвращался пустым, а соответственно плагин каждый раз предлагал очистить базу. Исправил, тестовая версия по той же ссылке.

Тем не менее, всплыла еще одна проблема: скорее всего придется совсем избавляться от сообщений при загрузке плагина. Оказывается, если запускать тотал при включенном наборе колонок, использующем плагин, то тотал падает, если плагин вызывает какой-либо диалог. Тот же диалог вызывается без проблем в любых других условиях.

Скорее всего сделаю так, что плагин сможет работать и после изменения конфигурации, но добавленные поля просто будут пустые до тех пор, пока база не будет инициализирована.

#114:  Author: Tol!kLocation: Арзамас PostPosted: Sun Feb 06, 2011 02:15
    —
+ При нажатии [Редактир.] в WdxInfoPacker диалог не возникает.
+ Старая версия wdx/wlx Guide стала показывать значения (раньше показывала "?")

Но строчки в Unlocker`e по-прежнему прибавляются после каждого нажатия [Редактир.]

#115:  Author: FlasherLocation: Москва PostPosted: Sun Feb 06, 2011 02:28
    —
Подтверждаю, что сообщение больше не появляется.
К сожалению, момент с задержкой вывода списка по нажатию плюсика не решился. Несмотря на довольно большое кол-во контент-плагинов в моём ТС, тормозит показ именно этот.
Loopback wrote:
Оказывается, если запускать тотал при включенном наборе колонок, использующем плагин, то тотал падает, если плагин вызывает какой-либо диалог.
Что значит "какой-либо"? Пример отлова можно привести для проверки?

#116:  Author: Loopback PostPosted: Sun Feb 06, 2011 13:39
    —
Tol!k wrote:
Но строчки в Unlocker`e по-прежнему прибавляются после каждого нажатия [Редактир.]

Возможно, тут глупая ошибка - забыл код закрытия хэндла базы. Хотя у меня строчки не прибавляются.
Кстати, а после закрытия тотала они убираются?
Flasher wrote:
К сожалению, момент с задержкой вывода списка по нажатию плюсика не решился. Несмотря на довольно большое кол-во контент-плагинов в моём ТС, тормозит показ именно этот.

Тут не знаю что сказать. Плагин специально никаким образом ничего не замедляет, но все же процесс построения меню из конфигурации по-определению более долгий, чем если бы оно было внутренним. Нужна статистика, я тормозов не замечал.
Flasher wrote:
Что значит "какой-либо"? Пример отлова можно привести для проверки?

Да в общем-то любое, про очистку базы, например. Или сделать xml невалидным.
Для повторения нужно создать набор колонок плагина, открыть каталог с видеофайлами, активировать этот набор колонок и закрыть тотал. Потом внести изменения в конфигурацию и запустить тотал. Получаем тоталовское исключение.

#117:  Author: FlasherLocation: Москва PostPosted: Sun Feb 06, 2011 14:26
    —
Loopback wrote:
Нужна статистика, я тормозов не замечал.
Какая статистика? С твоим плагином меню открывается за 1-1.5 сек., без плагина за 1-2 доли секунды. Весь список составлен примерно из 70-ти плагинов.
Loopback wrote:
Для повторения нужно создать набор колонок плагина, открыть каталог с видеофайлами, активировать этот набор колонок и закрыть тотал. Потом внести изменения в конфигурацию и запустить тотал. Получаем тоталовское исключение.
Проделал с аудиофайлами. ТС не упал при запуске. Может, изменения какие-то кардинальные должны быть?

#118:  Author: Loopback PostPosted: Sun Feb 06, 2011 14:42
    —
Flasher wrote:
Какая статистика? С твоим плагином меню открывается за 1-1.5 сек., без плагина за 1-2 доли секунды. Весь список составлен примерно из 70-ти плагинов.

Ну может кто-то еще подтвердит. Как по предыдущему багу - репортили двое, и в разных условиях.
Сложно исправлять проблемы, которые не могу повторить сам. А тут у меня всё открывается за доли секунды.
Flasher wrote:
Может, изменения какие-то кардинальные должны быть?

Без разницы, любые, при которых должно появиться сообщение. Правда, у меня сейчас Win7 x64, может на других осях это не проявляется.

#119:  Author: Tol!kLocation: Арзамас PostPosted: Sun Feb 06, 2011 16:07
    —
Loopback wrote:
> Но строчки в Unlocker`e по-прежнему прибавляются после каждого нажатия [Редактир.]
Кстати, а после закрытия тотала они убираются?
после cm_UnloadPlugins – не убираются; после закрытия тотала – убираются.

Flasher wrote:
С твоим плагином меню открывается за 1-1.5 сек., без плагина за 1-2 доли секунды. Весь список составлен примерно из 70-ти плагинов.
35 плагинов. После перезапуска ТС список появляется когда мгновенно, а когда ~1с.
Явной зависимости от TCMediaInfo не прослеживаю.

#120:  Author: FlasherLocation: Москва PostPosted: Sun Feb 06, 2011 18:50
    —
Loopback wrote:
Без разницы, любые, при которых должно появиться сообщение.
Опять обобщённо. Откуда мне знать при каких изменениях сообщение должно появляться?
Tol!k wrote:
Явной зависимости от TCMediaInfo не прослеживаю.
Т.е., как я понял, ты его отключал, а скорость всё равно колебалась, и мгновенность была непостоянной?

#121:  Author: Tol!kLocation: Арзамас PostPosted: Sun Feb 06, 2011 19:39
    —
Отключал/подключал Plugins Manager for TC (c) 2006 Alexey Torgashin → перезапускал ТС ;
В половине случаев после этого было: [+] - 0c → cm_UnloadPlugins → [+] - 1c
независимо от состояния TCMediaInfo

#122:  Author: Loopback PostPosted: Sun Feb 06, 2011 20:13
    —
Flasher wrote:
Опять обобщённо. Откуда мне знать при каких изменениях сообщение должно появляться?

Ну ведь привел же два примера. Один вариант - добавить источник, это вызывает появление злополучного окна очистки базы. Или внести дефект в xml (например, оставить открытым тег) - сообщение о поврежденной конфигурации.

#123:  Author: FlasherLocation: Москва PostPosted: Sun Feb 06, 2011 20:20
    —
Loopback wrote:
например, оставить открытым тег
Ну, сделал. Выдаёт
Code:
---------------------------
TCMediaInfo:
---------------------------
Error in configuration file! Please check it's structure.
---------------------------
ОК   
---------------------------
ТС опять-таки при этом не падает.

#124:  Author: Loopback PostPosted: Sun Feb 06, 2011 20:25
    —
Flasher wrote:
ТС опять-таки при этом не падает.

Остальные условия выполнены? Нужно чтобы в панели остался открытым набор колонок на каталоге с поддерживаемыми файлами. У меня падает стабильно, причем исключение возникает в самом коммандере.

Tol!k wrote:
после cm_UnloadPlugins – не убираются; после закрытия тотала – убираются.

У меня всегда остается одна строка. Впрочем, базу закрывать все равно надо, положил по той же ссылку версию с исправлением. Может быть поможет.


Last edited by Loopback on Sun Feb 06, 2011 20:27; edited 1 time in total

#125:  Author: FlasherLocation: Москва PostPosted: Sun Feb 06, 2011 20:26
    —
Loopback wrote:
Остальные условия выполнены?
Само собой.

#126:  Author: Loopback PostPosted: Sun Feb 06, 2011 20:28
    —
Flasher
Ну может быть это особенности работы на семерке. На ХР еще не пробовал.

#127:  Author: FlasherLocation: Москва PostPosted: Sun Feb 06, 2011 20:31
    —
Loopback
Наверно. Я пока действительно на XP не пробовал.

#128:  Author: Tol!kLocation: Арзамас PostPosted: Sun Feb 06, 2011 21:23
    —
Loopback wrote:
Впрочем, базу закрывать все равно надо, положил по той же ссылку версию с исправлением. Может быть поможет.
Отлично помогло, от [Редактир.] строки не появляются.
Появляется только одна строка, от [+] в настройках колонок, и она исчезает после cm_UnloadPlugins

#129:  Author: Loopback PostPosted: Sun Feb 06, 2011 22:30
    —
Tol!k
Ну и замечательно.

Пусть эта версия будет 0.62.

Скачать

#130:  Author: ask-rusLocation: Russian Federation PostPosted: Sat Mar 19, 2011 13:21
    —
Колонка у меня наз-ся FPS, а в значении "23.976 fps". Убрать бы этот fps для места экономии.

#131:  Author: Loopback PostPosted: Sat Mar 19, 2011 13:55
    —
ask-rus wrote:
Колонка у меня наз-ся FPS, а в значении "23.976 fps". Убрать бы этот fps для места экономии.

В текущей версии (еще не выложенной) уже сделано. А пока можешь поправить в конфиге строчку:
Code:

<source name="VideoFPS" field="FrameRate/String" context="Video"/>

на
Code:

<source name="VideoFPS" field="FrameRate" context="Video"/>

Базу, разумеется, придется пересоздать.

#132:  Author: ask-rusLocation: Russian Federation PostPosted: Sat Mar 19, 2011 14:15
    —
Loopback wrote:
Базу, разумеется, придется пересоздать.

Если я ничего не пропустил, можно ли перенести базу в другой каталог (помойку Very Happy)?

#133:  Author: Loopback PostPosted: Sat Mar 19, 2011 15:52
    —
ask-rus wrote:
Если я ничего не пропустил, можно ли перенести базу в другой каталог (помойку )?

Можно. Параметр BasePath, можно использовать переменные окружения.

#134:  Author: ask-rusLocation: Russian Federation PostPosted: Sat Mar 19, 2011 16:10
    —
Loopback wrote:
Можно. Параметр BasePath, можно использовать переменные окружения.

Премного доволен, даже имя можно своё присвоить. Наряду с
Quote:
tcthumbs.db
tcthumbs.frl
tcthumbs.idb

имеем
Quote:
tcmediainfo.db

#135:  Author: kalikanzaros PostPosted: Sat Jul 09, 2011 16:36
    —
есть идея сделать всплывающие подсказки для аудио\видео файлов с помощью только этого плагина и все остальные плуги удалить (такие как AudioInfo, Media, anytag etc)
подскажите пож-та у кого-нибудь есть готовые шаблоны под это дело?

#136:  Author: FlasherLocation: Москва PostPosted: Sat Jul 09, 2011 16:55
    —
kalikanzaros
У меня готовых нет, потому что пришлось отказаться от использования данного плагина из-за обсуждаемых выше проблем. И во многих случаях спасает decID3WDX. Кстати, встречный вопрос - на 7-ке есть проблемы подвисания при открытии выпадающего списка плагинов?

#137:  Author: kalikanzaros PostPosted: Tue Jul 26, 2011 15:54
    —
Flasher
по 7ке не подскажу к сожалению

#138:  Author: Alextp PostPosted: Wed Aug 17, 2011 18:40
    —
subj еще не на wc.ru? Жалко

#139:  Author: Loopback PostPosted: Wed Aug 17, 2011 19:13
    —
Alextp
Надо его хоть до более-менее приличного состояния довести. К сожалению, последние несколько месяцев кроме работы ничем больше заниматься не получается...

#140:  Author: mcka PostPosted: Sat Sep 24, 2011 18:43
    —
Спасибо автору за обновление.

Нашел пару ошибок.
1. в TCMediaInfo.sample.xml ошибка с субтитрами, исправил на:
Code:

        <source name="TextLanguage" field="Language" context="Text" stream="*"/>


2. Плагин не поддерживает расширения M2TS, TS, FLV хотя сама библиотека MediaInfo.dll v0.7.34.0 поддерживает
в тег Formats я добавил M2TS,TS, но все равно не отображает эти файлы
Code:

<Formats>M2TS,TS,FLV,AVI,...


странно, что в инструкции написано:
Formats - список поддерживаемых расширений, разделенных точкой с запятой., а в примере разделитель запятая
---
Пересмотрел форум нашел ответ:
Loopback wrote:
Просто этих расширений не было в списке поддерживаемых. Нужно их добавить в ключ Formats в настройках и переустановить плагин, чтобы TC получил новый Detect String.

Заработало, я думаю полезно добавит это в readme_ru.txt

#141:  Author: Loopback PostPosted: Fri Sep 30, 2011 10:14
    —
mcka wrote:
1. в TCMediaInfo.sample.xml ошибка с субтитрами, исправил на:

Спасибо, поправил.
mcka wrote:
Пересмотрел форум нашел ответ:
...
Заработало, я думаю полезно добавит это в readme_ru.txt

Согласен, действительно неочевидно. Добавлю.

#142:  Author: ask-rusLocation: Russian Federation PostPosted: Fri Sep 30, 2011 16:01
    —
Loopback
x64-версии планируются, других плагинов в том числе (Autorun, TCTorrent)?

#143:  Author: Loopback PostPosted: Fri Sep 30, 2011 16:38
    —
ask-rus
Autorun точно да, другие если будет время. Пока 64-битный тотал будет приведен к приемлемому состоянию, еще год пройдет. А для себя я пока воообще не вижу смысла в его использовании.

#144:  Author: ask-rusLocation: Russian Federation PostPosted: Fri Sep 30, 2011 16:58
    —
Loopback wrote:
Autorun точно да

Радует, скорее бы.

[OFF]
Loopback wrote:
другие если будет время.

Найди, пожалуйста. Окончательно и бесповоротно пересел на x64 со всеми его багами. С новым тарифом начну лить файлы с торрентов на новый жесткач, без TCTorrent (просмотр/колонки) - нечего делать. Wink
[/OFF]

#145:  Author: mcka PostPosted: Sun Oct 02, 2011 17:49
    —
Code:
<Formats>M2TS,TS,FLV,..

Просьба в TCMediaInfo.sample.xml еще добавить MKA (matroska audio)

#146:  Author: LonerDLocation: Макеевка PostPosted: Fri Oct 07, 2011 18:12
    —
Можно ли как-то пропустить вывод MediaInfo, если оно недоступно?
Файл mkv неполный (например, качается ещё через торрент). При попытке вывести информацию через плагин (в наборе колонок или во всплывающей подсказке) - Тотал виснет наглухо.
AVi - зависает, но "отпускает" через несколько секунд.
vob - вроде зависаний нет (надо ещё пробовать).

#147:  Author: Loopback PostPosted: Fri Oct 07, 2011 20:21
    —
LonerD
К сожалению, библиотека не позволяет контролировать этот процесс. Ей передается файл, после окончания забираем данные. Никак влиять на нее в процессе обработки файлов невозможно. В ней вобоще нет механизмов для определения того, что процесс всё еще идет или уже завершен. На некоторых типах файлов задержки особенно заметны.

Когда вернусь к работе над плагином, подумаю, что можно с этим сделать.

#148:  Author: LonerDLocation: Макеевка PostPosted: Sat Oct 08, 2011 00:50
    —
Loopback
Информация, насколько я понимаю, хранится где-то вначале файла.
Например, можно сделать проверку - плагин будет проверять первые несколько байтов файла, и если они не забиты нулями (или прочим однотипным мусором) - то тогда уже идёт обращение к библиотеке MediaInfo.

Думаю, достаточно проверить всего несколько первых байт - если файл уже загрузился (при торрент-загрузке) или не поврежден (для битых файлов), то в значительной мере велика вероятность, что и следующие байты тоже "нормальные" и MediaInfo сможет считать информацию или хотя бы не зависнуть.

#149:  Author: Loopback PostPosted: Mon Oct 10, 2011 10:33
    —
LonerD wrote:
Информация, насколько я понимаю, хранится где-то вначале файла.

Не всегда. Если бы это было так, MediaInfo отрабатывала бы намного быстрее.
LonerD wrote:
Например, можно сделать проверку - плагин будет проверять первые несколько байтов файла, и если они не забиты нулями (или прочим однотипным мусором) - то тогда уже идёт обращение к библиотеке MediaInfo.

Как временный вариант, пока не найдется лучшего решения, можно и так. Хотя это может не сработать в случае, когда торрент загрузит первый блок в файле, а остальные останутся незагруженными. Вот только под "прочим однотипным мусором" что понимать?

#150:  Author: LonerDLocation: Макеевка PostPosted: Mon Oct 10, 2011 18:43
    —
Quote:
Вот только под "прочим однотипным мусором" что понимать?

Например, файл поврёждён/частично повреждён, и первые байты забиты не обязательно нулями, а любыми одинаковыми символами.

#151:  Author: L_e_D PostPosted: Fri Oct 28, 2011 22:30
    —
Если ещё не исправлено, то:
Code:
<unit name="KBps" type="script">begin Output:=Format('%f', [Double(AudioBr)/1000]); end.</unit>


Было 1024 вместо 1000.

#152:  Author: alexander2011 PostPosted: Wed Nov 16, 2011 04:33
    —
Loopback
Здравствуйте! Пользуюсь плагином довольно давно в составе SAM сборки тотала. Чудесная вещь, спасибо!

Но недавно возникла задача отсортировать видеофайлы по коэффициенту отношения ширины к высоте.
Чтобы знать что однозначно пойдет без полос или толстых лиц на широкоформатном мониторе-телевизоре. Плееры на компе конечно дают большую гибкость в настройке заполнения экрана, а сторонние плееры нет. Да и зачастую без искажений или потерь не смасштабируешь. Потому захотелось отсортировать файло и по этому параметру. И тут обнаружил что в настройках нет колонки вроде "соотношение сторон", хотя размер кадра выдается.

Почитав справку показалось что это можно реализовать через скрипт который будет делить ширину на высоту и выдавать коэффициент и редактирование XML файла. Напрямую такой функции вроде нет в библиотеке (или в плагине). Видеокодированием не занимался, и не знаю есть ли вообще такое поле в тегах видеофайла. Как впрочем и программированием, и написание подобного скрипта представляет сложность.

Не могли бы вы помочь и выложить обновленную версию плагина в котором будут прописаны настройки позволяющие выводить в панелях тотала колонку с коэффициентом соотношения сторон? Двух-трех знаков после запятой было бы достаточно.

#153:  Author: FlasherLocation: Москва PostPosted: Wed Nov 16, 2011 04:54
    —
alexander2011
1, 2, 3.

#154:  Author: LonerDLocation: Макеевка PostPosted: Wed Nov 16, 2011 06:21
    —
Quote:
не знаю есть ли вообще такое поле в тегах видеофайла.

Есть, называется Display aspect ratio.
В плагине это пока что не реализовано...
Надеюсь, автор добавит это поле в следующей версии.

#155:  Author: alexander2011 PostPosted: Fri Nov 18, 2011 02:46
    —
Flasher wrote:
alexander2011
[тут забанненые для новичка ссылки].


спасибо конечно, но там не совсем то что нужно

во первых интересует именно видео а не изображения,
во вторых беглый просмотр веток показал, что вопрошающий нашел таки по наводке плагин в котором эта функция (коэффициент соотношения сторон) прописана изначально
ну и вахмуровский вариант с поиском по полям плагина. Который конечно незаменим в случае 65 000 файлов в каталоге Smile но это не мой случай и простого просмотра без каталогов с сортировкой по соответвующему столбцу было бы достаточно.

Вообще если бы миром правила всемогущая матрица и количество размеров кадра было бы жестко регламентировано вопрос бы не стоял Smile но регламентировано более менее лишь соотношение сторон
16:9 = 1,77; 4:3 = 1,33; ну и 14:9 = 1,55 с каким то сложно поддающимся разумению прямоугольным пикселем. Мой телевизор читая с флэшки может адекватно переварить только то что укладыватеся в 16:9 или по другому 1,77. Не HD растянет и с далека не критично. Ну и соответственно 4:3 монитор без искажений растянет 1,33 хотя конечно сейчас таких соотношений всё меньше.


Прошу прощение за небольшое лирическое отступление Embarassed

#156:  Author: FlasherLocation: Москва PostPosted: Fri Nov 18, 2011 03:10
    —
alexander2011 wrote:
интересует именно видео а не изображения
Пардон, не обратил внимания. Коэффициент не знаю, где взять, но, по-моему, для описанной задачи достаточно [=tcmediainfo.Размер кадра] и [=media.размер кадра]. Хочу заметить, что оба друг друга дополняют. Первый видит всё, кроме avi, а тот в свою очередь - avi. Коэффициент при желании можно сделать с помощью Script Content Plugin.

Quote:
вопрошающий нашел таки по наводке плагин в котором эта функция (коэффициент соотношения сторон) прописана изначально
Вообще-то никакой вопрошающий ничего не находил. Подсказал Tol!k и я. В сумме - два плагина, а не один. В посте по второй ссылке оба варианта отражены. И никакие изначальные прописки к сортировке отношения не имеют.

Last edited by Flasher on Fri Nov 18, 2011 03:52; edited 2 times in total

#157:  Author: keiran_greenLocation: Хабаровск PostPosted: Fri Nov 18, 2011 03:33
    —
alexander2011 wrote:
колонку с коэффициентом соотношения сторон?

Наваял скрипт, который делит ширину на высоту, и в итоге получаем требуемый AspectRatio.

Добавить в секцию 'columns' файла TCMediaInfo.xml
Code:

        <column name="Aspect Ratio" type="script">
         <![CDATA[
        begin
         Output := Format('%.2n',[Double(VideoFrameWidth)/Double(VideoFrameHeight)]);
        end.
        ]]>
        </column>


Затем создаем одноименную колонку в Тотале.

PS насколько я понял можно вообще сделать вывод в этой колонке не десятичными цифрами, а понятным соотношением: 4:3 или 16:9, в зависимости от коэффициэнта...

#158:  Author: FlasherLocation: Москва PostPosted: Fri Nov 18, 2011 03:49
    —
keiran_green wrote:
Наваял скрипт, который делит ширину на высоту, и в итоге получаем требуемый AspectRatio.
Хм. Именно это я и имел в виду, только касаемо SCP.

keiran_green wrote:
можно вообще сделать вывод в этой колонке не десятичными цифрами, а понятным соотношением: 4:3 или 16:9, в зависимости от коэффициэнта...
Было бы очень кстати.

#159:  Author: alexander2011 PostPosted: Fri Nov 18, 2011 03:53
    —
PS насколько я понял можно вообще сделать вывод в этой колонке не десятичными цифрами, а понятным соотношением: 4:3 или 16:9, в зависимости от коэффициэнта...[/quote]

Можно, если видео жестко привязано к соотношению. А если размеры кадра не жестко привязаны? То при растягивании будет искажение. И чем ближе к 1,77 расчетное тем меньше искажение при масштабировании

Code:
Вообще-то никакой вопрошающий ничего не находил

ну я написал "по наводке"
Хотя неважно конечно Smile

К тому же keiran_green вроде справился со скриптом

#160:  Author: FlasherLocation: Москва PostPosted: Fri Nov 18, 2011 04:04
    —
alexander2011 wrote:
А если размеры кадра не жестко привязаны? То при растягивании будет искажение. И чем ближе к 1,77 расчетное тем меньше искажение при масштабировании
Ну, так это не атрибуты, чтобы их отображать. Видимо так коэффициент везде, где это есть, и высчитывается.
Не знаю как насчёт внешних DVD/Blue-Ray, а в ряде программ-проигрывателей эти проблемы решаются опционально.

#161:  Author: keiran_greenLocation: Хабаровск PostPosted: Fri Nov 18, 2011 04:29
    —
Flasher wrote:
Было бы очень кстати.

Если получиться сделать - выложу. Smile

#162:  Author: LonerDLocation: Макеевка PostPosted: Fri Nov 18, 2011 04:32
    —
Quote:
Наваял скрипт, который делит ширину на высоту, и в итоге получаем требуемый AspectRatio.

Не-а, не получаем Very Happy
Получаем кота Шрёдингера.
Видео бывает анаморфным (неквадратные пиксели), и до того как мы его запустим, мы не узнаем - правильно ли показано соотношение в колонке.

AspectRatio - это соотношение сторон при воспроизведении видео. Прописано в контейнере и даёт знать с какими пропорциями кадра воспроизводить видеофайл.

#163:  Author: FlasherLocation: Москва PostPosted: Fri Nov 18, 2011 04:56
    —
LonerD
Ну, пропорции пикселя нам взять неоткуда, поэтому ждём автора.

#164:  Author: keiran_greenLocation: Хабаровск PostPosted: Fri Nov 18, 2011 05:07
    —
LonerD wrote:
Не-а, не получаем Very Happy

Та цифра которую получаем путем работы скрипта, равна той, которая получается при просмотре свойств видеофайла утилитой MediaInfo
(в колонке Aspect Ratio = 1.375 , в MediaInfo свойство Display aspect ratio = 1.375)
По крайней мере на одном видео файле именно так. Smile

#165:  Author: FlasherLocation: Москва PostPosted: Fri Nov 18, 2011 05:21
    —
keiran_green
В том то и дело, что с квадратными пикселями так. LonerD писал, что это не подойдёт для видео с анаморфными кадрами.
Я лично такие просто не качаю. Видимо, кому-то очень "везёт"...

#166:  Author: keiran_greenLocation: Хабаровск PostPosted: Fri Nov 18, 2011 05:37
    —
Flasher wrote:
LonerD писал, что это не подойдёт для видео с анаморфными кадрами.

Все теперь дошло, т.е. с обычными кадрами (на большинстве видофайлах) данный подход сработает.

#167:  Author: alexander2011 PostPosted: Fri Nov 18, 2011 06:18
    —
Flasher wrote:
keiran_green
В том то и дело, что с квадратными пикселями так. LonerD писал, что это не подойдёт для видео с анаморфными кадрами.
Я лично такие просто не качаю. Видимо, кому-то очень "везёт"...


1440×1080 как правило это анаморф. Я тоже стараюсь такие не качать. Телек считает что это стандарный квадратный пиксель и выдает 4:3.
Плеер то на компе я думаю более умный, но там и так монитор 4:3 так что получаем те же яйца только в профиль. Ну и монитор всяко меньше телека-видеплеера Smile

Конечно решение keiran_green не универсальное, но пока в библиотеке и в плагине не появиться нативный AspectRatio придется довольствоваться этим и надеяться что доля анаморфных видеофайлов все таки не очень большая

Добавлено спустя 11 минут:

кстати в файле allprops.txt в каталоге плагина присутствует DisplayAspectRatio
в справке написано как то неопределенно " в файле allfields.txt находится полный список свойств библиотеки" видимо опечатка и речь идет о файле allprops.txt

Т.е. получается в библиотеке поле есть? Просто плагин пока не считывает

#168:  Author: FlasherLocation: Москва PostPosted: Fri Nov 18, 2011 07:39
    —
Действительно. Совсем забыл про настройки...
Добавить нужные строки в код и будет считывать.

TCMediaInfo.xml:
Code:
    <sources>

        <!-- Video -->
        <source name="PixelAspectRatio" field="PixelAspectRatio" context="Video"/>
        <source name="DisplayAspectRatio" field="DisplayAspectRatio" context="Video"/>
        <source name="CommonAspectRatio" field="DisplayAspectRatio/String" context="Video"/>

    <columns>

        <!-- Video -->
        <column name="Pixel aspect ratio">PixelAspectRatio</column>
        <column name="Display aspect ratio">DisplayAspectRatio</column>
        <column name="Common aspect ratio">CommonAspectRatio</column>
TCMediaInfo.lng:
Code:
Display aspect ratio=Соотношение сторон
Common aspect ratio=Общее соотношение сторон
Pixel aspect ratio=Соотношение сторон пикселя

Пиксельный полезен тем, что позволяет отличать анаморфное видео.

alexander2011 wrote:
Плеер то на компе я думаю более умный, но там и так монитор 4:3 так что получаем те же яйца только в профиль.
Тогда в чём "умность" такого плеера? Confused Не те плееры юзаем, значит...

#169:  Author: alexander2011 PostPosted: Fri Nov 18, 2011 08:28
    —
Quote:
Тогда в чём "умность" такого плеера? Confused Не те плееры юзаем, значит...

ну я наверное коряво фразу построил Smile а повседневный преер KMplayer.
ну и различные VLC, MPC и т.п. масштабирование любое возможно.
Просто хотел сказать, что монитор все равно маленький и неширокоформатный и я увижу все тоже самое, что на телевизоре. На компе в полный экран но квадраный, на телевизоре квадратик в центре экрана.

Спасибо за код!

#170:  Author: FlasherLocation: Москва PostPosted: Fri Nov 18, 2011 08:34
    —
alexander2011 wrote:
На компе в полный экран но квадраный
Да, видимо, я поспешил с выводами. Не плееры не те, пользоваться не умеем. Smile В KMPlayer, PotPlayer, SMPlayer, ZoomPlayer и некоторых других подогнать под нужные размеры - не проблема. Ладно, закрыли вопрос...

#171:  Author: keiran_greenLocation: Хабаровск PostPosted: Sat Nov 19, 2011 02:12
    —
Вариант Flasher работает, так что мой вариант отпадает Smile
скриншот колонок плагина ->

#172:  Author: aLLigatorLocation: из тех ворот, что и весь народ... PostPosted: Fri Dec 02, 2011 22:10
    —
Как можно отключить создание base.db?
Пробовал удалять строчку из TCMediaInfo.xml, но база всеравно создается...
Запускаю Тотал с флешки и запись в базу подтормаживает всё остальное.

#173:  Author: Loopback PostPosted: Sat Dec 03, 2011 12:30
    —
aLLigator
Строчку надо не удалять, а поменять ее значение на False.

#174:  Author: aLLigatorLocation: из тех ворот, что и весь народ... PostPosted: Sat Dec 03, 2011 16:36
    —
Спасибо, помогло! как-то сразу и не подумал глянуть, что дальше той строчки написано..

#175:  Author: LonerDLocation: Макеевка PostPosted: Wed Jan 18, 2012 05:57
    —
Кириллические теги аудиофайлов (Исполнитель, жанр, альбом...) - отображаются кракозябрами.
Win7SP1 x64Eng.
На ХРх32Ru - отображаются нормально.
В то же время под семёркой нормально работает плагин ShellDetails, русские буквы в тегах отображает как следует.
И ещё стоит добавить вывод тега Год.


Last edited by LonerD on Wed Jan 18, 2012 21:09; edited 1 time in total

#176:  Author: FlasherLocation: Москва PostPosted: Wed Jan 18, 2012 11:08
    —
LonerD
Не понял, какое отношение имеет плагин ShellDetails к топику. Под 7-кой все инфоплагины, какие у меня есть, нормально работают с кириллицей.
Касаемо года, я так понимаю, что речь о музыке, в таком случае decID3wdx самый лучший вариант для этого, там несколько способов получить дату записи и выпуска альбома. В этом же плагине есть только дата кодировки. Если нужно и тут добавить, то в xml нужно прописать конструкции с Released_Date, Original/Released_Date, Written_Date.

#177:  Author: Alextp PostPosted: Wed Jan 18, 2012 11:46
    —
-. В этом же плагине есть только дата кодировки. Если нужно и тут добавить

нужно. И нужно чтобы это сделал автор. Т.к. дата выпуска нужна часто. Shelldetails имеет отношение простое. Он тоже выводит MP3 поля

#178:  Author: FlasherLocation: Москва PostPosted: Wed Jan 18, 2012 11:52
    —
Alextp wrote:
нужно. И нужно чтобы это сделал автор.
А самостоятельно кто-то мешает?
Alextp wrote:
Т.к. дата выпуска нужна часто
Если нужна часто, то используй указанный мной выше плагин.
Alextp wrote:
Он тоже выводит MP3 поля
Не аргумент. Mp3-теги выводит не только shelldetails, но и ряд других плагинов, к тому же речь шла об отображении кириллицы, а не выводе информации по mp3, это иной контекст.

#179:  Author: Alextp PostPosted: Wed Jan 18, 2012 11:58
    —
-А самостоятельно кто-то мешает
По-твоему дефолты не нужно менять. А по-моему нужно (если поле нужно часто)

-Не аргумент. Mp3-теги выводит не только shelldetails
Если Shelldetails выводит кириллицу в MP3 правильно, то аргумент-
этому плагу тоже надо выводить правильно

#180:  Author: FlasherLocation: Москва PostPosted: Wed Jan 18, 2012 12:02
    —
Alextp wrote:
По-твоему дефолты не нужно менять. А по-моему нужно (если поле нужно часто)
Может, тогда попросить автора, чтобы вообще все поля из allprops добавил, чего уж там? Одному нужны часто одни поля, другому - другие, всем не угодишь.
И вообще я не писал, что example не нужно менять, я веду к тому, что самостоятельно это сделать гораздо быстрее (10-15 мин), чем ждать, когда это сделает автор (10-15 дней/недель/...).

Alextp wrote:
Если Shelldetails выводит кириллицу в MP3 правильно, то аргумент-
этому плагу тоже надо выводить правильно
А этот плагин в 32-битном ТС тоже выводит правильно, что и было отмечено. И там говорится обо всех полях, а не конкретно об MP3.

#181:  Author: Alextp PostPosted: Wed Jan 18, 2012 12:09
    —
Quote:
А этот плагин в 32-битном ТС тоже выводит правильно

Ну и shelldetails правильно. 2 аргумента

Quote:
И там говорится обо всех полях

Где-то кириллица не так выводится- во всех или нет, не суть

Imho больше не о чем спорить

Добавлено спустя 3 минуты:

есть "базовый" (тот что в shelldetails) набор полей MP3. Если дата там есть, надо добавить.

#182:  Author: FlasherLocation: Москва PostPosted: Wed Jan 18, 2012 12:13
    —
Alextp wrote:
Ну и shelldetails правильно. 2 аргумента
Да, только MP3 к чему тут? Там битность не была указана, только 7-ка. 0 аргументов.

Ты начал спорить не по делу...

#183:  Author: Loopback PostPosted: Wed Jan 18, 2012 13:07
    —
LonerD
Всю информацию плагин получает из библиотеки MediaInfo, причем в юникоде, т.е. потерь, связанных с перекодировкой, быть не может. Если библиотека неправильно интерпретировала кодировку - я тут сделать ничего не могу. В любом случае, тут надо смотреть, на английских системах плагин не тестировался.

ShellDetails получает информацию совершенно другим путем, а именно ту, что предоставляет ей оболочка винды.

Что до набора полей - он обсуждается, но не нужно пихать всё нужное и ненужное в дефолты. К сожалению, сейчас это действительно быстрее сделать самостоятельно, я в ближайшее время появляться тут буду редко.

#184:  Author: LonerDLocation: Макеевка PostPosted: Wed Jan 18, 2012 21:17
    —
Quote:
Если Shelldetails выводит кириллицу в MP3 правильно, то аргумент- этому плагу тоже надо выводить правильно

Именно это я и имел в виду.

Quote:
Если библиотека неправильно интерпретировала кодировку

Похоже на это Sad

Ещё нюанс
Если плагин не может/не успевает прочитать какую-то информацию о файле - лучше попросту не выводить её, чем высвечивать кучу окошек с ошибками "Invalid floating point operation".
А то иногда весь исходится подобными ошибками на ровном месте когда переключаюсь на набор колонок, основанный на этом плагине. А в другие разы прожуёт эти же файлы спокойно и высветит нужные значения продолжительности/кодека/итд.

Quote:
Что до набора полей - он обсуждается, но не нужно пихать всё нужное и ненужное в дефолты. К сожалению, сейчас это действительно быстрее сделать самостоятельно, я в ближайшее время появляться тут буду редко.

Я только сейчас заметил файлик allprops Embarassed
Действительно, лучше самостоятельно.

А 64-битная версия плагина предвидется?
Потому как единственный конкуретнт - плагин от j и tbeu - невозомжно настроить, он неправильно показывает битрейт, а вместо видеобитрейта показывает непонятно что.


Last edited by LonerD on Wed Jan 18, 2012 22:16; edited 1 time in total

#185:  Author: Loopback PostPosted: Wed Jan 18, 2012 21:43
    —
LonerD wrote:
Если плагин не может/не успевает прочитать какую-то информацию о файле - лучше попросту не выводить её, чем высвечивать кучу окошек с ошибками "Invalid floating point operation".

Именно таких окон я не видел ни разу. И если они появляются, это точно не связано с таким понятием как "успел или не успел прочитать".

Правда, в последней выложенной версии есть довольно серьезная ошибка, которая в некоторых ситуациях может вызывать падения. Хотя у меня они проявлялись по-другому.

Если есть желание посмотреть версию, где этот баг исправлен - вот последняя тестовая версия. Если не поможет - сожалею, на исправления пока времени нет.

LonerD wrote:
А 64-битная версия плагина предвидется?

По-сути она уже скомпилирована, примерно в то же время, что и остальные плагины. Но возникло непредвиденное препятствие - использованный в плагине компонент PascalScript отказывается компилироваться для 64-битной платформы. Соответственно в плагине всё работает, кроме скриптинга, без которого он практически нефункционален. Разработчикам эту проблему репортили, но пока исправлений нет.

#186:  Author: LonerDLocation: Макеевка PostPosted: Wed Jan 18, 2012 22:04
    —
Quote:
Именно таких окон я не видел ни разу. И если они появляются, это точно не связано с таким понятием как "успел или не успел прочитать".

Не знаю, с чем оно связано.
Есть набор колонок на основе плагина
[=tc.size]\n[=tcmediainfo.Duration.h:m:s.z]\n[=tcmediainfo.Audio Format] [=tcmediainfo.Bitrate mode]\n[=tcmediainfo.Bitrate.KBps] KBps
Вот пример аудиофайла
http://rghost.ru/35975111
На нем плагин несколько раз спотыкался - при переключении на набор колонок выскакивает по очереди несколько окон с заголовком tcmediainfo, указанным в предыдущем посте сообщением, и кнопкой ОК. При нажатии на ОК - снова выскакивает это же сообщение и так несколько раз. В результате чего колонки для этого файла оказываются пустыми.
Происходит это не всегда, от чего зависит - не знаю - сейчас вот показывается всё нормально для этого же файла.

Posted after 27 minutes:

По поводу кракозябров - проверил, MediaInfo при вызове и через другие приложения выдаёт такую же информацию.

Заметил ещё одно неудобство в плагине.
Обрезается слишком длинная строка.
Вывожу значения Encoded_Library_Settings (опций, с которыми кодировалось видео) - выводится примерно половина, а дальше информация попросту обрезается на полуслове.
В других программах, выводящих информацию через MediaInfo - строка отображается полностью (если открыть файл в PotPlayerе или KMPlayere и скопировать MediaInfo).

#187:  Author: Mellomann PostPosted: Wed Jan 18, 2012 22:46
    —
Пытаясь увидеть битрейт видео и звука в кб/с на всём, что есть, этот плагин мне возвращает заниженую цифру, но в б/с всё верно. Полез в xml, наткнулся на странное:
TCMediaInfo.xml wrote:
<column name="Video Bitrate">
<unit name="Bps">VideoBr</unit>
<unit name="KBps" type="script">begin Output:=Format('%f', [Double(VideoBr)/1024]); end.</unit>
<unit name="MBps" type="script">begin Output:=Format('%f', [Double(VideoBr)/1048576]); end.</unit>
</column>

Для кило- или мегабайт это было бы уместно, но кило- и мегабиты делятся на ровное 1000 и 1000000.
Следует исправить?

Добавлено спустя 5 минут:

И, кстати, как я понял, поля, которых нет в списке нужно добавлять в секции <sources>...</sources> и <columns>...</columns>, а названия брать из левой стороны таблицы-списка?

#188:  Author: LonerDLocation: Макеевка PostPosted: Wed Jan 18, 2012 22:52
    —
Mellomann
Да, следует.
Кстати, в плагине MediaInfo (который на форуме Гислера) - те же пироги, но там исправить уже невозможно.

#189:  Author: Mellomann PostPosted: Wed Jan 18, 2012 23:12
    —
LonerD,
Это на его форуме какой из двух?
Который обсуждается здесь (TCMediaInfo.wdx), или тот, который есть в самлабовской сборке (MediaInfo.wdx)?
А то я видел желание их обоих ставиться в папку \wdx\MediaInfo и использование одной и той же MediaInfo.dll, выдраной из K-Lite Codec Pack.

Добавлено спустя 39 минут:

И вот ещё, как этот TCMediaInfo.wdx подружить с FLV?

#190:  Author: LonerDLocation: Макеевка PostPosted: Thu Jan 19, 2012 00:25
    —
Quote:
Это на его форуме какой из двух?

http://ghisler.ch/board/viewtopic.php?t=11467&sid=e01bdc1e8c4587a69f3d450cd80bb495

#191:  Author: Alextp PostPosted: Thu Jan 19, 2012 20:54
    —
Loopback wrote:
Если библиотека неправильно интерпретировала кодировку -


Можешь отправить репорт. Smile возможно баг MI.

#192:  Author: LonerDLocation: Макеевка PostPosted: Sat Feb 04, 2012 21:34
    —
Сэмпл:
http://multi-up.com/641599
Видеобитрейд не отображается. Через другие программы Медиаинфо отображает видеобитрейд в этом файле. В чём причина?

#193:  Author: FlasherLocation: Москва PostPosted: Sat Feb 04, 2012 23:40
    —
Этот вопрос скорей к автору адресован. Media.wdx тоже не показывает.

#194:  Author: Loopback PostPosted: Thu Jun 28, 2012 18:38
    —
Наконец, выкладываю новую версию. Стало понятно, что дожидаться исправлений в PS бесполезно, поэтому скриптовый движок поменялся еще раз - надеюсь, последний. Вообще, надо было это сделать сразу, поскольку возможности PascalScript явно избыточны для задач плагина.

Скрипты поменялись незначительно, исправления потребуются только там, где использовался открытый список параметров (например, функция Format) - он в этой реализации записывается без квадратных скобок. Но есть и необязательные упрощения. В приложенном примере конфигурации скрипты уже приведены к оптимальному виду.

Список изменений:
Code:

Version 0.7.0 (2012-06-28)
* Документация переведена в html.
* Для возможности компиляции 64-битной версии использован другой скриптовый движок (потребуются небольшие изменения скриптов).
* MediaInfo обновлена до версии 0.7.58.0.
* Плагин записывает отладочные сообщения и ошибки в файл лога вместо сообщений
+ Добавлена специальная скриптовая функция TimingFormat
+ Добавлена опция для задания текста, который будет отображаться для полей без информации в базе (если поле было добавлено позже занесения информации по файлу в базу)
+ Добавление источников больше не требует пересоздания базы


Скачать 32+64.

В релизе, думаю, имеет смысл разделить 32 и 64 битные версии.

LonerD wrote:

Заметил ещё одно неудобство в плагине.
Обрезается слишком длинная строка.

LonerD wrote:
Сэмпл:
http://multi-up.com/641599
Видеобитрейд не отображается. Через другие программы Медиаинфо отображает видеобитрейд в этом файле. В чём причина?

Проверь, может быть в этой версии уже исправилось. Если нет - перевыложи примеры, пожалуйста, все файлы уже потерты.
Mellomann wrote:
Для кило- или мегабайт это было бы уместно, но кило- и мегабиты делятся на ровное 1000 и 1000000.
Следует исправить?

Не уверен. Как-то всегда использовалось 1024. Посмотрел википедию, там тоже неоднозначность: http://ru.wikipedia.org/wiki/Бит_в_секунду.

Кроме того, звук, закодированный с фиксированным битрейтом, показывается неправильно, если делить на 1000.

#195:  Author: Mellomann PostPosted: Thu Jun 28, 2012 19:03
    —
Loopback wrote:
Не уверен. Как-то всегда использовалось 1024. Посмотрел википедию, там тоже неоднозначность
А я уверен, и не только я. Да и тысячи других программ (в массе своей в 99,9999%) не могут ошибаться.
В общем, настаиваю на делении в 1000, как это принято делать.
Или, как вариант, создать два по варианта деления на все пункты.
т.е.,
КБ = 1024
Кб = 1000
МБ = 1024*1024
Мб = 1000*1000
и.т.д.,
в соответствии с общепринятыми правилами сокращения едениц измерения: б - бит, Б - Байт.

#196:  Author: Loopback PostPosted: Thu Jun 28, 2012 21:55
    —
Mellomann wrote:
А я уверен, и не только я. Да и тысячи других программ (в массе своей в 99,9999%) не могут ошибаться.

"Миллион леммингов не может ошибаться..." Wink

Mellomann wrote:

В общем, настаиваю на делении в 1000, как это принято делать.

Куда полезнее будет настаивать с приведением аргументов. Раз уж вопрос такой критичный. Пока что я не нашел авторитетного подтверждения правильности таких расчетов.

#197:  Author: enginigger PostPosted: Fri Jun 29, 2012 13:28
    —
Loopback wrote:
Кроме того, звук, закодированный с фиксированным битрейтом, показывается неправильно, если делить на 1000.


Потестировал новую версию со стандартными настройками скриншот
Получается, что при переводе в килобиты аудио битрейт делится на 1000, а видео - на 1024.

Также, как видно из скриншота, на трех файлах не отображается видео битрейт (как уже писали). MediaInfo на этих файлах отображает только nominal bitrate.

На одном фале не отображается аудио битрейт (звук AAC). MediaInfo его тоже не отображает. Но если аудио битрейт в битах не отображается или аудио-дорожки в файле нет вообще, то в колонке килобитов отображается размер видеокадра.

Еще можно добавить файлы flv и 3gp в поддерживаемые форматы.

И еще вопрос: не планируется объединить функционал wdx и wlx в одном файле? Бывает нужно и то и другое.

#198:  Author: LonerDLocation: Макеевка PostPosted: Fri Jun 29, 2012 14:32
    —
Loopback
Спасибо за обновление.

Quote:
Как-то всегда использовалось 1024.

Нет, всегда и во всех программах использовалось 1000 (хотя может и были исключения наподобие данного плагина, но это исключения). Достаточно посмотреть информацию по MediaInfo, выдаваемую разными плеерами или MediaInfo-считалками.
Хотя при наличии в плагине возможности самостоятельной правки выводимой информации - каждый может настроить под себя на сколько делить Smile

Quote:
Миллион леммингов не может ошибаться...

Леммингами, я так понимаю, названы в том числе программисты-авторы плееров и видеоконвертеров, а также люди, профессионально занимающиеся видеоэнкодом.

Quote:
Пока что я не нашел авторитетного подтверждения правильности таких расчетов.

Тут скорее устоявшаяся традиция, принимаемая всеми за основу, так же как и с жёсткими дисками.
Да и с точки зрения наименования - тоже всё правильно.
Битрейт выражается битами в секунду (бит/c, bps), а также производными величинами с приставками кило- (кбит/с, kbit/s, kbps), мега- (Мбит/с, Mbit/s, Mbps) и т. д.
Килобит, как известно, - это 1000 бит, что и подтверждается ГОСТ 8.417-2002 («кило» как 1024 только для байтов).
А если делить на 1024 - то получаются уже не килобиты, а кибибиты. Wink

Quote:
Если нет - перевыложи примеры, пожалуйста, все файлы уже потерты.

Наверное, неактуально. Я уже разобрался.
На самом деле через другие программы тоже не выводился VideoBitrate, а выводился OverallBitrate. Настроил соответствующую колонку в плагине.

Quote:
На одном фале не отображается аудио битрейт (звук AAC). MediaInfo его тоже не отображает.

Увы, мне тоже не нравится такая ситуация, но наверное, ничего с этим не поделать.

Quote:
Но если аудио битрейт в битах не отображается или аудио-дорожки в файле нет вообще, то в колонке килобитов отображается размер видеокадра.

А у меня в таком случае выводится та же информация, что и в колонке All audio as string - " ,48000Hz 16bit Stereo".
Может, у тебя просто в этом конкретном видео при кодировании прописалась в файле информация не там где надо.

#199:  Author: enginigger PostPosted: Fri Jun 29, 2012 14:53
    —
LonerD wrote:
А у меня в таком случае выводится та же информация, что и в колонке All audio as string - " ,48000Hz 16bit Stereo".
Может, у тебя просто в этом конкретном видео при кодировании прописалась в файле информация не там где надо.


На этом файле - возможно, но есть несколько файлов без аудио - там отображается именно размер кадра на всех.

#200:  Author: Loopback PostPosted: Fri Jun 29, 2012 15:39
    —
enginigger wrote:
Также, как видно из скриншота, на трех файлах не отображается видео битрейт (как уже писали). MediaInfo на этих файлах отображает только nominal bitrate.

Надо будет посмотреть, что на таких файлах выводится. Если что-то не выводится, но выводится в другом поле - можно скриптом проверять и брать из того, в котором что-то есть.

enginigger wrote:
Но если аудио битрейт в битах не отображается или аудио-дорожки в файле нет вообще, то в колонке килобитов отображается размер видеокадра.

Уже исправил, в следующей версии будет нормально.

enginigger wrote:
Еще можно добавить файлы flv и 3gp в поддерживаемые форматы.

Да, конечно.

enginigger wrote:
И еще вопрос: не планируется объединить функционал wdx и wlx в одном файле? Бывает нужно и то и другое.

Тут, собственно, только вопрос размера. Возможно, сделаю два варианта, как с TCTorrent.

LonerD wrote:
Леммингами, я так понимаю, названы в том числе программисты-авторы плееров и видеоконвертеров, а также люди, профессионально занимающиеся видеоэнкодом.

Это просто известная цитата. Без обид для кого бы то ни было, но она просто напрашивалась в ответ на столь категоричное заявление. Смайл это подтверждает.

LonerD wrote:

Тут скорее устоявшаяся традиция, принимаемая всеми за основу, так же как и с жёсткими дисками.
Да и с точки зрения наименования - тоже всё правильно.
Битрейт выражается битами в секунду (бит/c, bps), а также производными величинами с приставками кило- (кбит/с, kbit/s, kbps), мега- (Мбит/с, Mbit/s, Mbps) и т. д.
Килобит, как известно, - это 1000 бит, что и подтверждается ГОСТ 8.417-2002 («кило» как 1024 только для байтов).
А если делить на 1024 - то получаются уже не килобиты, а кибибиты.

Я на самом деле еще довольно долго вчера искал информацию по этому поводу. Признаю, что был неправ: действительно, в последнее время даже в компьютерной среде принято использовать именно так. А в среде коммуникационщиков - так всегда было. ГОСТ тоже видел, правда он довольно новый, раньше что-то могло быть иначе.

Ок, делаем по умолчанию 1000.

LonerD wrote:
На самом деле через другие программы тоже не выводился VideoBitrate, а выводился OverallBitrate. Настроил соответствующую колонку в плагине.

OverallBitrate, как я понимаю, это все же общий битрейт, т.е. сумма видео и всех аудиодорожек. Т.е. не совсем то.

#201:  Author: enginigger PostPosted: Fri Jun 29, 2012 15:45
    —
Loopback wrote:
Возможно, сделаю два варианта, как с TCTorrent.

Так вообще было бы идеально

#202:  Author: Loopback PostPosted: Mon Jul 09, 2012 22:52
    —
Обновил плагин.

Скачать 32+64

Code:
Version 0.7.1 (2012-07-09)
+ интегрирован WLX
+ в список поддерживаемых расширений добавлен FLV и 3GP
- исправлен делитель битрейта
- исправлено отображение некоторых полей


WLX был переписан, функционал пока остался на уровне старого. Настройки теперь в файле конфигурации основного плагина. Настройки временные и поменяются, когда будет добавлена настройка шрифтов/цветов элементов списка.

#203:  Author: Mellomann PostPosted: Mon Jul 09, 2012 23:30
    —
Loopback
Убедительнейшая просьба: НЕ нужно паковать плагин upxом (и ему подобными)! Это всё равно не даст полезной разницы в весе при таком количестве внешнего балласта, зато создаёт кучу проблем - от паники антивирусов до банального замирания системы на 2-3 сек при попытке доступа к плагину ("видите ли, я сканирую" - прим. антивируса).

з.ы.
Конкретно мне от подобных upxовых поделок только хуже.

#204:  Author: Loopback PostPosted: Tue Jul 10, 2012 10:07
    —
Mellomann
Я, конечно, мог бы сказать, что простая команда "upx.exe -d TCMediainfo.wdx" полностью решит проблему... это же не криптор какой-нибудь. Ну да ладно.

У меня лично проблем с антивирусом, и уж тем более тормозов не было, но что у кого-то такое бывает - слышал. Ок, следующие версии паковать не буду. 64-битная и сейчас не пакуется.

#205:  Author: Mellomann PostPosted: Tue Jul 10, 2012 18:17
    —
Loopback wrote:
Ок, следующие версии паковать не буду.
Спасибо!
Loopback wrote:
64-битная и сейчас не пакуется.
И хорошо. Laughing

#206:  Author: enginigger PostPosted: Wed Jul 11, 2012 13:18
    —
Loopback
Спасибо за новую версию с интегрированным WLX. Что радует, размер практически не увеличился.

Теперь пара найденных проблем:
1. Битрейт звуковой дорожки в формате DTS-MA в Bps отображается двумя числами в виде "1560750 / 1509750" (общий/core?). В KBps он не отображается.
2. На файлах нулевого размера вылетает ошибка "Crash in plugin tcmediainfo.wdx: Invalid floating point operation", приводящая к падению тотала.

#207:  Author: Mellomann PostPosted: Wed Jul 11, 2012 14:26
    —
enginigger wrote:
На файлах нулевого размера вылетает ошибка "Crash in plugin tcmediainfo.wdx: Invalid floating point operation", приводящая к падению тотала.

Абсолютно точно, вываливается, при чём уже давно.

#208:  Author: Loopback PostPosted: Wed Jul 11, 2012 14:29
    —
enginigger wrote:
Что радует, размер практически не увеличился.

Ну да, попробовал без VCL написать отображение. Если бы с ним - размер был бы под полтора мегабайта.

enginigger wrote:
1. Битрейт звуковой дорожки в формате DTS-MA в Bps отображается двумя числами в виде "1560750 / 1509750" (общий/core?). В KBps он не отображается.

Ясное дело, скрипт не может преобразовать конструкцию ""1560750 / 1509750" в число. Нужно брать один из двух. Можно попробовать вот так изменить (не тестировал, не на чем):
Code:

         <unit name="KBps" type="script">
         <![CDATA[
            if (AudioBr <> '') then
            begin
               n:=Pos('/', AudioBr);
               if n > 0 then AudioBr:=Trim(Copy(AudioBr, 1, n-1));
               Output:=Format('%f', AudioBr/1000);
            end;
         ]]>
         </unit>


enginigger wrote:
2. На файлах нулевого размера вылетает ошибка "Crash in plugin tcmediainfo.wdx: Invalid floating point operation", приводящая к падению тотала.

Вот этого пока не могу повторить. Сделал нулевой файл, но ошибок нет. Можешь выложить свой набор колонок (из конфигурации тотала)?

#209:  Author: enginigger PostPosted: Wed Jul 11, 2012 15:06
    —
Loopback wrote:
Вот этого пока не могу повторить. Сделал нулевой файл, но ошибок нет. Можешь выложить свой набор колонок (из конфигурации тотала)?

Сейчас еще раз попробовал. Создал файл 0.avi нулевого размера и набор колонок с одной колонкой Format из tcmediainfo. Результат - та же ошибка. Настройки tcmediainfo по-умочанию. Вот код набора колонок из ini:

Code:
Widths17=80,30,80
Options17=-1|0
Headers17=Format
Contents17=[=tcmediainfo.Format]

#210:  Author: Loopback PostPosted: Wed Jul 11, 2012 16:06
    —
enginigger
Нет, не удается повторить, придется вслепую искать. Попробовал сейчас добавить пару проверок, попробуй вот эту версию.

#211:  Author: enginigger PostPosted: Wed Jul 11, 2012 16:31
    —
Loopback wrote:
Нет, не удается повторить, придется вслепую искать. Попробовал сейчас добавить пару проверок, попробуй вот эту версию

Та же ошибка

#212:  Author: Loopback PostPosted: Wed Jul 11, 2012 17:12
    —
Словил, наконец.

Я тестировал на версии библиотеки 0.7.34, на ней ошибки нет, а на новой 0.7.58 - есть.

Проблема в самой MediaLibrary: если она не может открыть файл, то должна просто сообщить об этом. Раньше так и было. Сейчас же она на проблемном файле падает.

Попробуй новую версию.

#213:  Author: enginigger PostPosted: Wed Jul 11, 2012 17:16
    —
Loopback wrote:
Попробуй новую версию.

Да, с этой версией все ОК

#214:  Author: Chelipuo PostPosted: Wed Jul 18, 2012 20:57
    —
Уважаемый Loopback, с вашим плагином возникла следующая проблема: в списке wdx он появился и работает, в списке же wlx его нет и Lister показывает для .mkv-файлов то же, что и до установки: error seek file.
Не нашел описания проблемы в теме, сам тоже не сообразил. Помогите, пожалуйста. Total commander 8.0 x32, Windows 7 x64.

А за плагин большое спасибо, не хватало такой вещи.

#215:  Author: Chelipuo PostPosted: Thu Jul 19, 2012 04:42
    —
Ну и разумеется, стоило запостить на форум, как все заработало: нужно было всего лишь поправить wincmd.ini.

#216:  Author: Loopback PostPosted: Thu Jul 19, 2012 10:35
    —
Chelipuo
Инсталлятором плагин, разумеется, установится только как контентный. Листерную часть надо устанавливать вручную из интерфейса или правкой конфигурации.

Вообще, конечно, было бы неплохо, чтобы Гислер реализовал механизм установки всех видов плагинов, найденных в файле, а не только по расширению.

#217:  Author: Mellomann PostPosted: Thu Jul 19, 2012 12:53
    —
К сожалению, x64 версия плагина на TC 8.01 RC4 не хочет приниматься листером. Точнее, при попытке первого вызова написал, что не может загрузить dll, и более инфу не отдаёт, а просто пустое окно.
Строки конфиг:
Quote:
19=%COMMANDER_PATH%\Plugins\wdx\TCMediaInfo\TCMediaInfo.wdx
19_detect="MULTIMEDIA|FORCE"
и
Quote:
11=%COMMANDER_PATH%\Plugins\wdx\TCMediaInfo\TCMediaInfo.wdx64
11_detect="MULTIMEDIA|FORCE"
для х32 и х64 версий ТС (да, у меня раздельный конфиг), и ни один другой плагин за всё время не отвалился.

Что не так?

#218:  Author: Loopback PostPosted: Thu Jul 19, 2012 16:11
    —
Mellomann wrote:
Точнее, при попытке первого вызова написал, что не может загрузить dll, и более инфу не отдаёт, а просто пустое окно.

Раз не может "загрузить dll" - значит скорее всего не удается загрузить MediaInfo.dll. И я догадываюсь почему: WDX берет пути из конфига, а WLX пока нет. И соответственно, пытается загрузить 32-битную MediaInfo.dll, а не MediaInfo_x64.dll

Просто интереса ради, попробуй переименовать 64-битную библиотеку в MediaInfo.dll и попробовать что-нибудь просмотреть.

#219:  Author: Mellomann PostPosted: Thu Jul 19, 2012 16:52
    —
Ещё более интересная картина получается с х64:

1. БЕЗ переименования (как есть изначально):
* flac - показывается инфа как положено
* mkv - ничего
2. С переименованием:
* flac - всё также - показывается
* mkv - всё также - ничего

Что-то уже явно не так...

#220:  Author: Loopback PostPosted: Thu Jul 19, 2012 17:03
    —
Mellomann
Ладно, в следующей версии более-менее доделаю wlx, тогда будет смысл пытаться что-то найти. Сейчас он еще слишком сырой.

Кстати, а wdx-то нормально эту MKV-шку обрабатывает?

#221:  Author: Mellomann PostPosted: Thu Jul 19, 2012 17:23
    —
Loopback
Да, wdx работает почти замечательно.

Только несколько "НО":
1. нужно добавить извлечение информации: год (для музыки)
2. нужно поправить работу с кодировками в тегах ID3
3. на видео файлах поле "видеокодек польз." - пустое, это - нормально?
4. из flv информация не извлекается вообще, пока вручную принудительно не прописать EXT="FLV"
5. видео в формате *.TS вообще не признаётся за таковое, даже при принудительном добавлении EXT="TS"

п.1 и п.2 нагляднее:

Слева - плагин Anytag, справа - TCMediaInfo с небольшой поправкой на колонку Год - она читается плагином AnyTag. Естественно, версии анитага под х64 нет и я там наблюдаю просто пустое поле.
Ну, а с кодировкой и так видно. Такое проявляется и на mp3, и на flac и вообще на всей моей огромной фонотеке.
Если есть сомнения по поводу неоднозначно выбираемой кодовой страницы - можно: вывести это в настройки плагина для самостоятельной настройки, или же разделить на дерево значения по кодировкам ANSI/UTF8/UTF16.

#222:  Author: Loopback PostPosted: Thu Jul 19, 2012 18:01
    —
Можешь попробовать пока добавить такой источник и колонку:
Code:

        <source name="RecDate" field="Recorded_Date"/>

        <column name="Year">RecDate</column>

Если используешь базу, для ранее добавленных файлов год показываться не будет - нужно удалить базу. В будущем сделаю пересканирование файлов базы.

С кодировкой вопрос интереснее, надо будет посмотреть, что фактически на таких файлах выдает Medialibrary. Сейчас ее вывод напрямую передается на выход, всё в юникоде. Следовательно, вообще не факт, что удастся определить, где кодировка правильная, а где нет, и как-то это исправить. Если не сложно, закинь куда-нибудь пару-тройку проблемных MP3-шек, по одной из разных альбомов.

Если удастся определять кодировку и перекодировать как надо - будет специальная функция для скриптинга.

"видеокодек польз." - это сделано по просьбам одного из форумчан, кому не нравились названия кодеков, предлагаемые библиотекой. Чтобы фича заработала - в каталоге плагина должен лежать файл Codecs.cfg от плагина Media. В релизе это поле будет убрано, ибо красота названия кодеков - дело очень субъективное. Но разумеется, в документации будет описание, как нужного результата можно достичь.

Пункт 4 - в текущей версии FLV внесен уже.
Пункт 5 - посмотрю, но если библиотека не поддерживает его - то ничего не сделаешь.

#223:  Author: Mellomann PostPosted: Thu Jul 19, 2012 18:18
    —
Loopback wrote:
<source name="RecDate" field="Recorded_Date"/>
<column name="Year">RecDate</column>
- помогло, спасибо. Настоятельно советую это дописать в стандартный конфиг.

Так у меня на абсолютно ВСЕХ файлах. Для удобства примера могу выгрузить конкретно этот альбом на какой-нибудь ф/о - какой устроит?

А что насчёт видео *.TS - как подружить его с плагином? Простое дописывание расширения проблему не решило, плагин не узнаёт, что это видео, хотя сам MediaInfo определяет.

#224:  Author: Loopback PostPosted: Thu Jul 19, 2012 18:25
    —
Mellomann wrote:
- помогло, спасибо. Настоятельно советую это дописать в стандартный конфиг.

Добавлю.
Mellomann wrote:
Так у меня на абсолютно ВСЕХ файлах.

В смысле на всех? Всех, где есть русскоязычные теги? Тогда не надо, что-нибудь найду Smile
Mellomann wrote:
А что насчёт видео *.TS - как подружить его с плагином?

Пока ничего не могу сказать, надо смотреть. У меня дома есть ts-ки, попробую.

#225:  Author: Mellomann PostPosted: Thu Jul 19, 2012 18:32
    —
Loopback,
Насчёт всех я погорячился, но действительно правильных русских букв нет нигде.
Сейчас собрал небольшой архивчик, положил туда два flac'а и 4 штуки mp3 - на части из них идут знаки "черный ромб с ?", а на части - кракозябры как будто из cp1252.

Вот выгрузил, можно качать по любой ссылке, которая понравится:
Quote:
http://www.unibytes.com/xcEGpayhY1QLqw-Us4P3UgBB
http://www.gigabase.com/getfile/nwJXw981Wl731saJwcy5qQBB/test-muz.zip.html
http://www.share4web.com/get/byq7Y5S8CqnhqauwcCyxSPYUG5DV3jdA/test-muz.zip.html

У меня оно выглядит так:


Если сможешь найти причину таких двух разных поведений - делись инфой.

#226:  Author: Loopback PostPosted: Thu Jul 19, 2012 20:54
    —
Mellomann
Какие-то стремные хостинги, вместо исходного файла отдают подозрительный exe, c прицепленным оверлеем зипом. Выковырял, но экзешник запускать не рискнул Smile

В общем, попробовал MediaInfo c офсайта, файлы, у которых теги в UTF-8 (flac) и UTF-16 - показывает правильно. Те, у которых теги в win1251 (оба Кипеловых) - коряво. То, что библиотека показывает правильно - наверняка можно исправить, с другими надо тестировать.

#227:  Author: Mellomann PostPosted: Thu Jul 19, 2012 21:05
    —
Loopback
Не-не, никаких exe я не делал, я простой zip паковал.
Я уже давно имею дело с этим унибайтом-тройкой и пока никто не жаловался. Там просто надо не по первой попавшейся жать, а чуть ниже малозаметное "бесплатное скачивание" и только НЕ с рекламного хоста superrar.

Если сильно стрёмный - вот другие:
Quote:
http://www24.zippyshare.com/v/49830655/file.html
http://nekaka.com/d/Kf_QTXU8kg
http://ul.to/2p6nuybr

#228:  Author: Loopback PostPosted: Thu Jul 19, 2012 23:58
    —
Потестировал я кодировки. Для тех файлов, где теги UTF8/16 исправил.

А вот что делать с остальными - непонятно. Вместо того, чтобы перекодировать строку, хотя бы с дефолтными системными настройками, библиотека их отдает в очень оригинальном виде. Вот так выглядит строка "Каратэ":



Т.е. берется каждый символ кириллицы, и к нему вторым байтом добавляется 0x00. И это очень плохо, поскольку полученные таким образом "юникодные" символы формально валидны, и отображают те европейские символы, что мы и видим. Как понять, что выданный поток - реальный юникод или вот такой "псевдоюникод" - не представляю.

Пробовал ANSI версию функции - она выдает уже искаженный текст.

Но что самое удивительное, если получать информацию функцией "MediaInfo_Inform" (которую использует листерная часть), то теги возвращаются правильно закодированными во всех случаях.


Last edited by Loopback on Fri Jul 20, 2012 15:36; edited 1 time in total

#229:  Author: Mellomann PostPosted: Fri Jul 20, 2012 01:14
    —
И что делать?
AnyTag както-же определяет что где...

#230:  Author: Loopback PostPosted: Fri Jul 20, 2012 10:17
    —
Mellomann wrote:
AnyTag както-же определяет что где...

AnyTag работает непосредственно с файлом, в этом случае нет особых проблем отличить, в юникоде тег или в ANSI. TCMEdiaInfo же работает с результатом, который выдает MediaInfo. И результат этот таков, что я не вижу возможности отличить правильный от неправильного.

Пока единственный путь, который видится здесь - приделать костыль в виде получения значения некоторых полей из вывода функции MediaInfo_Inform, которая работает правильно. За счет некоторого замедления работы, понятное дело. Тут плохо то, что многие названия полей библиотеки и заголовки строк вывода MediaInfo_Inform даже не связаны напрямую (пример Encoded_Library -> Writing library), т.е. без явного указания заголовка не обойтись.

С другой стороны, при использовании базы замедление будет заметно только при первичном получении данных. Попробую сделать так.


Этот вариант отпадает. Вышенаписанное актуально только для старых версий библиотеки. В новых версиях неправильный юникод выдается всегда.

#231:  Author: LonerDLocation: Макеевка PostPosted: Thu Aug 30, 2012 23:36
    —
Win7x64 SP1, TC 8.1 x32, плагин последний тестовый, MediaInfo 0.7.58.
Полное подвисание Тотала при работе с недоделанными AC3.

Кодирую аудио в соневской оф.тузле Sonic Foundry Sound Forge.
Пока аудио кодируется - если пытаться подвести мышку к файлу (настроена выпадающая подсказка через TC Mediainfo) или же включить колонки с плагином TC Mediainfo - то Тотал полностью подвисает.
Сэмпл пока предоставить не получается, при обрыве кодирования Тотал отвисает, а в процессе кодирования файл не копируется.

#232:  Author: Loopback PostPosted: Mon Sep 03, 2012 11:13
    —
LonerD
Ну, багом в полном смысле бы я это не назвал. Файлы некорректные, да еще и открытые другим приложением, причем скорее всего эксклюзивно.

Если отключить плагин, как реагирует на этот файл сам тотал по F3?

#233:  Author: LonerDLocation: Макеевка PostPosted: Wed Sep 12, 2012 03:42
    —
Quote:
Если отключить плагин, как реагирует на этот файл сам тотал по F3?

"Нет доступа или файл уже используется". И Тотал таким образом реагирует, и AIMP, и гекс-редактор HxD выдают подобное сообщение при попытке открыть этот файл.

#234:  Author: Loopback PostPosted: Wed Sep 12, 2012 14:55
    —
LonerD
Понятно. Ну, можно попробовать добавить проверку возможности доступа к файлу перед передачей управления библиотеке. Раз уж она так болезненно на такие файлы реагирует.

#235:  Author: LonerDLocation: Макеевка PostPosted: Wed Oct 10, 2012 14:33
    —
Loopback
А планируется ли дальнейшее развитие wlxMediaInfo ?
Хотелось бы тоже 64-битную версию.
И очень не хватает отображения всей информации, длинные строки не влезают в ширину панели - неплохо бы добавить горизонтальную полосу прокрутки, а для поля Encoding settings - удобно если бы был перенос по словам.
Возможность задания цвета фона как в TCTorrent тоже была бы не лишней (но это менее актуально).

#236:  Author: Loopback PostPosted: Thu Oct 11, 2012 12:35
    —
LonerD wrote:
А планируется ли дальнейшее развитие wlxMediaInfo ?

Да, но точно без таких наворотов, как в TCTorrent. Вот только время пока ничего не позволяет.
LonerD wrote:
Хотелось бы тоже 64-битную версию.

В последней версии wlx совмещен с wdx, в том числе и в 64-битной версии.
LonerD wrote:
И очень не хватает отображения всей информации, длинные строки не влезают в ширину панели - неплохо бы добавить горизонтальную полосу прокрутки, а для поля Encoding settings - удобно если бы был перенос по словам.

Прокрутка ок, насчет переносов не знаю.
LonerD wrote:
Возможность задания цвета фона как в TCTorrent тоже была бы не лишней (но это менее актуально).

Уже реализовано в невыложенной версии.

#237:  Author: LonerDLocation: Макеевка PostPosted: Fri Oct 12, 2012 01:21
    —
Quote:
В последней версии wlx совмещен с wdx, в том числе и в 64-битной версии.

Я уже почитал ридми и прикрутил wlx, но ещё не успел написать об этом Smile
Наверное, в дальнейшем стоит добавить автоматическую установку wlx-варианта, потому как не все догадаются что он вообще имеется. Rolling Eyes

Quote:
Прокрутка ок, насчет переносов не знаю.

А хотелось бы, и это вполне реализуемо. В первую очередь из-за Encoding settings (настройки кодирования в AVC) - очень уж длинное там поле и прокрутка будет большой. Опционально - или прокрутка или переносы. Если есть сложности в реализации, то при переносах меня бы устроил даже простейший вариант - если следующая буква текста не помещается в ширину панели, она отображается с новой строки.

#238:  Author: LonerDLocation: Макеевка PostPosted: Sun Oct 21, 2012 22:28
    —
Можно ли в плагине настроить поиск с операцией больше-меньше?
Например, найти все файлы, аудиобитрейт которых >192 Kbps ?
При поиске поле "Операция" не содержит вариантов сравнения.
(для сравнения - в плагине mediainfo от tbeu присутствует сравнение).

Возможно, здесь можно как-то через регулярные выражения указать, что значение должно быть >192 ?

#239:  Author: Loopback PostPosted: Mon Oct 22, 2012 09:52
    —
LonerD
Это видимо потому, что все поля в плагине - строки. Можно попробовать сделать вывод числовым. Для этого в соответствующую колонку нужно добавить ColumnOutputType="ft_numeric_32":

Code:

<column name="Audio Bitrate">
            <unit name="Bps" ColumnOutputType="ft_numeric_32">AudioBr</unit>
            <unit name="KBps" type="script" ColumnOutputType="ft_numeric_32"><![CDATA[if (AudioBr <> '') then Output:=Format('%f', AudioBr/1000);]]></unit>
</column>

#240:  Author: LonerDLocation: Макеевка PostPosted: Mon Oct 22, 2012 14:36
    —
Quote:
все поля в плагине - строки

Только Encoded Date содержит возможность сравнения больше-меньше.
А хотелось бы иметь возможность гибкого поиска по битрейту аудио и видео, по ширине и высоте (например, поиск HD-видео, у которого высота >=720), по времени (например, больше часа/меньше часа).

Quote:
Можно попробовать

Попробовать или это должно работать?
У меня ничего не изменилось в диалоге поиска после добавления этих строк.

#241:  Author: Loopback PostPosted: Wed Oct 24, 2012 18:02
    —
LonerD
Извиняюсь за дезинформацию, неправильное название атрибута, когда-то изменил, а в документации не исправил. И кроме того, баг в единицах.

В общем, сейчас тип поля не устанавливается для единиц, только для колонок без них.

Попробуй добавить такую строчку в колонки:
Code:

<column name="AudioBitrateNum" coltype="ft_numeric_32">AudioBr</column>

Теперь если выбрать поле AudioBitrateNum в поиске, будет возможность числового сравнения.

Баг, разумеется, исправлю.

#242:  Author: LonerDLocation: Макеевка PostPosted: Mon Oct 29, 2012 17:41
    —
Спасибо. По аналогии продолжительность
Code:
<column name="DurationNum" coltype="ft_numeric_32">Output:=TimingFormat('%hh:%mm:%ss', Duration);</column>

и при поиске задавать hh:mm:ss, то есть меньше часа tcmediainfo.DurationNum < 01:00:00

#243:  Author: Cosmoport PostPosted: Sat Dec 22, 2012 00:44
    —
Может кто подскажет?
"Mastered_Date" по умолчанию отдает информацию вида: "Sun Dec 9 17.24.09 2012.AVI" (прим.), а задача на выходе получить:
"YYYY-MM-DD-HH-MM-SS.AVI". Самостоятельное истязание TCMediaInfo.xml равно, как и поиск альтернатив ничего не дали.
Конечная цель - пакетное переименование личного фото-видео архива в хронологическом порядке согласно дате начала, либо окончания съемки по локальному времени, установленному в фотокамере (не времени создания файла на диске).
Как достигнуть сией высоты? Rolling Eyes

#244:  Author: sa PostPosted: Sat Dec 22, 2012 01:43
    —
Cosmoport wrote:
поиск альтернатив

Для фото-архива использовал утилиту Exiftool.
Кнопка:
Code:
TOTALCMD#BAR#DATA
%ComSpec% /c exiftool.exe -v0 -fileOrder DateTimeOriginal "-FileName<DateTimeOriginal" -d %Y-%m-%d_%H.%M.%S.%%e
%S > exiftool.rep
%WINDIR%\exiftool.exe
Переименовать выделенные файлы и/или все файлы подкаталогов согласно тегу "Date/Time Original" из EXIF

1
-1
Может и с AVI cработает?

#245:  Author: ask-rusLocation: Russian Federation PostPosted: Sat Dec 22, 2012 08:20
    —
Loopback
Есть подвижки с 64 бит?

#246:  Author: Cosmoport PostPosted: Sat Dec 22, 2012 11:04
    —
to sa
Спасибо за отклик, но дело в том, что как раз таки с фотографиями совершенно ни каких проблем нет. Успешно использую пакетное переименование тем же ТС с плагином EXIF. А вот с видео... Mad .
Честное слово, просто поражает отсутствие информации и софта на эту тему. Неужели, все только фото в порядке содержат, а видео отдельной кучей сваливают?

По поводу предложения использовать кнопку для ТС. Здесь мои познания весьма поверхностны, а по сему без пошаговой помощи неявно представляю, чего и к чему прикручивать надо. Вообще-то, ну очень хотелось бы заполучить какой нибудь простой инструмент для такой тривиальной на мой взгляд задачи.

#247:  Author: sa PostPosted: Sun Dec 23, 2012 01:55
    —
Cosmoport wrote:
чего и к чему прикручивать надо
1. Скачать программу.
2. Переименовать в exiftool.exe и положить в каталог Windows.
3. Для создания кнопки выделить всё, что в разделе "Код". Правой кнопкой мышки -> Копировать. В TC на панели инструментов правой кнопкой мышки -> Вставить.
4. Выделить файлы для переименования, нажать кнопку.

#248:  Author: Cosmoport PostPosted: Sun Dec 23, 2012 04:04
    —
Спасибо. Все сделал, как это описано выше. Кнопка работает, но по какой-то причине, из полтутора сотен файлов бывших под рукой и взятых для проверки, около десятка программа упорно игнорирует (12 из 147 если быть точным) Confused. Хотя, всё таже библиотека MediaInfo стабильно переименовывает все без исключений файлы, только, как я писал выше, не в том формате который я пытаюсь от неё получить.
Code:
<column name="Mastered Date" >MasteredDate</column>

Я изменял сроку,
Code:
<column name="Mastered Date" coltype="ft_datetime">MasteredDate</column>
но в этом случае плагин TC вообще переставал выводить информацию.
То есть, я бы всё таки хотел получить ответ, по поводу правильного варианта редактирования скрипта, если это возможно.

#249:  Author: Loopback PostPosted: Mon Dec 24, 2012 12:13
    —
ask-rus wrote:
Есть подвижки с 64 бит?

64-битная версия выложена тремя страницами ранее. Или какие нужны подвижки?
Cosmoport wrote:
Честное слово, просто поражает отсутствие информации и софта на эту тему. Неужели, все только фото в порядке содержат, а видео отдельной кучей сваливают?

Тут скорее дело в том, что в отличие от фото, где есть стандартизированный Exif, в видео дата записывается далеко не всегда и не везде, а если и есть, то ее формат зависит от контейнера.
Cosmoport wrote:
Хотя, всё таже библиотека MediaInfo стабильно переименовывает все без исключений файлы, только, как я писал выше, не в том формате который я пытаюсь от неё получить.

Формат пока поменять не получится, надо добавить в скриптовый движок строчные функции.

В принципе, пока можно делать в 2 этапа: файлы переименовываются в тот формат, как показано выше, а потом в нужный с помощью группового переименования.

#250:  Author: ask-rusLocation: Russian Federation PostPosted: Mon Dec 24, 2012 13:57
    —
Loopback wrote:
64-битная версия выложена тремя страницами ранее.

Просто привык следить за обновками с главной сайта, шапки темы форума или домашней страницы плагина, а там всё по-старому.

#251:  Author: Cosmoport PostPosted: Mon Dec 24, 2012 15:59
    —
Вот, что по получилось.

sa
Безмерно благодарен за сответ! Всё работает отлично! Уж очень долго доставал меня этот вопрос, а по сему счастью нет предела Very Happy! Проблема была в том, что выше упомянутые 12 файлов оказались дубликатами в одном каталоге, под разными именами. (Результат ручного переименования. Дальше так продолжаться просто не могло ))!
Единственное, хотелось бы, точно знать какую дату и время отдает "DateTimeOriginal". Начала съемки или её окончания. Не то, что бы это очень важно, устраивают оба варианта, просто чтобы знать, а за одно и быть уверенным, что подобная ситуация не повториться, если буду эксперементировать в дальнейшем.

Loopback
Откровенно говоря, ждал Вашего ответа. Не хотел в личку беспокоить. Cool
Loopback wrote:
в видео дата записывается далеко не всегда и не везде,

Ну разве ж это отговорка? Люди вот живут, мучаются Mr. Green.
Loopback wrote:
Формат пока поменять не получится, надо добавить в скриптовый движок строчные функции.

Не совсем понимаю, это возможно сделать своими силами, дописав нужные строки в "TCMediaInfo.xml"?
Loopback wrote:
В принципе, пока можно делать в 2 этапа

Да. Такая мысль была. Только вот маску никак не мог сообразить. Последовательность данных не та. И хотя в принципе вопрос уже решен, было бы очень здорово добить и эту тему. Хочется, что бы ТС был не просто "отличным швейцарским перочинным ножиком", а "отличным швейцарским перочинным ножиком на все случаи жизни" ))!


Last edited by Cosmoport on Mon Dec 24, 2012 22:47; edited 1 time in total

#252:  Author: sa PostPosted: Mon Dec 24, 2012 16:40
    —
Cosmoport wrote:
Начала съемки или её окончания.
Судя по имеющимся у меня MOV-файлам, скорее начала, чем окончания.

Cosmoport wrote:
что подобная ситуация не повториться
Можно в команде перед расширением добавить счётчик
Code:
Exiftool.exe -v0 -fileOrder DateTimeOriginal "-FileName<DateTimeOriginal" -d %Y-%m-%d_%H.%M.%S_%%.3nc.%%e
или
Code:
Exiftool.exe -v0 -fileOrder DateTimeOriginal "-FileName<DateTimeOriginal" -d %Y-%m-%d_%H.%M.%S%%+c.%%e

#253:  Author: Loopback PostPosted: Mon Dec 24, 2012 21:16
    —
ask-rus wrote:
Просто привык следить за обновками с главной сайта, шапки темы форума или домашней страницы плагина, а там всё по-старому.

Ну так бета пока. Оперативно обновляться будет, когда достигнет wincmd.ru.

Cosmoport wrote:
Не совсем понимаю, это возможно сделать своими силами, дописав нужные строки в "TCMediaInfo.xml"?

Когда добавлю функции работы со строками, тогда можно будет самостоятельно из исходной строки собрать что нужно.

#254:  Author: Cosmoport PostPosted: Tue Dec 25, 2012 01:04
    —
Всё понял. Напоследок, раз уж всё так радужно получилось, хотелось бы допилить пару деталей. Тогда, это точно будет "тот самый" инструмент с возможностью совместного группового переименования фото и видео файлов, в один клик.
sa wrote:
2. Переименовать в exiftool.exe и положить в каталог Windows.
Дело в том, что все жизненно необходимые программы храню отдельно от системы, в portable варианте. ТС, не исключение. Поэтому подумал, что логично и Exiftool подложить ему, скажем в папку с плагинами. Подложил, путь изменил, всё работает нормально, только в момент запуска, в появляющемся окне выводится надпись "Error opening directory >" и дальше идёт выполнение задачи. Предполагаю, что дело в "%S > exiftool.rep", т.к. файл не создается. Что не так?
sa wrote:
Можно в команде перед расширением добавить счётчик
Так и задумывал изначально. Только не порядковый номер добавлять, а случайное число. Просто не хотел заваливать таким колличеством вопросов сразу, а по ходу дела разобраться самому. Вобщем, в идеале на данный момент, выбрал: yyyy-mm-dd-hh-mm-ss-"модель камеры"-"случайное число". Возможно? (в принципе, два последних можно получить из другого плагина, но это уже лишние движения, хотя и это в полне устраивает.)

#255:  Author: sa PostPosted: Tue Dec 25, 2012 14:01
    —
Cosmoport
Code:
TOTALCMD#BAR#DATA
%ComSpec% /c %COMMANDER_PATH%\Utils\Exiftool\Exiftool.exe -m -v0 -fileOrder DateTimeOriginal "-FileName<$DateTimeOriginal-$Model-%.3nc.%e" -d %Y-%m-%d-%H-%M-%S -ext "*"
%S  > exiftool.rep
%COMMANDER_PATH%\Utils\Exiftool\Exiftool.exe
Переименовать выделенные файлы и/или все файлы подкаталогов согласно тегам "Date/Time Original" и "Model" из EXIF со счётчиком

1
-1
С порядковым числом в счётчике. Случайное не знаю как прикрутить.
Этой кнопкой переименовывются любые выделенные файлы, в том числе и без тегов! Если надо переименовать, скажем, только jpg и avi, то вместо –ext “*” надо записать –ext jpg –ext avi
Вообще-то у нас оффтоп.

#256:  Author: ask-rusLocation: Russian Federation PostPosted: Thu Dec 27, 2012 13:53
    —
Loopback
База вынесена в TEMP:
Quote:
D:\TotalCmd8\TEMP\TCMediaInfo.db

А библиотеки в LIBRARY:
Quote:
D:\TotalCmd8\LIBRARY\MediaInfo_x64.dll
D:\TotalCmd8\LIBRARY\Sqlite3_x64.dll

В конфиге всё верно:
Code:
        <Sqlite64Path>D:\TotalCmd8\LIBRARY\Sqlite3_x64.dll</Sqlite64Path>
        <MediaInfo64Path>D:\TotalCmd8\LIBRARY\MediaInfo_x64.dll</MediaInfo64Path>

Вопрос, почему ошибка (Листер)?
Quote:
---------------------------
TCMedia: Error!
---------------------------
Error while loading MediaInfo.dll
---------------------------
ОК
---------------------------


Добавлено спустя 2 минуты:

Code:
[ListerPlugins]
12=D:\TotalCmd8\PLUGINS\wdx\TCMediaInfo\TCMediaInfo.wdx64
12_detect="MULTIMEDIA | FORCE"

#257:  Author: Loopback PostPosted: Fri Dec 28, 2012 20:55
    —
ask-rus
Просто потому, что листерный плагин совсем не дописан, и пока находит библиотеку только в своем каталоге. Более того, имя должно быть только MediaInfo.dll

Я займусь этим после релиза Autorun.

#258:  Author: ask-rusLocation: Russian Federation PostPosted: Fri Dec 28, 2012 21:09
    —
Loopback
Понятно, тогда я выключаю листерный и ожидаю.

Напоследок, откуда ты берешь последние версии используемых библиотек MediaInfo_x64.dll и Sqlite3_x64.dll? Поделись ссылками, пожалуйста.

#259:  Author: Loopback PostPosted: Fri Dec 28, 2012 21:21
    —
ask-rus wrote:
Напоследок, откуда ты берешь последние версии используемых библиотек MediaInfo_x64.dll и Sqlite3_x64.dll? Поделись ссылками, пожалуйста.

Свежачок MediaInfo тут: http://megui.xvidvideo.ru/auto/

А вот Sqlite не помню где брал, помню только, что еле нашел 64-битную версию. Но в принципе, смысла обновлять Sqlite нет - если, конечно, не используешь ее где-то еще.

#260:  Author: ask-rusLocation: Russian Federation PostPosted: Sat Dec 29, 2012 14:19
    —
<Sqlite64Path> и <MediaInfo64Path> требуют библиотеки с именами MediaInfo_x64.dll и Sqlite3_x64.dll соответственно? Или имя MediaInfo.dll вместо MediaInfo_x64.dll плагин тоже схавает? Просто, смотрю, библиотеки поставляются без дополнительного "_x64", не хочу лишних телодвижений с переименованием - скачал архив, скопировал файл архива с заменой и делов.

#261:  Author: campoviyLocation: Russian Federation, Krasnodar region PostPosted: Sat Dec 29, 2012 14:58
    —
ask-rus
ask-rus wrote:
MediaInfo
Откуда угодно. Например, отсюда:
MediaInfo_DLL_0.7.61_Windows_i386_WithoutInstaller.7z
MediaInfo_DLL_0.7.61_Windows_x64_WithoutInstaller.7z
Я проверил, здесь те же самые библиотеки лежат, но взяты они именно с SF (т.к. именно туда их выкладывает разработчик MediaInfo).
ask-rus wrote:
Sqlite3
C этим похуже: здесь нет. Это также не то, насколько я понимаю. Проще попросить кого-нибудь скомпилять нужную версию…

#262:  Author: Loopback PostPosted: Sun Dec 30, 2012 20:16
    —
ask-rus wrote:
<Sqlite64Path> и <MediaInfo64Path> требуют библиотеки с именами MediaInfo_x64.dll и Sqlite3_x64.dll соответственно? Или имя MediaInfo.dll вместо MediaInfo_x64.dll плагин тоже схавает? Просто, смотрю, библиотеки поставляются без дополнительного "_x64", не хочу лишних телодвижений с переименованием - скачал архив, скопировал файл архива с заменой и делов.

Схавает, путь определяется соответствующими ключами. Но поскольку две разные библиотеки с одним именем в одном каталоге сосуществовать не смогут, придется их разносить по разным. Это - без проблем. Можно и переменные окружения использовать.

#263:  Author: ask-rusLocation: Russian Federation PostPosted: Fri Mar 01, 2013 19:53
    —
Не выходит округлить битрейты аудио и видео в текущей версии, как быть?

#264:  Author: Loopback PostPosted: Mon Mar 04, 2013 13:56
    —
ask-rus
А как округляешь?

#265:  Author: ask-rusLocation: Russian Federation PostPosted: Mon Mar 04, 2013 14:29
    —
Loopback
На одной из страниц позади пример, пробовал по аналогии. Я так понял, что-то изменилось с тех пор. Как быть с этим? Ведь в этих строках необходимо проводить изменения?
Code:
        <column name="Video Bitrate">
            <unit name="Bps">VideoBr</unit>
            <unit name="KBps" type="script">Output:=Format('%f', VideoBr/1000);</unit>
            <unit name="MBps" type="script">Output:=Format('%f', VideoBr/1000000);</unit>
        </column>


Code:
        <column name="Audio Bitrate">
            <unit name="Bps">AudioBr</unit>
            <unit name="KBps" type="script"><![CDATA[if (AudioBr <> '') then Output:=Format('%f', AudioBr/1000);]]></unit>
        </column>

#266:  Author: Loopback PostPosted: Mon Mar 04, 2013 22:37
    —
ask-rus wrote:
Я так понял, что-то изменилось с тех пор.

Может быть скриптовый движок? Smile Начиная с версии 0.7.

Актуальная версия - 0.71. Строки правильные, у меня с ними всё работает. Изменяя строку формата можно управлять округлением, например %.0f округлит до целого, %.1f - одна цифра после запятой и т.д. По-умолчанию - 2 цифры после запятой.

#267:  Author: LonerDLocation: Макеевка PostPosted: Fri Apr 12, 2013 01:33
    —
Loopback
TCx64 8.01
Windows 8 x64 Eng.

Code:
[ListerPlugins]
0=%COMMANDER_PATH%\Plugins\wdx\TCMediaInfo\TCMediaInfo.wdx
0_detect=MULTIMEDIA & EXT!="AI"
1=%COMMANDER_PATH%\Plugins\wlx\Imagine\Imagine.wlx
1_detect=MULTIMEDIA
[ListerPlugins64]
$checksum$=2149856381
0=1
1=1


TCMediaInfo.ini
Code:
[Settings]
Formats=AVI;DIVX;MPEG;MPE;MPA;DAT;MPG;ASF;VOB;MKV;OGM;MP1;MP2;MP3;MP4;
M4A;M4V;AVC;WAV;AIFF;OGG;WMA;MOV;WMV;QT;AC3;DTS;AU;D2V;RA;RM;APE;FLAC


Вызываем Листер (Ctrl+Q для примера) на графическом файле - чёрное окно (чёрная панель). То есть TCMediaInfo пытается открыть файл, но не может. Переключаемся на другой плагин - он открывается правильным плагином, на третий файл - опять чёрная панель и т.д...

Imagine приведён для наглядного примера как проще воспроизвести, на самом деле 64-х битный TCMediaInfo опережает все другие плагины и пытается открывать файлы любых форматов. 32-х битная версия при тех же настройках не лезет "поперед батька", не пытается открывать файлы, которые ей не нужно открывать.

PS. Что насчёт просьбы по отображению всей информации wlx-плагином. Удобно было бы Encoding settings смотреть. А так полная информация присутствует (строка копируется), но текст обрезается по ширине панели. Желательно, конечно, с переносами, а не с полосой прокрутки. Вот, как тут, например.

 !  Avada:
Во избежание порчи страницы строка кода со списом форматов принудительно разделена на две.

#268:  Author: Loopback PostPosted: Tue Apr 16, 2013 13:31
    —
LonerD wrote:
Imagine приведён для наглядного примера как проще воспроизвести, на самом деле 64-х битный TCMediaInfo опережает все другие плагины и пытается открывать файлы любых форматов. 32-х битная версия при тех же настройках не лезет "поперед батька", не пытается открывать файлы, которые ей не нужно открывать.

Посмотрю, как появится возможность. Плагин так или иначе получает все файлы (если принудительно не ограничить фильтром тотала) и сравнивает расширения со списком из файла конфигурации. Возможно, в 64-битной версии проверка по какой-то причине не работает.

LonerD wrote:
PS. Что насчёт просьбы по отображению всей информации wlx-плагином.

Пока никак, я же за него даже не брался.

#269:  Author: mrmerak PostPosted: Sun May 26, 2013 11:40
    —
Loopback
а че на wincmd.ru не выложишь?

#270:  Author: mrmerak PostPosted: Sat Jun 08, 2013 12:57
    —
Кто знает как в wdx вывести признак наличия обложки? В wlx такое есть...

#271:  Author: Loopback PostPosted: Wed Jul 17, 2013 16:57
    —
Обновил плагин.

Скачать 32+64
Code:

Version 0.7.2 (2013-07-17)
+ настройки цвета и шрифтов для WLX
+ несколько строчных функций для скриптинга
+ WLX теперь учитывает пути к MediaLibrary, заданные в конфигурации
+ добавлен горизонтальный скроллбар в WLX
- исправлена проверка формата в x64 WDX
? попытка исправить зависание на некоторых файлах, открытых другими процессами


Edit: выкладывал в спешке, забыл ссылку.


Last edited by Loopback on Wed Jul 17, 2013 22:23; edited 1 time in total

#272:  Author: enginigger PostPosted: Wed Jul 17, 2013 18:36
    —
Ссылку не видно

#273:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Jul 17, 2013 19:55
    —
enginigger
Так видно?

#274:  Author: enginigger PostPosted: Wed Jul 17, 2013 21:53
    —
Так да. Спасибо.

#275:  Author: ask-rusLocation: Russian Federation PostPosted: Sun Jul 21, 2013 19:20
    —
Loopback
Активировал WLX, есть вопросы.
1. Вместо GiB хотелось бы видеть привычный Gb.
Quote:
File size : 4.35 GiB

2. 10-я Tahoma, установленная мной в конфиге, почему-то совсем не 10-я.
3. Что за опция? Ставил 1 и 2, всё уменьшается и ничего не видно.
Quote:
<LineHeight>0</LineHeight>

4. Как обстоит с русификацией?
5. Почему при установке плагина на чистый TC сразу создаётся TCMediaInfo.xml, ведь его нет в архиве, есть только сэмпл конфига? Разве TC загружает плагин при установке с pluginst.inf?

x64

#276:  Author: Loopback PostPosted: Mon Jul 22, 2013 09:48
    —
ask-rus wrote:
1. Вместо GiB хотелось бы видеть привычный Gb.

Сейчас выводится стандартный вывод библиотеки. Насколько я понял, он никак не настраивается. Хотя может быть не доглядел - документация к ней крайне скудная.
В следующей версии будут пользовательские режимы просмотра, там можно будет настроить как хочется.
ask-rus wrote:
2. 10-я Tahoma, установленная мной в конфиге, почему-то совсем не 10-я.

Может, шрифт в системе стоит крупный? Сейчас значение берется напрямую, без пересчета.
ask-rus wrote:
3. Что за опция? Ставил 1 и 2, всё уменьшается и ничего не видно.

Не документировал еще. При значении > 0 это фиксированная высота строки, 0 - фиксированная высота с автоподбором, -1 - переменная высота.
ask-rus wrote:
4. Как обстоит с русификацией?

Пока никак. Неясно, как сделать лучше.
ask-rus wrote:
5. Почему при установке плагина на чистый TC сразу создаётся TCMediaInfo.xml, ведь его нет в архиве, есть только сэмпл конфига? Разве TC загружает плагин при установке с pluginst.inf?

Загружает, иначе как он поймет, что это валидный плагин, а не произвольная dll-ка?

#277:  Author: Loopback PostPosted: Wed Jul 24, 2013 13:56
    —
Обновил плагин.

Скачать 32+64
Code:

Version 0.7.3 (2013-07-24)
+ пользовательские режимы просмотра в WLX
- исправлена работа с одновременной работой нескольких окон


Примеры пользовательских режимов просмотра в образце конфигурации, чтобы их увидеть, нужно вручную перенести узел <views> в рабочую конфигурацию. Доступ к переключению режимов - через контекстное меню.

С локализацией все еще не удается решить. Понятно, что пункты меню можно переводить через *.lng, но что делать с огромным количеством возможных имен полей библиотеки - непонятно.

#278:  Author: mrmerak PostPosted: Thu Jul 25, 2013 10:45
    —
Loopback
что по моему вопросу? есть варианты?

#279:  Author: Loopback PostPosted: Thu Jul 25, 2013 14:06
    —
mrmerak
Наверно, поле библиотеки "Cover", мне не на чем проверить. Попробуй добавить источник:

Code:

<source name="HasCover" field="Cover"/>


и колонку:

Code:

<column name="Cover">HasCover</column>

#280:  Author: Loopback PostPosted: Fri Jul 26, 2013 15:29
    —
Обновил плагин.

Скачать 32+64
Code:

Version 0.7.4 (2013-07-26)
+ перевод
+ возможность (по-сути костыль) для исправления неправильной кодировки, полученной из ANSI ID3-тегов


Чтобы задействовать костылик, нужно в источнике, в котором сбивается кодировка (обычно это Title, Album и некоторые другие) добавить атрибут process="fix_cp", например:
Code:
<source name="Title" field="Title" process="fix_cp"/>

После этого текст источника будет обрабатываться дополнительно.

Для WLX добавлена скриптовая функция FixCP, через нее надо прогонять текст проблемных полей.

Сейчас в сэмпле атрибут добавлен ко всем проблемным полям, но в релизе это, конечно, придется убрать, потому что нужно далеко не всем.

#281:  Author: mrmerak PostPosted: Fri Jul 26, 2013 20:37
    —
Loopback
---------------------------
TCMediaInfo: Error!
---------------------------
Can't find MediaInfo.dll
---------------------------
ОК
---------------------------


Code:
5=%COMMANDER_PATH%\Plugins\WDX\TCMediaInfo\TCMediaInfo.wdx64
5_detect=MULTIMEDIA | FORCE

#282:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Jul 26, 2013 21:51
    —
mrmerak
Quote:
5=%COMMANDER_PATH/%\Plugins\WDX\TCMediaInfo\TCMediaInfo.wdx64

TC не комбинированный, а чисто 64-битный? И устанавливалась одна 64-битная версия плагина без 32-битной? Если нет, то про установку см. здесь.

#283:  Author: mrmerak PostPosted: Sat Jul 27, 2013 10:20
    —
Avada wrote:
TC не комбинированный, а чисто 64-битный? И устанавливалась одна 64-битная версия плагина без 32-битной?

да

#284:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Jul 27, 2013 10:36
    —
mrmerak
Ясно. С таким вариантом установки я, к сожалению, дел не имел. А MediaInfo.dll в каталоге плагина физически присутствует?

#285:  Author: mrmerak PostPosted: Sat Jul 27, 2013 10:41
    —
Прикольно что как WDX работает. И даже отображает (частично) обложку. Но...
1. Тут все ок
Скриншот 1

2. Тут почему-то не распознал
Скриншот 2

Loopback
Можешь на будущее по-умолчанию обложку включить?
И еще, как вывести тип тега, как на скриншоте?

Avada
все заработало! хз почему

#286:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Jul 27, 2013 11:20
    —
mrmerak
Заработало — и хорошо. А картинки такого размера в посты внедрять запрещено. Заменил ссылками.

#287:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Aug 08, 2013 13:20
    —
Loopback
По последней версии сообщаю (в развитие того, что было написано в личке), что с колонками для заголовка и исполнителя костыль оказался вполне годным, кириллица отображается. А для WLX что-то ещё дополнительно делать надо, чтобы исправить? А то пока и с новым XML-файлом тут кодировка не та.

#288:  Author: Loopback PostPosted: Thu Aug 08, 2013 22:15
    —
Avada
Да, в листерном плагине, чтобы костыль работал, нужно дополнительно обрабатывать получаемые строки скриптовой функцией FixCP, таким образом, костыль может работать только в скриптовых видах. Сейчас в виде "По-умолчанию" информация извлекается без возможности обработки, поэтому в нем это исправить нельзя. Но можно проверить работоспособность, переключившись в вид "Simple". В следующих версиях стандартный вид тоже будет скриптовый.

Этот путь может показаться сложным, но к сожалению, тут не получится совсем простых решений, так как надо указывать плагину, какие строки обрабатывать. Но возможно, я сделаю это немного по-другому.

А обрабатывать все строки подряд - это замедление и так не быстрой работы, да и нет гарантий, что костыль будет корректно работать с другими языками.

#289:  Author: XXXLer PostPosted: Mon Oct 21, 2013 14:12
    —
Loopback
вопрос по строчным функциям - какие параметры и возврат у ф-ции StrPos?

сам себе отвечаю:
StrPos (String, Substr): Pos

#290:  Author: Loopback PostPosted: Thu Oct 31, 2013 10:26
    —
Поскольку офлайновая справка в том виде, котором она была, больше обновляться не будет, а новая пока не готова, вот ссылка на онлайн-версию справки, обновляющейся по мере изменений.

#291:  Author: volcano PostPosted: Sat Mar 22, 2014 21:54
    —
Что-то на 8.50 x64 не пашет Sad

#292:  Author: LonerDLocation: Макеевка PostPosted: Sat Mar 22, 2014 22:10
    —
volcano
Нет желания сообщить подробности?
У меня в последнее время подглюкивает wdx-компонента - не всегда срабатывают всплывающие подсказки (только у этого плагина) к медиа-файлам. Но пока не могу понять причину и закономерность - то ли конфликт какой-то с плагинами, то ли проблема конкретно MediaInfo. Причём если один раз подсказки плагина сработают - дальше они уже отображаются нормально. Такое впечатление, что или плагин или библиотека MediaInfo.dll не может подгрузиться нормально, а потом подгружаются и после этого работают.
TC 8.50x32, Win8.1x64


Last edited by LonerD on Sun Mar 23, 2014 04:06; edited 1 time in total

#293:  Author: Skif_off PostPosted: Sat Mar 22, 2014 23:16
    —
TC 8.51b3 x86-x64 - никаких проблем с плагином (правда, пользуюсь только с пользовательскими колонками), как и с 8.50.
MediaInfo.dll 0.7.67.0
SQLite3.dll 3.6.22.0

#294:  Author: Skif_off PostPosted: Wed Apr 09, 2014 14:55
    —
Нашел, откуда можно слить SQLite3.dll/SQLite3_x64.dll версии 3.8.4.3
http://www.autoitscript.com/autoit3/files/beta/autoit/archive/sqlite/
Только нужно ли?

#295:  Author: amzoom PostPosted: Sat Apr 12, 2014 06:20
    —
На странице контентных плагинов ctrl+f по "TCMediaInfo" ничего не находит.
Если этот плагин жив - почему он не перечислен там? Или он там есть, но под другим названием? Если так, то просьба модератора переименовать эту тему в соответствии с именем этого плагина в списке на той странице.

"Медиа Инфо" плагинов несколько и меж ними легко запутаться :(

#296:  Author: yozhikLocation: Электросталь PostPosted: Sun May 04, 2014 20:53
    —
В строке Format_Settings_Mode скриптом пытаюсь сделать замену. Чтобы из «Joint stereo» стало «Joint».
Code:
<column name="Mode" type="script"><![CDATA[Output:=StrReplace(AudioFormatSettingsMode, ' stereo', '');]]></column>

Не срабатывает, информация не выводится. Не могли бы подсказать что не так?
И ещё.
«TC MediaInfo Wiki» :: «Узел списков» wrote:
Заданное имя может быть использовано в колонках типа «list», или скрипт может вызвать его по этому имени.

Как из скрипта вызвать список замен?

#297:  Author: yozhikLocation: Электросталь PostPosted: Mon May 05, 2014 10:32
    —
TC 8.51a, MediaInfo.dll 0.7.68.0 при попытке обработать файлы *.wma падает Total Confused Откатился на 0.7.67.0.
Добавлено позже:
С обновлённым MediaInfo.dll 0.7.69.0 всё заработало исправно.

#298:  Author: LonerDLocation: Макеевка PostPosted: Thu Dec 11, 2014 16:14
    —
MP3-файл. Поле комментария. Комментарий на русском языке (кириллица). Плагин отображает в виде кракозябр.
Для примера плагины AudioTagView, decID3WLX, Mmedia то же самое поле отображают корректно.

#299:  Author: Loopback PostPosted: Thu Dec 18, 2014 17:16
    —
LonerD wrote:
MP3-файл. Поле комментария. Комментарий на русском языке (кириллица). Плагин отображает в виде кракозябр.
Для примера плагины AudioTagView, decID3WLX, Mmedia то же самое поле отображают корректно.


Не буду повторяться, почему в плагине кракозябры, а в других нет, это обсуждалось пару страниц назад. В последней версии 0.74 была сделана попытка сделать костыль для исправления ситуации. Просто нужно убедиться, что в таких полях этот костыль (process="fix_cp") включен, например:

Code:

        <source name="Title" field="Title" process="fix_cp"/>
        <source name="Album" field="Album" process="fix_cp"/>


В этом случае плагин будет пытаться (понятно, что путем некоторого снижения производительности) определить кодировку текста.

#300:  Author: LonerDLocation: Макеевка PostPosted: Wed Dec 24, 2014 06:09
    —
Loopback
Костыль не помогает. Точнее может и помогает, но не всегда (он у меня и был изначально прописан) - в некоторых файлах кодировка так и оставалась неправильная.

И ещё постоянно возникает такая проблема с плагином. У меня организованы всплывающие подсказки к разным типам файлов в Тотале. Иногда они не срабатывают, причём глобально, ни к одному файлу. Потом что-то происходит (закономерность пока не выявил) - и всё начинает работать как требуется. Иногда это происходит при переключении на вид колонок с информацией из плагина, иногда и это не помогает... Такое впечатление, что плагин не всегда может подгрузиться, а если не подгрузится при первом вызове, то в дальнейшем - даже и не пытается...
Похоже, это происходит когда система чересчур занята (например идёт ресурсоёмкий процесс или несколько потоков копирования).
Насколько я помню - в самых ранних релизах плагина такой беды не наблюдалось.


Last edited by LonerD on Sat Jan 03, 2015 01:43; edited 1 time in total

#301:  Author: antabuLocation: Новосибирск PostPosted: Mon Dec 29, 2014 10:15
    —
Loopback
Quote:
В последней версии wlx совмещен с wdx

Соб-на нужен wlx, не мог врубиться, как его подключить. Пришлось переименовать TCMediaInfo.wdx в TCMediaInfo.wlx. Работает, но это же непорядок.

#302:  Author: AvadaLocation: Россия, Саратов PostPosted: Mon Dec 29, 2014 11:27
    —
antabu
Разумеется, непорядок. И никто так не делает. Стандартный диалог настройки WLX-плагинов. Кнопка "Добавить". Найти каталог, содержащий TCMediaInfo.wdx. Предлагаться будут только файлы WLX-плагинов. Поэтому далее либо вставить заранее скопированное имя WDX-плагина, либо просто ввести первое T и и вставить нужное имя из списка автозавершения.

#303:  Author: BommLocation: Москва PostPosted: Mon Dec 29, 2014 16:00
    —
А еще можно в окне "Имя файла" написать "*.wdx" (без кавычек) и нажать "Ввод".
Изобразятся файлы с расширением "wdx".
Или ввести "*.*". Изобразятся все файлы)

#304:  Author: yozhikLocation: Электросталь PostPosted: Fri Jan 02, 2015 23:14
    —
Loopback
Очень рад, что Вы появились. Не могли бы помочь разобраться в этом вопросе?

#305:  Author: antabuLocation: Новосибирск PostPosted: Sat Jan 10, 2015 19:18
    —
Извините, что не совсем в тему и если вопрос уже обсуждался.
Переключение просмотра файла разными плагинами по "4"
Нельзя ли настроить ТС так, чтобы запоминался последний плагин для данного типа файлов (при просмотре по F3 следующего файла с таким же расширением первым использовался плагин, который был последним на предыдущем файле)? Версия 8.0

#306:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Jan 10, 2015 19:35
    —
antabu
Во-первых, действительно совсем не в тему. Во-вторых, нет, нельзя. Дальше здесь обсуждение этой проблемы прошу не продолжать никого.

#307:  Author: Chelipuo PostPosted: Mon Jan 26, 2015 12:49
    —
Добрый день!
Столкнулся со следующими проблемами:
1) название фильма в .mkv (поле Title) в листере отображается нормально, но в всплывающей подсказке не видны русские буквы.
2) опять же, в листере видны нестандартные поля типа Descriprion или Url, а подключить их в попап не получается.
Не могли бы подсказать, как побороть это?

#308:  Author: cojoc PostPosted: Tue Feb 10, 2015 17:26
    —
Плагин не показывает инфу для .ts?

#309:  Author: Skif_off PostPosted: Tue Feb 10, 2015 17:37
    —
lcojoc
Должен показывать, в конфиге формат упомянут. Что-то не показывает?

#310:  Author: cojoc PostPosted: Tue Feb 10, 2015 17:41
    —
Есть запись "EXT="m2ts" | EXT="TS" | EXT="WMV""
А в wdx у меня ничего.
Проверил на двух файлах mkv - у одного взял инфу у другого чисто.

#311:  Author: Skif_off PostPosted: Tue Feb 10, 2015 20:46
    —
cojoc
Плагин крайней версии? MediaInfo.dll актуальные? Сам по себе MediaInfo корректно показывает (можно посмотреть свойства в плеерах, использующих либу, типа Daum PotPlayer или MPC-BE)?

#312:  Author: FlasherLocation: Москва PostPosted: Tue Feb 10, 2015 20:52
    —
cojoc
Писать в конфиг ТС ничего не надо. Нужно писать в конфиг плагина:
Code:
<Formats>...,MKV,...,TS,...</Formats>
Ну, и перезапустить Тотал не забыть.

#313:  Author: Skif_off PostPosted: Tue Feb 10, 2015 21:46
    —
Flasher
Там TS есть из коробки в TCMediaInfo.sample.xml, по крайней мере в крайней версии.

#314:  Author: FlasherLocation: Москва PostPosted: Tue Feb 10, 2015 22:09
    —
Skif_off
Многие ли делают замену своего конфига на sample при обновлении?

#315:  Author: cojoc PostPosted: Tue Feb 10, 2015 22:46
    —
Верно, заменил TCMediaInfo.xml на более новый и всё в порядке.

#316:  Author: Skif_off PostPosted: Wed Feb 11, 2015 01:02
    —
Flasher
Да, моя привычка проверять примеры конфига новой и предыдущей версий сыграла дурную роль - предложил проверять версии, как делал бы у себя Smile Проверил ради любопытства - TS в конфиге начиная с 0.7.2, матрёшка - с самого начала (0.6.2).

#317:  Author: FlasherLocation: Москва PostPosted: Wed Feb 11, 2015 01:07
    —
Skif_off
Что за матрёшка?

#318:  Author: Skif_off PostPosted: Wed Feb 11, 2015 01:28
    —
Flasher
MKV - Matroska Video File.

#319:  Author: FlasherLocation: Москва PostPosted: Wed Feb 11, 2015 13:38
    —
Skif_off
Совсем забыл, что её матрёшкой называют, хотя по транскрипции это никак не matrioshka, а фланка с воротом поверх тельняшки.

#320:  Author: cojoc PostPosted: Wed Apr 29, 2015 22:05
    —
Плагин можно настроить так чтобы он правильно понимал символы кодировки - хотел переименовать треки с названиями на португальском, а там буквы которые с закорючками - на выходе совсем не те буквы.
anytag.wdx 0.98 вообще не подхватил данные из тега названия трека (.m4a)
audioinfo тоже неправильно показал такие буквы.

#321:  Author: FlasherLocation: Москва PostPosted: Thu Apr 30, 2015 09:52
    —
cojoc
Как нужно переименовывать? Просто подставлять имя композиции?
И можно тестовый файлик скинуть?

#322:  Author: JKTLocation: Харьков PostPosted: Thu Apr 30, 2015 18:57
    —
Уважаемые.
Подскажите пожалуйста, какой параметр отвечает за показ характеристик аудиодорог в видеофайле, если этих дорог несколько. Т.е . цель - во всплывающей подсказке чтоб высвечивало не только хар-ки 1-й дороги, но и других. Ведь в самой программе mediainfo все дороги видны и для каждой свои характеристики. А то получается, показывает, допустим, потоков 4, а что я нашел, так это только, допустим
Code:
[=tcmediainfo.Аудиоформат]
[=tcmediainfo.Битрейт аудио.KBps]
[=tcmediainfo.Число каналов]

И это только для 1-й дороги. Надеюсь правильно описал проблему...

P.S. Один параметр, которого не было в стандартном конфиге плагина, я все-же вывел , редактированием tcmediainfo.xml, все нормально получилось, а вот это ну никак не получается. Или это невозможно?
Спасибо.

#323:  Author: cojoc PostPosted: Thu Apr 30, 2015 21:36
    —
Flasher
Дело в том что названия треков m4a из iTunes Windows имеют определённую длину, т.е. длинные имена режутся. Я хотел вставить в имя инфу из тега название трека. И вот не все кодировки правильно вставляются.

#324:  Author: FlasherLocation: Москва PostPosted: Thu Apr 30, 2015 22:56
    —
cojoc
Я просил файл для теста.
Этот скрипт показывает название трека?

#325:  Author: cojoc PostPosted: Thu Apr 30, 2015 23:42
    —
Привет Flasher! Я не понял сначала, прочитал вместо тестового файла - текстовый файл Smile
Запустил скрипт - вот пример:
Name: 09 Quem Irá Nos Proteger.m4a
....
Title: Quem Irá Nos Proteger
...
Filename: 09 Quem Irá Nos Proteger.m4a
------------------------------------------------------------------------
Name: 16 Good Luck _ Boa Sorte (English Ve.m4a
...
Title: Good Luck / Boa Sorte (English Version)
...
Filename: 16 Good Luck _ Boa Sorte (English Ve.m4a

http://rghost.ru/private/6FkvZ6wCD/0b026a214ae7b62535019c795244a6b5

#326:  Author: FlasherLocation: Москва PostPosted: Fri May 01, 2015 10:14
    —
cojoc
Я сомневаюсь, что дело вообще в юникодных символах. Указанные плагины просто не считывают данные файла.
А раз мой скрипт показывает данные, значит, остаётся только: [=shelldetails.Номер записи] [=shelldetails.Заголовок].

А локаль у винды английская что ли?

#327:  Author: cojoc PostPosted: Fri May 01, 2015 20:00
    —
Почему не читает?

#328:  Author: FlasherLocation: Москва PostPosted: Fri May 01, 2015 20:14
    —
Не знаю, у меня не отображается. Так чем shelldetails не устроил?

#329:  Author: cojoc PostPosted: Fri May 01, 2015 20:36
    —
[=shelldetails.Заголовок] работает с символами правильно, спасибо за подсказку!

#330:  Author: Chelipuo PostPosted: Wed Sep 30, 2015 14:05
    —
Добрый день.
Я, когда качаю, например, фильм, добавляю в .mkv тег URL с адресом.
Соответственно, в TCMediaInfo.xml добавляются строки
Code:
<source name="URL" field="URL" context="General"/>
и
Code:
<column name="URL">URL</column>
а в подсказки
Code:
0exts=*.mkv
0fields=[=tcmediainfo.Title]\n[=tcmediainfo.URL]

Также TCMediaInfo используется как листерный плагин.
Установив TCMediaInfo 0.7.4, получил отображение нелатинских символов в названии (раньше были кракозябры), но появился глюк - если открыть .mkv листером, то подсказки пропадают.
Обошел дублированием TCMediaInfo в wlx, но все же интересно, в чем дело.

#331:  Author: asmadeus PostPosted: Wed Dec 16, 2015 21:41
    —
Доброго времени суток!
Прошу помощи у знатаков настройки плагина.
Перехожу с плагина media.wdx на tcmediainfo.wdx из за невозможности запуска первого на 64-битной версии программы.
В связи с чем вопрос - не все данные показываются так, как я привык видеть ранее. Из предложенного файла помощи к плагину стало понятно, что скрипт надо править под себя, но что то с этим косяк.
Вот пример на скрине ( колонка media.encoder с плагина media.wdx)
http://i65.fastpic.ru/big/2015/1216/30/3ecfd49a30f96dc96fefac769c220b30.png
А вот пример с теми же файлами, но на плагине tcmediainfo.wdx и добавленным полем Encoded_Library, которое почему то не перевелось на русский, хотя в языковом файле присутствует. Ну и как видно библиотеки не отображает
http://i65.fastpic.ru/big/2015/1216/dc/6d5685c52b30df1ad39293c3ce3b94dc.png
Не буду покка более утомлять скринами. Опишу текстово. Хотелось бы еще настройку для типа тегов в файле (да, забыл же сказать - это все касается пока только аудиофайлов). Тип тега имеется в виду что то такое - ID3v2.3.0, ID3v1 - я бы тогда еще от одного плагина избавился
Туда же - режим каналов ( например, Joint Stereo)
И последнее - компрессор (название с media.wdx) - такое значение MPEG1 Layer-3
Помогите с правкой скрипта для этих пунктов

#332:  Author: AvadaLocation: Россия, Саратов PostPosted: Wed Dec 16, 2015 22:22
    —
asmadeus
Ссылки сделал доступными. Хотя что должны иллюстрировать эти скрины и как они могут помочь тем, кто в глаза не видел "тех же файлов", я, честно говоря, в таком виде не понял.
Что касается "скрипта", то речь, надо полагать, идёт о конфигурационном файле TCMediaInfo.xml, который никаким скриптом не является.

#333:  Author: FlasherLocation: Москва PostPosted: Thu Dec 17, 2015 03:35
    —
asmadeus wrote:
ID3v2.3.0, ID3v1 - я бы тогда еще от одного плагина избавился
Это mp3info.ID3vX.ID3vX.Y или anytag.Tag Read? Тут этого нет.
asmadeus wrote:
Туда же - режим каналов ( например, Joint Stereo)
Аналогично. channel mode нет.

Avada wrote:
Что касается "скрипта", то речь, надо полагать, идёт о конфигурационном файле TCMediaInfo.xml, который никаким скриптом не является.
Скрипты есть и могут быть модифицированы внутри этого файла после type="script">. Здесь, кстати, тоже приводились.

#334:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Dec 17, 2015 08:20
    —
Flasher wrote:
Скрипты есть и могут быть модифицированы внутри этого файла

Да, верно. Давно ничего там не модифицировал, успел забыть. Embarassed

Flasher wrote:
Аналогично. channel mode нет.

А в сгенерированном батником файле allprops.txt среди свойств, содержащих Channel(s), точно нет чего-то похожего? (Я сам не проверял.) И здесь каналы есть...

Кстати, автор плагина в английской версии справки (там, где "Конфигурация") давно исправил allfields.txt на allprops.txt, а в русской версии в этом месте поменять забыл.

#335:  Author: FlasherLocation: Москва PostPosted: Thu Dec 17, 2015 09:32
    —
Avada
Channel(s) - это, как нетрудно убедиться, число каналов, и так входит в Sample. Максимум, что даст это число, это определение Mono/Stereo (см. нижний скрипт для All audio as string).
ChannelPositions тут тоже погоды не сделает.

#336:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Dec 17, 2015 09:41
    —
Flasher
Про число я знаю, сам в наборе колонок использую. А Mono/Stereo – да, вижу в XML. Всё же это будет лучше, чем ничего.

#337:  Author: asmadeus PostPosted: Thu Dec 17, 2015 09:59
    —
Avada
Скрины показывают результат работы плагинов. То, что было и что есть. А вопрос в том, как переделать ID3v2.3.0, ID3v1.
Flasher wrote:
Это mp3info.ID3vX.ID3vX.Y или anytag.Tag Read? Тут этого нет.

Это wdxTablib
Я так понимаю, из всех ваших ответов, что без потерь на 64 бита перейти не выйдет, и такой же вид получить не удастся.
Да, все было бы проще, если бы плагин media.wdx существовал еще и в 64 битной редакции

#338:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Dec 17, 2015 10:46
    —
asmadeus
Возможно, я опять чего-то не понял, но WDXTagLib вообще-то есть и 64-битный. Равно как и, например гислеровский плагин id3. (Посмотрите, есть ли в нём нужные свойства). Вы от какого плагина хотите избавиться?
Кстати, цитаты оформляйте аккуратнее. Ненужные излишества из предыдущего поста убраны.

Да, некоторые потери при переходе на x64 вполне возможны и точно такой же вид получить не всегда удаётся. Да, было бы проще, если бы многие плагины существовали в 64-битной редакции. Но поскольку это не так, исходите из имеющегося. В конце концов, под x64 можно использовать комбинированный TC (32+64), переключаясь при необходимости между версиями с разной битностью.

#339:  Author: FlasherLocation: Москва PostPosted: Thu Dec 17, 2015 11:43
    —
ChannelMode в самой библиотеке вроде как реализован (пример с программой), но SaveLibraryOptionsList его не возвращает, и плагин даёт пустые значения, как и многие другие, кстати. Даже такие как Format_Version и Format_Profile.

#340:  Author: yozhikLocation: Электросталь PostPosted: Thu Dec 17, 2015 15:33
    —
Вот же Joint как то настроился, правда как именно я уже не помню.

Может вам, asmadeus, мой файл настроек поможет – посмотреть вариант решения, воспроизвести с него что пригодится. В чём именно косяк с правкой настроек состоит, вы не написали. Вроде там всё не трудно: скачиваете последний MediaInfo.dll, кладёте его рядом с saveprops.bat, запускаете saveprops.bat, на выходе у вас новый allprops.txt (можно предварительно сохранить предыдущий allprops.txt с другим именем, чтобы посмотреть что именно там поменялось) – смотрите там все доступные имена полей, переносите их (если понадобится) в настройки плагина. Можно на время настройки воспользоваться GUI для MediaInfo.dll, чтобы быстро посмотреть какую информацию выдают поля.

#341:  Author: asmadeus PostPosted: Thu Dec 17, 2015 18:53
    —
yozhik
ваш файл настроек решает почти все мои проблемы, по крайней мере касательно аудио. Позже опишу детальнее, чего не достиг, заодно и видео посмотрю

#342:  Author: FlasherLocation: Москва PostPosted: Thu Dec 17, 2015 22:37
    —
yozhik
Code:
          if (StrLeft(AudioFormatSettingsMode, 5) = 'Joint') then
            Output:='Joint'
Хм. Что-то не работает у меня вывод AudioFormatSettingsMode. Надо всё переделывать похоже...
А как насчёт IS, M/S?

#343:  Author: yozhikLocation: Электросталь PostPosted: Fri Dec 18, 2015 12:31
    —
Flasher
Напрямую и не должно работать. Это ж самодельный псевдоним, само поле называется Format_Settings_Mode.
Code:
<source name="AudioFormatSettingsMode" field="Format_Settings_Mode" context="Audio"/>

+ у меня dll версии 0.7.69.0. На сайте уже 0.7.80 – я его пока не смотрел, руки не доходят, конец года – авралы.
Про «IS, M/S» я пока, пардон, не понял что это. К вечеру кофе попью, может туман в голове прояснится...

#344:  Author: FlasherLocation: Москва PostPosted: Fri Dec 18, 2015 13:01
    —
yozhik
Напрямую - это как? Я про строку:
Code:
        <column name="Audio Format Settings Mode">AudioFormatSettingsMode</column>

IS, M/S - это Intensity, Mid / Side Stereo.

Сократил xml до минимума, AudioFormatSettingsMode стал выводить.
Вот Audio_Codec_List ещё сработал. Но ряд других по-прежнему молчат. Sad


Last edited by Flasher on Fri Dec 18, 2015 13:49; edited 1 time in total

#345:  Author: asmadeus PostPosted: Fri Dec 18, 2015 13:02
    —
Итак, что не хватает у меня для полной замены Media на tcmediainfo
1. Нет аналога поля encoder из плагина media. Возможные значения - Xing, FhG,LAME,LAME3.93, LAME 3.98, LAME 3,92, LAME 3.97 (по крайней мере у меня больше нет)

2.XviD MPEG-4 codec FAST Multimedia AG DVM (Dolby AC3) - пример поля
media.компрессор

Я просто стремлюсь достичь полной идентичности сборки двух версий битности

#346:  Author: qx87 PostPosted: Thu Jan 07, 2016 12:43
    —
Не могу понять, какая актуальная версия у плагина?

В шапке лежит явно старая. Видимо, чтобы выяснить это, нужно перелопатить все 23 страницы этой ветки.

Уважаемый Loopback, обновляйте, пожалуйста, шапку при выходе новой версии.

#347:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Jan 07, 2016 13:24
    —
qx87
Автор плагина последний раз появлялся на форуме в позапрошлом году, а первый пост темы шапкой вообще не является. Добавил туда с 19-й страницы ссылку на скачивание последней на сегодня версии 0.7.4.

#348:  Author: qx87 PostPosted: Thu Jan 07, 2016 13:26
    —
Avada
Ясно, большое спасибо.

#349:  Author: FlasherLocation: Москва PostPosted: Thu Jan 07, 2016 13:29
    —
qx87
Но проще было самому убрать в ссылке имя архива и просмотреть список.

#350:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Jan 07, 2016 13:35
    —
Flasher
Проще нормально скачать по нормальной ссылке, которая в первой теме действительно нужна. Да и ссылку на страничку MediaInfo тоже решил добавить.

#351:  Author: qx87 PostPosted: Thu Jan 07, 2016 13:37
    —
Flasher
В итоге я именно так и сделал ещё до ответа Avada. Но согласитесь, что, мягко говоря, неправильно заставлять всех пользователей вот так поступать. В конце концов не все могут это сделать. Да что там, многие вообще не поймут, о чём вы сейчас сказали.

#352:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Jan 07, 2016 13:40
    —
Не будем спорить. Замечание было в целом правильным, самые необходимые в отсутствие автора меры приняты, так что этот вопрос, полагаю, решён.

#353:  Author: FlasherLocation: Москва PostPosted: Thu Jan 07, 2016 13:41
    —
Avada
Вот видишь, мои слова подтвердились. Проще тут не в смысле легче, а - быстрее.
А раз таки дела, то не стоит ждать следующих вопрошающих, чтобы добавить ссылки сюда и сюда. Wink

#354:  Author: AvadaLocation: Россия, Саратов PostPosted: Thu Jan 07, 2016 13:49
    —
Flasher
В указанных темах нечего ждать: там как раз даны нормальные ссылки на наш сайт. И здесь мы это, разумеется, обсуждать не будем.

#355:  Author: FlasherLocation: Москва PostPosted: Thu Jan 07, 2016 14:55
    —
Avada
Как раз таки кое-что есть смысл ждать. Написал в ЛС.

#356:  Author: fundukLocation: Санкт-Петербург PostPosted: Sat Jul 30, 2016 17:43
    —
Очень полезный плагин, выражаю автору благодарность!

#357:  Author: fundukLocation: Санкт-Петербург PostPosted: Mon Aug 01, 2016 00:24
    —
Кто-нибудь пользуется кэшированием в файл в итоге? Что нужно с файлом сделать, чтобы кэш не сработал и плагин заново вычитал данные?

#358:  Author: fundukLocation: Санкт-Петербург PostPosted: Sun Aug 21, 2016 17:55
    —
Если у кого-то из всех полей продолжительности (Duration) работает только Unit z, замените соответствующие строки TCMediaInfo.xml на
Code:
<unit name="hh:mm:ss" type="script">Output:=TimingFormat('%hh:%mm:%ss', StrToFloat(Duration));</unit>
<unit name="hh:mm:ss.fff" type="script">Output:=TimingFormat('%hh:%mm:%ss.%fff', StrToFloat(Duration));</unit>
<unit name="s" type="script">Output:=Trunc(StrToFloat(Duration)/1000);</unit>

#359:  Author: Victor_Dobrov PostPosted: Mon Sep 12, 2016 03:16
    —
как изменить стандартный TCMediaInfo.xml, чтобы вместо строки: "V_MPEG4/ISO/AVC" выводилось только "AVC"?

#360:  Author: Skif_off PostPosted: Mon Sep 12, 2016 17:38
    —
Victor_Dobrov
Тогда по хорошему и для MP4 заменить выдаваемое "avc1":
найти
Code:
        <column name="Video Codec">VideoCodecID</column> <!-- For AVI this field return FOURCC -->

заменить на
Code:
        <column name="Video Codec" type="script">
        <![CDATA[
          if (VideoCodecID = 'V_MPEG4/ISO/AVC') or (VideoCodecID = 'avc1') then
            Output:='AVC'
          else
            Output:=VideoCodecID
        ]]>
        </column> <!-- For AVI this field return FOURCC -->


Через правку Codecs.cfg почему-то не меняется.

Добавлено:

Пардон, использование Codecs.cfg заработало через Видеокодек (польз):
 Hidden text

#361:  Author: Skif_off PostPosted: Mon Sep 12, 2016 21:06
    —
Таки взялся, спустя годы Smile Для себя вопрос с кодеками решил с помощью полей Видеокодек (польз) и Аудиокодек (польз) и Codecs.cfg.
 В TCMediaInfo.xml:

 В Codecs.cfg:

#362:  Author: LonerDLocation: Макеевка PostPosted: Sat Jan 14, 2017 17:59
    —
Skif_off wrote:
Таки взялся, спустя годы Smile Для себя вопрос с кодеками решил с помощью полей Видеокодек (польз) и Аудиокодек (польз) и Codecs.cfg.

Codecs.cfg взял от плагина Media, положил в каталог с TCMediaInfo. Дописал в него указанные строки, подправил TCMediaInfo.xml по твоему совету.
Что-то ещё где-то надо править? Не вижу никаких изменений - ни в wdx, ни в wlx-отображениях. Где именно должна отображаться информация (в каких полях пользовательских колонок, в каких пунктах в wlx-плагине)?

#363:  Author: Skif_off PostPosted: Sat Jan 14, 2017 20:59
    —
LonerD
Колонки Video codec custom и Audio codec custom (в переводе Видеокодек (польз) и Аудиокодек (польз)) добавлены?

За wlx не скажу, т.к. как wlx плаг не использую.

#364:  Author: LonerDLocation: Макеевка PostPosted: Sun Jan 15, 2017 00:11
    —
Skif_off
Понял, спасибо за настройки.
Это колонки Video codec custom и Audio codec custom надо было выставить, они в конце списка и я их не заметил/не пробовал.

#365:  Author: qx87 PostPosted: Sun Feb 05, 2017 17:36
    —
У меня есть файлы *.m с MATLAB'овскими исходниками, которые я хочу открывать по F3 как текст, но Lister открывает их с помощью плагина. Как отключить поддержку этого расширения плагином?

TC 9.0a x64
TCMediaInfo 0.7.4

#366:  Author: AvadaLocation: Россия, Саратов PostPosted: Mon Feb 06, 2017 08:52
    —
qx87
Гм... А из чего следует, что она она вообще включена, эта поддержка? MATLAB'овскими файлов не имею, так что просто заменил у произвольного файла расширение на .m — открывается он, как и следовало ожидать, чистым Листером. В файле TCMediaInfo.xml в секции Formats в перечне расширений никакого M в виде одной буквы, естественно, нет. В wincmd.ini детект-строка для этого плагина у меня отсутствует.
Попробуйте, забэкапив прежний wincmd.ini, проверить работу TC в максимально близкой к умолчальной конфигурации на этих файлах с единственным Lister-плагином — этим самым.

#367:  Author: qx87 PostPosted: Mon Feb 06, 2017 21:49
    —
Из того, что название плагина появляется в заголовке окна листера.

Удалил остальные плагины -- та же ситуация.

Я сам точно не знаю, каким образом ТС выбирает тот или иной плагин. Но на сайтах, посвящённых типам файлов, пишут, что это же расширение в том числе является расширение некоторых медиафайлов. Возможно, их в том числе и поддерживает TCMediaInfo.

#368:  Author: Skif_off PostPosted: Mon Feb 06, 2017 22:47
    —
qx87
"Некоторых медиафайлов" - это каких?

Откройте файл TCMediaInfo.xml в текстором редакторе, в начале файла есть
Code:
<?xml version="1.0" encoding="UTF-8"?>
<tcmediainfo>
    <options>
        <Formats>AVI,DIVX,...</Formats>

Внутри <Formats></Formats> есть расширение "М"?

#369:  Author: qx87 PostPosted: Mon Feb 06, 2017 23:02
    —
Нет.

Code:
<Formats>AVI,DIVX,MPEG,MPE,MPA,DAT,MPG,ASF,VOB,MKV,OGM,MP1,MP2,MP3,MP4,M4A,M4V,AVC,FLV,3GP,TS,WAV,AIFF,OGG,WMA,MOV,WMV,QT,AC3,DTS,AU,D2V,RA,RM,APE,FLAC</Formats>


Вот здесь описание расширения, там есть PC-98 Game Music File.
https://fileinfo.com/extension/m

В wincmd.ini у меня вот что:

Code:

[ListerPlugins]
...
3=%COMMANDER_PATH%\Plugins\wdx\TCMediaInfo\TCMediaInfo.wdx
3_detect="MULTIMEDIA | FORCE"

#370:  Author: Skif_off PostPosted: Mon Feb 06, 2017 23:33
    —
qx87
В детект-строке, если не изменяет память, можно запретить отрабатывать выбранные расширения, кажется, в виде EXT!="M". Можно попробовать как-то так:
Code:
3_detect="MULTIMEDIA & EXT!="M" | FORCE"

Или дождаться опытных товарищей Smile

P.S. Ппц, под ведроидом ничем не расковырять *.hlp, надо будет залить в облако RTF'ы, не в первый раз срочно понадобилась документация по плагинам Sad

#371:  Author: qx87 PostPosted: Mon Feb 06, 2017 23:35
    —
Сработало, спасибо огромное!

#372:  Author: Tol!kLocation: Арзамас PostPosted: Tue Feb 07, 2017 19:56
    —
а убрать FORCE будет не достаточно?

#373:  Author: qx87 PostPosted: Tue Feb 07, 2017 21:13
    —
Проверил. Нет, недостаточно.

#374:  Author: Skif_off PostPosted: Tue Feb 07, 2017 21:34
    —
qx87
А вы не поверяли с совсем пустой детект-строкой в wincmd.ini, как у Avada?

#375:  Author: qx87 PostPosted: Tue Feb 07, 2017 21:56
    —
Нет. А смысл вообще теперь чего-то проверять ещё? Проблема же решена.

#376:  Author: Skif_off PostPosted: Tue Feb 07, 2017 23:47
    —
qx87
А как же причина? Так костыльно получается, если по умолчанию детект-строка пустая, то ручное редактирование конфига с последующим допиливанием определённо лишнее...

#377:  Author: qx87 PostPosted: Tue Feb 07, 2017 23:54
    —
Я до вчерашнего дня про эту эту строку ничего не знал. Соответственно, и не правил её. Значит, она по умолчанию была именно такая, а не пустая.

Попробовал с пустой строкой, всё равно открывает плагином.

#378: id3 multiple string Author: Zaytsev ArtemLocation: Saint-Petersburg PostPosted: Fri Feb 17, 2017 20:29
    —
Спасибо за мощный плагин. Тормозит он у меня не-по-детски, но, как говорится, большому кораблю большое плавание. У меня следующие вопросы:

1. Столкнулся с тем, что не отображался id3-год записи альбома. Выше в топике эта проблемма уже обсуждена, — я так понял, что плагин извлекает это поле, но пытается его читать в формате ft_datetime и обламывается. В общем, я добавил отдельный строковый столбец:
Code:
<column name="Recorded Year (as text)">RecDate</column>
Loopback wrote:
Mellomann wrote:
- помогло, спасибо. Настоятельно советую это дописать в стандартный конфиг.
Добавлю.
Т. е. я не знаю, что именно собирались добавить/добавили, я к тому, что текстовую дату тоже можно добавить, т. к. решение проблемы для обывателя не очевидно (я, когда столкнулся, решил, что это баг). Или, может, лучше было бы придумать альтернативный способ чтения типа ft_datetime_or_string.

2. Есть ли возможность добавить поддержку multiple string? Согласно стандарту id3v2.4.0-frames, п. 4.2:
Code:
All text information frames supports multiple strings, stored as a null separated list, where null is represented by the termination code for the character encoding.
На данный момент, если в тэге artist указано несколько исполнителей, то отображается только первый. Не знаю, как точно проверить, но программа MediaInfo (0.7.80) тоже читает только одну строку, — значит от TCMediaInfo тут уже ничего не зависит?

3. Если поля комментария COMM нету (а иногда даже если есть, например, был случай, когда поле в файле присутствовало, но кодировка была неверная), то вместо него отображается artist (TPE1). У кого-нибудь такая же ситуация наблюдалась? В чём может быть причина? В файле TCMediaInfo.xml ничего больше, кроме вышеописанного, не добавлял. Ну, ещё добавлял столбец для тэга album artist, но это не должно влиять.

#379:  Author: Baltazar PostPosted: Mon Apr 17, 2017 20:39
    —
Подскажите, как исключить из обработки плагином определённые форматы ? Как включить - понятно ( xx_detect="EXT="AVI" | .. ), а вот как их исключить при наличии флага "MULTIMEDIA" ?

Или же исключений нет и решить проблему можно только вручную прописав все детектируемые расширения ?

#380:  Author: AvadaLocation: Россия, Саратов PostPosted: Mon Apr 17, 2017 20:53
    —
Baltazar
Поиск по форуму (например, по исключить формат) сломался? Пример.

#381:  Author: addhaloka PostPosted: Mon Apr 17, 2017 21:05
    —
Baltazar wrote:
Подскажите, как исключить из обработки плагином определённые форматы ? Как включить - понятно ( xx_detect="EXT="AVI" | .. ), а вот как их исключить при наличии флага "MULTIMEDIA" ?

Хм, у меня вообще строки detect для него нет - форматы берутся из TCMediaInfo.xml. Там же можно убрать ненужные.

p.s. Смотрю, уже обсуждалось это...


Last edited by addhaloka on Mon Apr 17, 2017 21:09; edited 1 time in total

#382:  Author: Baltazar PostPosted: Mon Apr 17, 2017 21:09
    —
Avada, искал, да запросы были другие, вот и вылезало не то :/ Спасибо.

addhaloka, спасибо, как вариант решения проблемы сгодится Wink

#383:  Author: DCT PostPosted: Thu Jun 15, 2017 03:25
    —
Плагин имеет пренеприятнейший баг: при его использовании в TC периодически включается плавная прокрутка.
Вот тут https://www.ghisler.ch/board/viewtopic.php?p=311395 установили, что версия 0.7.2 вызывает этот баг только при использовавнии в качестве листер-плагина, а версия 0.7.1 бага не имеет совсем.

Если автор тут бывает, то большая просьба поправить.

#384:  Author: Dimsok PostPosted: Sat Feb 24, 2018 01:08
    —
Не удаётся задействовать отображение Nominal bitrate для видео в mkv. Добавляю "<source name="BitRate_Nominal" field="BitRate_Nominal"/>", и соответствующую строку в column, но не отображает, хотя в самой программе этот пункт для данного видео действует.

#385:  Author: Skif_off PostPosted: Sat Feb 24, 2018 09:35
    —
Dimsok
Так
Code:
<?xml version="1.0" encoding="utf-8"?>
<tcmediainfo>
    ...
    <sources>
        <!-- Video -->
        ...
        <source name="VideoBrN" field="BitRate_Nominal" context="Video"/>
        ...
    </sources>
    <columns>
        ...
        <!-- Video -->
        ...
        <column name="Video Bitrate Nominal">
            <unit name="Bps">VideoBrN</unit>
            <unit name="KBps" type="script">Output:=Format('%f', VideoBrN/1000);</unit>
            <unit name="MBps" type="script">Output:=Format('%f', VideoBrN/1000000);</unit>
        </column>
        ...

?

#386:  Author: Dimsok PostPosted: Sun Feb 25, 2018 03:22
    —
Спасибо, так вроде отображает.

#387:  Author: Skif_off PostPosted: Sun Jul 15, 2018 18:46
    —
TCMediaInfoClearBase. Скачать

Очистка базы плагина TCMediaInfo от устаревших записей и оптимизация базы, возможно принудительно указать папку или список файлов (см. примечание п.3).
Написано на AutoIt (писалось и проверялось в версии 3.3.8.1).

Скрипт перебирает список файлов в базе и проверяет существование: если файл не существует - будет удалён из базы. Если файл существует, то сравнивается его размер с размером в базе: если не равны - файл будет удалён из базы.
Скрипт необходимо положить в папку плагина TCMediaInfo, рядом должны быть: файл конфигурации плагина TCMediaInfo.xml и библиотека SQLite. В случае использования х64-версии AutoIt для работы будет автоматически выбрана 64-битная библиотека SQLite ("Sqlite3_x64.dll").

1. TCMediaInfo сбрасывает информацию в файл базы только при выгрузке, поэтому после запуска скрипта необходимо закрыть Total Commander/Double Commander (TC/DC).
2. Запускать необходимо из TC/DC! В путях могут использоваться переменные окружения TC/DC (самое очевидное - %COMMANDER_PATH%): чтобы получить их значение, они должны наследоваться скриптом.
3. Допустимо использовать параметр запуска (только один!), тип переданного параметра будет определён автоматически:
- каталог, файлы которого необходимо убрать из базы (например, после изменения тегов, не меняющих размер файла);
- список файлов, которые необходимо убрать из базы (в UTF-16 LE!).
Список выделенных файлов передаётся следующим параметром:
- в TC: "%WL"
- в DC: %/1%LW
ПРИМЕЧАНИЕ: Использование параметра НЕ отменяет проверки базы на существование и изменение размера файлов и оптимизации базы в случае её модификации!

Отчёт VirusTotal: UPX, nonUPX

#388:  Author: Skif_off PostPosted: Mon Jul 16, 2018 22:37
    —
TCMediaInfoClearBase 0.1.4.0
Исправлена работа с файлом списка:
- файл списка читается до окна подтверждения (Double Commander при закрытии удаляет его молча);
- файл списка теперь удаляется скриптом, после его обработки (Total Commander не удаляет его при закрытии).

Может быть, есть смысл добавить возможнось удалять только записи, указанные параметром (каталог или список)? Единственный вариант использования, который приходит в голову - портативная версия и несколько ПК, насколько это может быть реально?

#389:  Author: Skif_off PostPosted: Tue Jul 17, 2018 12:14
    —
TCMediaInfoClearBase 0.1.5.0
Если после проверки к удалению оставался всего один файл, то он не удалялся.

#390:  Author: Skif_off PostPosted: Tue Jul 24, 2018 22:19
    —
Loopback
А как вы решаете проблему с кодировкой (fix_cp/FixCP)? Наворотил
 Hidden text

но как-то всё это не очень нравится...

#391:  Author: CaptainFlintLocation: Москва PostPosted: Thu Jul 26, 2018 02:29
    —
 !  CaptainFlint:
Skif_off, Flasher
По замечанию каждому за оффтоп. Всё словоблудие уничтожено.

#392:  Author: Loopback PostPosted: Fri Jan 11, 2019 17:31
    —
Версия 0.7.5

Скачать 32+64

Отключил код, связанный с плавной прокруткой, честно говоря, вообще не помню, для чего это делалось. Наверно не просто так Smile Надеюсь, это не повлечет каких-нибудь негативных последствий.

Второй момент, связан с кодировкой файла конфигурации. Поскольку по-умолчанию русских символов в нем не было, а файл сохранялся без BOM, вероятнее всего он и редактировался как ANSI, что требовало вручную конвертировать русские строки в последовательность символов UTF-8. Сейчас пример пересохранен как UTF-8+BOM, то же самое советую сделать всем в своих конфигурациях, во избежание в будущем таких проблем.

Также обновил библиотеки до актуальных, размер подрос прилично Twisted Evil

#393:  Author: FlasherLocation: Москва PostPosted: Sat Jan 12, 2019 04:50
    —
Loopback wrote:
Наверно не просто так
По запросу.

По кодировке. Проверил на коде, заменив на русские Портрет|Квадрат|Ландшафт, вижу кракозябры. Причём в обеих кодировках с любой комбинацией.

#394:  Author: Loopback PostPosted: Sat Jan 12, 2019 13:45
    —
Flasher
Там про горизонтальную прокрутку вроде речь. А тут "плавная" прокрутка (которая только мешает).

По кодировке, оказывается исправил только для wlx. О чем я и говорил, что тут еще каша в коде. Попробуй эту версию, исправил для wdx.

#395:  Author: FlasherLocation: Москва PostPosted: Sat Jan 12, 2019 13:58
    —
Loopback
Про прокрутку ясно. Больше в теме нигде про неё не говорилось (кроме жалобы).

Версия в порядке. Спасибо за фикс. Smile


Last edited by Flasher on Sat Jan 12, 2019 22:27; edited 1 time in total

#396:  Author: Lisabon PostPosted: Sat Jan 12, 2019 14:18
    —
Loopback
1. Можно ли сделать, чтобы плагин TCMediaInfo более быстрее работал. Например, в плагине MediaInfoWDX 2.01 , производительность очень сильно выросла. Хотелось бы TCMediaInfo, так же быстро работал.

2. Можно ли для wlx плагина, сделать параметр в конфигурационном файле, который бы отключал функционал воспроизведения файла. Мне хотелось бы, чтобы работал только для получения информации файла.

#397:  Author: LonerDLocation: Макеевка PostPosted: Sat Jan 12, 2019 14:46
    —
Loopback
В связи с обновлением - можешь подправить работу плагина в Universal Viewer?

#398:  Author: Loopback PostPosted: Sat Jan 12, 2019 15:38
    —
Lisabon wrote:
более быстрее работал

При первичной загрузке данных плагины работают с совершенно одинаковой скоростью, поскольку основное время тратится на работу библиотеки Mediainfo. Однако в том плагине включена отложенная загрузка данных, поэтому по ощущениям кажется быстрее. Здесь тоже это будет сделано, если вообще будет время заняться.

Lisabon wrote:
Мне хотелось бы, чтобы работал только для получения информации файла.

Он только так и работает, только информация. Если воспроизведение - это что-то другое.

LonerD
Не знаю, не пробовал. Если UV имитирует листер тотала, должно же быть все нормально? Wink

#399:  Author: Lisabon PostPosted: Sat Jan 12, 2019 16:45
    —
Quote:
Он только так и работает, только информация. Если воспроизведение - это что-то другое

Да, попутал. Это срабатывает встроенный lister.

#400:  Author: Loopback PostPosted: Sat Jan 12, 2019 23:12
    —
LonerD
Посмотрел, UV не вызывает функцию плагина ListNotificationReceived, соответственно нет и отрисовки. Пока в UV не будет ее поддержки - увы.

#401:  Author: Loopback PostPosted: Sat Jan 26, 2019 23:15
    —
Новая "мажорная" бета 0.8.0, скачать можно здесь.

В первую очередь, настоятельно рекомендую сохранить перед обновлением свои настройки, изменений очень много, что-то может пойти не так. Возможно, даже лучше поставить с нуля, поскольку в листерной части поменялись режимы просмотра.

Наверно, это будут последние несколько бет перед релизом. Всё оказалось не так плохо, нашлись наработки, сделанные после беты 0.7.4, а это больше половины от всего обновления. Оставалось привести код в порядок. В принципе, всё что планировалось реализовать из глобального - реализовано. Что-то еще, конечно, может поменяться, но надеюсь, таких серьезных изменений больше не будет.

Языковые файлы толком еще не обновлял, это в последнюю очередь. В ближайших планах сделать расширенные шаблоны просмотра и добавить английскую справку в chm, пока в комплекте предварительная версия русской. Еще код скриптов грязноватый, надо будет причесать.

Список обновлений:
+ добавлен заголовок второго уровня
+ попутно, плагин теперь заработал в UV
+ все опции отображения могут переопределяться независимо для каждого шаблона вида в скрипте
- исправлено множество мелких ошибок, которые даже сложно перечислять
- исправлена работа функций StrReplace, StrPos
- убрана еще кучка разных багов с переводами
- исправлен баг с некорректным отображением некоторых строк перевода
- исправлен баг со списком расширений (плагин мог открывать не медиафайлы)
- устранен разброд по скриптовым функциям, когда одна работала в wdx, а в wlx нет, и наоборот
+ можно задавать отдельный цвет для четных строк
+ цвета можно задавать в привычном виде RGB HEX
+ кучка дополнительных опций отрисовки, см. документацию
+ в меню видов можно добавлять разделитель
+ добавлено автоматическое переключение видов по расширениям
+ добавлена поддержка просмотра обложек альбомов, если они есть в файлах
+ добавлено выделение всего списка (Ctrl+A)
+ добавлен поиск

В обновлении есть несколько изменений, в результате которых некоторые скрипты могут перестать работать. Функции FixCP, IntToStr убраны и заменены FixCodepage и String соответственно, возможно, что-то еще забыл. Также изменились имена большинства опций отображения.

#402:  Author: Lisabon PostPosted: Sun Jan 27, 2019 16:48
    —
Loopback
Quote:
Новая "мажорная" бета 0.8.0,

Приветствую!
При использовании wdx плагина, рандомно на аудио файлах выскакивает ошибка и Total Commander подвисает:
 Hidden text


У меня Total Commander 9.21a 32-bit, Windows 8.1 64-bit.
Мой файл конфигурации: TCMediaInfo.xml

В WinCmd.ini:
Code:
[CustomFields]
Widths5=201,30,-41,65,35,51,17,37,37,37,18,150,150,150,21,45,45,200
Headers5=Размер\nДата\nВремя\nФормат\nТип\nЧастота\nБитрейт\nКаналов\n№\nИсполнитель\nНазвание\nАльбом\nГод\nЖанр\nОбложка\nКомментарии
Contents5=[=tc.size.bkMGT3]\n[=tc.creationdate]\n[=tcmediainfo.Duration.h:m:s]\n[=tcmediainfo.Audio Format]\n[=tcmediainfo.Bitrate mode]\n[=tcmediainfo.Sampling Rate" Hz"]\n[=tcmediainfo.Audio Bitrate.KBps" kbps"]\n[=tcmediainfo.Channels]\n[=tcmediainfo.Track number]\n[=tcmediainfo.Performer]\n[=tcmediainfo.Title]\n[=tcmediainfo.Album]\n[=tcmediainfo.Year]\n[=tcmediainfo.Genre]\n[=tcmediainfo.Cover Type]\n[=tcmediainfo.Comment]

#403:  Author: AvadaLocation: Россия, Саратов PostPosted: Sun Jan 27, 2019 19:46
    —
Lisabon
Подобные связки скринов — однозначно под спойлер. (Хотя зачем они все приведены в таком виде вместо копирования+вставки значимого текста через буфер, мне вообще непонятно.) Исправлено.

#404:  Author: prog_sanLocation: Пенза PostPosted: Sun Jan 27, 2019 20:08
    —
Пи попытке инсталляции получаю вот такое окно:

#405:  Author: Loopback PostPosted: Sun Jan 27, 2019 23:02
    —
Lisabon
Что рандомно, это печально. Я в этой версии включил фоновую загрузку полей, скорее всего связано с этим, во всяком случае раньше оно скорее всего было отключено из-за этого. Что самое фиговое, я за последние две недели ни разу не смог словить ни одного падения, хотя старался.

Попробуйте на этой версии, будет ли падать.

prog_san
Спасибо, подтверждаю.

#406:  Author: Lisabon PostPosted: Mon Jan 28, 2019 01:26
    —
Quote:
Попробуйте на этой версии, будет ли падать.

Погонял и падений с ошибками не обнаружил.

По предыдущей версии дополню, что ошибка происходит, если формируется база данных из аудиофайлов. Если база уже сформирована, то сколько не гоняй плагин, падений с ошибками не наблюдалось. Я вот думаю, что возможно не успевает формироваться(записываться) база из аудиофайлов. Может при формировании базы, создать искусственную задержку на запись в базу. Но всё это мои догадки, как там реально работает, виднее только вам.

#407:  Author: Lisabon PostPosted: Mon Jan 28, 2019 11:54
    —
1. При использовании wlx плагина, в режиме просмотра Видео (компактный), на файлах ts, tp, m2ts, mts, появляется сообщение:
Code:
Invalid operand types for ">" (NDUR > 3600000  )


2. При использовании wdx плагина, на файлах ts, tp, m2ts, mts, плагин не отдаёт информацию о длительности (duration) файла, при этом, при использовании wlx плагина на файлах ts, tp, m2ts, mts - длительность (duration) файла отображается.

#408:  Author: Loopback PostPosted: Mon Jan 28, 2019 12:26
    —
Lisabon wrote:
По предыдущей версии дополню, что ошибка происходит если формируется база данных из аудиофайлов.

Спасибо, важное дополнение. Проблема скорее всего связана с доступом к базе из разных потоков. Хотя по-умолчанию SQLite готова к такой работе, возможно я что-то все же не учел. Есть одна мысль, попробую вечером сделать еще тестовую версию. На всякий случай, вы обновляли версию библиотеки SQLite из последнего дистрибутива плагина?

Самое печальное, что сейчас у меня эта проблема больше никак не проявляется. Даже если запускаю одновременно две копии тотала на одном каталоге.

#409:  Author: Lisabon PostPosted: Mon Jan 28, 2019 12:38
    —
Quote:
На всякий случай, вы обновляли версию библиотеки SQLite из последнего дистрибутива плагина

Да, из последнего.

#410:  Author: Loopback PostPosted: Thu Jan 31, 2019 13:32
    —
Lisabon
Сделал тестовую версию, попробуйте, будет ли падать на ней.

Lisabon wrote:
на файлах ts, tp, m2ts, mts, появляется сообщение

Да, похоже на таких файлах приходит дробное значение, которое не преобразовывается автоматически в число. Замените в шаблоне строчку
Code:
nDur := Get('Duration');

на
Code:
nDur := Number(Get('Duration'));


Lisabon wrote:
wdx плагина, на файлах ts, tp, m2ts, mts, плагин не отдаёт информацию о длительности

Та же ситуация. Исправленный код поля:
Code:

        <column name="Duration">
            <unit name="hh:mm:ss" type="script">Output:=TimingFormat('%hh:%mm:%ss', Number(Duration));</unit>
            <unit name="hh:mm:ss.fff" type="script">Output:=TimingFormat('%hh:%mm:%ss.%fff', Number(Duration));</unit>
            <unit name="s" type="script">Output:=Trunc(Duration/1000);</unit>
            <unit name="z">Duration</unit>
            <unit name="Custom" type="script">
            <![CDATA[
              Output:='';
              if Not StrIsNumber(Duration) then Exit;
           nDur := Number(Duration);
              Hour:=Trunc(nDur/3600000);
              Min:=Trunc((nDur-Hour*3600000)/60000);
              Sec:=Trunc((nDur-Hour*3600000-Min*60000)/1000);
              if (Hour <> 0) then Output:=IntToStr(Hour)+' hr ';
              if  (Min <> 0) then Output:=Output+IntToStr(Min) +' min ';
              if  (Sec <> 0) then Output:=Output+IntToStr(Sec) +' sec ';
            ]]>
            </unit>
        </column>

#411:  Author: Lisabon PostPosted: Thu Jan 31, 2019 16:19
    —
Loopback
Quote:
Замените в шаблоне строчку

Quote:
Исправленный код поля:

Поправил в файле TCMediaInfo.xml и погонял плагин. Проблемы с отображением длительности (duration) в wdx плагине на файлах ts, tp, m2ts, mts не наблюдаю. Спасибо.

Quote:
тестовую версию, попробуйте, будет ли падать на ней

И так. Удалил файл Base.db и перезагрузил TC. Дальше переключил на пользовательский набор колонок (в моём случае Аудио), где используется wdx плагин и начал гонять по всем своим аудиофайлам. В итоге вылазят ошибки и TC подвисает.
Сами ошибки вот такие:
Code:
Crash in plugin TCMediaInfo.wdx:
External exception EEDFADE

Crash in plugin TCMediaInfo.wdx:
Access violation at address 048E3877. Write of address 00680074

Crash in plugin TCMediaInfo.wdx:
Access violation at address 048E3877. Write of address 00670065

Crash in plugin TCMediaInfo.wdx:
Access violation at address 048E3877. Write of address 00680076

Crash in plugin TCMediaInfo.wdx:
Access violation at address 048E3871. Read of address 8BB484FC

Crash in plugin TCMediaInfo.wdx:
Access violation at address 048E3877. Write of address 00650060

Crash in plugin TCMediaInfo.wdx:
Access violation at address 048E3871. Read of address 00000024

Crash in plugin TCMediaInfo.wdx:
Access violation at address 086A3877. Write of address 006C0070

Crash in plugin TCMediaInfo.wdx:
Access violation at address 086A3BF9. Write of address 0054004D

Crash in plugin TCMediaInfo.wdx:
Access violation at address 086A3BEB. Write of address 00000000

Crash in plugin TCMediaInfo.wdx:
Access violation at address 086A5610. Read of address E7FFFFFD

Crash in plugin TCMediaInfo.wdx:
Access violation at address 086A38A7. Write of address 0054004D

Crash in plugin TCMediaInfo.wdx:
Access violation at address 086A3871. Read of address FFFFFFFC


Ещё дополню. Ошибка быстрей появляется, если количество файлов в папке около 100 - 200. В папках я листаю файлы быстро, скролом мыши или с клавиатуры клавишами PageDown и PageUp.

#412:  Author: Loopback PostPosted: Fri Feb 01, 2019 15:55
    —
Lisabon
В общем все очень загадочно. Как ни пытаюсь, повторить не получается. Win8 у меня нет, но ни на Win7, ни на Win10 разницы нет. В то же время включить отложенную загрузку тут хотелось бы, при таком-то времени получения данных.

Конфиг использован чистый, с последней версии? Если нет, то этот параметр

Code:
<DebugMode>0</DebugMode>


равен нулю или там что-то установлено? Если что-то стоит, нужно попробовать поставить в 0.

#413:  Author: Lisabon PostPosted: Fri Feb 01, 2019 16:28
    —
Quote:
Конфиг использован чистый, с последней версии?

Конфиг брал с wdx_tcmediainfo_080_beta, но добавил свои пункты и свой файл конфигурации, я выкладывал ранее.

Quote:
то этот параметр

Код:
<DebugMode>0</DebugMode>
равен нулю или там что-то установлено?

Когда тестировал wdx_tcmediainfo_080_beta, то значение было True.
Когда тестировал tcmeadiainfo_test_20190131, то значение было 0.

С чистым файлом конфигурации, без моих добавок, взятый из wdx_tcmediainfo_080_beta - я не пробовал. Попробую отпишусь.

Добавлено...
Попробовал с чистым файлом конфигурации, без моих добавок, взятый из wdx_tcmediainfo_080_beta и тоже выдаёт ошибки с подвисанием ТС.

Если никак не получится сие поправить, то можно ли добавить новую опцию, которая давала возможность, включать/отключать отложенную загрузку?

#414:  Author: FlasherLocation: Москва PostPosted: Fri Feb 01, 2019 17:02
    —
Lisabon wrote:
добавить новую опцию
А разве UseBase/MemoryBase не то? В хелпе дано описание.

#415:  Author: Lisabon PostPosted: Fri Feb 01, 2019 18:07
    —
Flasher
Не то, но попробовал изменить опцию MemoryBase с False на True, чтобы база создавалась в памяти, а не на диске, и плагин держится дольше, прежде чем выдаст ошибки.

#416:  Author: Loopback PostPosted: Fri Feb 01, 2019 18:28
    —
Lisabon
Была такая мысль, хотя это будет костыль, а не решение.

Кстати, а если совсем отключить базу, тоже падает?

Flasher
Нет, MemoryBase просто создает временную базу в памяти, а не на диске, т.е. кэширование работает до закрытия тотала.

Отложенное получение данных это другое. Если загрузка данных занимает много времени, тотал может загружать плагин в фоновом потоке. Соответственно окно тотала не тупит при получении данных. Вот тут-то и начинаются проблемы.

#417:  Author: Lisabon PostPosted: Fri Feb 01, 2019 20:50
    —
Loopback
Quote:
Кстати, а если совсем отключить базу, тоже падает?

Падает.

Может расширенную дебаг-версию плагина сделать, чтобы фиксировала всё, что происходит во время работы плагина, может так можно отловить баг.

#418:  Author: BeTePLocation: Санкт-Петербург PostPosted: Fri Feb 01, 2019 21:19
    —
Lisabon wrote:
Ещё дополню. Ошибка быстрей появляется, если количество файлов в папке около 100 - 200.

Лично у меня плагин работает нормально, никаких ошибок. Даже в папках с количеством файлов 300+. Нормально работает и со своим конфигом и с конфигом, который идёт в комплекте с плагином.
Windows 7 (х64). ТС 9.21a (32 bit).
Так же, ради любопытства, проверял плагин на ТС 8.01 (32 bit) и ТС 8.52а (64 bit) - никаких проблем.

#419:  Author: Loopback PostPosted: Fri Feb 01, 2019 23:20
    —
Lisabon
Понятно, ну хотя бы круг поиска немного сужается, значит проблема на этапе получении данных из библиотеки, либо со скриптингом.

Да, надо будет дебажку сделать, может что-то прояснится.

BeTeP
Ну вот и у меня тоже, тестовый каталог более 500 файлов, проблем нет. Но во всяком случае у Lisabon проблема четко проявляется при включении фоновой загрузки, так что она есть.

#420:  Author: Loopback PostPosted: Sat Feb 09, 2019 20:05
    —
Lisabon
Выложил дебажку. Наверно, раз проблема проявляется без базы, лучше запускать при выключенной базе, меньше лишнего будет писать в лог. Включать отладку в конфиге необязательно, тут она включена принудительно.

#421:  Author: Lisabon PostPosted: Sat Feb 09, 2019 22:19
    —
Loopback
Quote:
Выложил дебажку


1.
Quote:
лучше запускать при выключенной базе

В файле конфигурации:
Code:
  <MemoryBase>False</MemoryBase>
  <UseBase>False</UseBase>

Выдало с начала одну ошибку. В окне с ошибкой нажал на кнопку ОК. ТС не завис и плагин продолжал работать. Через некоторое количество папок выдало ешё раз ошибку. Снова в окне с ошибкой нажал на кнопку ОК. ТС не завис и плагин продолжал работать. Через некоторое количество папок, ТС завис.
Вот ссылка на debug.log - Скачать

2. В файле конфигурации:
Code:
  <MemoryBase>False</MemoryBase>
  <UseBase>True</UseBase>


2.1 ТС завис без ошибок.
Попытка №1 - ссылка на debug.log - Скачать
Попытка №2 - ссылка на debug.log - Скачать

2.2 Выдало с начала одну и единственную ошибку. В окне с ошибкой нажал на кнопку ОК. ТС не завис и плагин продолжал работать. Скорость работы плагина уменьшилась на небольшое время, через несколько папок, скорость работы увеличилась. Еще через некоторое время, плагин перестал работать, а именно перестал выдавать информацию в поля, на всех полях данных было пусто. ТС не завис.
Вот ссылка на debug.log - Скачать

#422:  Author: Loopback PostPosted: Sun Feb 10, 2019 02:06
    —
Lisabon
Спасибо за тестирование, непосредственная причина пока непонятна, но видно некоторые странности:

1. Почему-то на поле "All audio as string" (и только на нем) работа переходит из фонового в основной поток. Такого быть не должно. Я у себя попробовал добавить это поле, но такой картины не наблюдаю.

2. Через какое-то время начинают появляться ошибки чтения MediaLibrary, это происходит как раз в районе смены потока, поскольку библиотека пытается прочитать разные файлы из разных потоков одновременно. Вероятнее всего как раз здесь появляются сообщения об ошибках. После этого тотал может зависнуть, а может и нет, в логах разницы не видно. Скорее всего это последствие первой проблемы.

Сделал вторую дебажку с более подробным выводом. Думаю, пока достаточно лога без базы, включение базы ничего не добавляет.

#423:  Author: Lisabon PostPosted: Sun Feb 10, 2019 11:54
    —
Loopback
Quote:
на поле "All audio as string"

Поле "All audio as string" у меня используется в "HintsCustomField"
Code:
[HintsCustomField]
0exts=*.669; *.aac; *.ac3; *.adt; *.adts; *.adx; *.aif; *.aifc; *.aiff; *.aix; *.alac; *.amf; *.amr; *.ape; *.apl; *.au; *.bwf; *.caf; *.dff; *.dsf; *.dts; *.dtshd; *.eac3; *.far; *.fla; *.flac; *.it; *.kar; *.m1a; *.m2a; *.m4a; *.m4b; *.m4p; *.mid; *.midi; *.mka; *.mo3; *.mod; *.mp+; *.mp1; *.mp2; *.mp3; *.mpa; *.mpc; *.mpga; *.mtm; *.nst; *.ofr; *.ofs; *.oga; *.ogg; *.okt; *.opus; *.ptm; *.ra; *.rma; *.rmi; *.s3m; *.snd; *.spx; *.stm; *.tak; *.tta; *.ult; *.umx; *.wav; *.wma; *.wsd; *.wv; *.xm
0fields=[=tcmediainfo.All audio as string]


При работе с контекстным плагином, скорей всего попадает курсор на аудиофайл. Начинает дополнительно работать "HintsCustomField" и наверное поэтому начинает работать основной и фоновый поток.

Добавлено...
Quote:
Сделал вторую дебажку с более подробным выводом

В файле конфигурации:
Code:
  <MemoryBase>False</MemoryBase>
  <UseBase>False</UseBase>

1. TC падает.
Ссылка на debug.log - Скачать

2. ТС не падает, но через некоторое время, перестаёт работать плагин. Плагин выдаёт пустые значения в полях.
Ссылка на debug.log - Скачать

3. Выскочили две ошибки в процессе. ТС падает.
Ссылка на debug.log - Скачать

4. В WinCmd.ini убрал "HintsCustomField" в которой используется "All audio as string". При тестировании wdx-плагина, ошибки не появлялись и ТС не падал.

#424:  Author: Loopback PostPosted: Sun Feb 10, 2019 20:24
    —
Lisabon wrote:
Поле "All audio as string" у меня используется в "HintsCustomField"

Да, вот про подсказки забыл совершенно. Добавил у себя, появились вызовы из основного потока, хотя падений все равно нет.

Lisabon wrote:
В WinCmd.ini убрал "HintsCustomField" в которой используется "All audio as string". При тестировании wdx-плагина, ошибки не появлялись и ТС не падал.

Это только подтверждает, что проблема из-за вызовов из разных потоков. Работа с библиотекой в том виде, в котором она была сделана, некорректна для нескольких потоков, поскольку сама библиотека многопоточная.

Переделал работу с библиотекой, теперь в каждом потоке инициализируется свой экземпляр и поток работает только с ним. Тестовая версия здесь. Обязательно в конфиге отключите отладку (т.к. проблемы могут быть и при записи лога, он сейчас тоже не рассчитан на многопоточность) и попробуйте её работу с включенными подсказками. Надеюсь, проблема решится.

#425:  Author: Lisabon PostPosted: Sun Feb 10, 2019 23:29
    —
Loopback
Quote:
Тестовая версия здесь. Обязательно в конфиге отключите отладку

В файле конфигурации попробовал с такими параметрами:
Вариант №1
Code:
        <MemoryBase>False</MemoryBase>
        <UseBase>True</UseBase>
        <DebugMode>0</DebugMode>


и

Вариант №2
Code:
        <MemoryBase>False</MemoryBase>
        <UseBase>False</UseBase>
        <DebugMode>0</DebugMode>

и погонял.
Падений ТС не было, ошибок тоже не было, плагин работал без проблем. По ходу проблему решили. Спасибо!

#426:  Author: Loopback PostPosted: Mon Feb 11, 2019 00:23
    —
Lisabon
Отлично! Еще раз спасибо за тестирование, это была одна из тех проблем, без решения которых сложно двигаться дальше.

#427:  Author: Loopback PostPosted: Mon Feb 11, 2019 20:55
    —
Версия 0.8.1

Скачать

Список обновлений:

+ функция TimingFormat теперь возвращает пустую строку, если значение тайминга не может быть перобразовано в число
* WLX: удалены функции FieldGetFirst/FieldGetNext, используйте цикл с GetCount и Get
* WDX: удалена поддержка скриптов от ранних бет, в случае, если у вас еще есть такие, просто вручную уберите секцию "var" и "." после последнего "end"
- WDX: исправлена работа поля типа "список"
* изменения в системе записи отладочной информации
- WDX: исправлены падения плагина на некоторых системах после включения фоновой загрузки полей в 0.8.0
- исправлен баг с инсталляцией, конфигурация-пример не копировалась в рабочую

#428:  Author: VimanLocation: Moscow PostPosted: Tue Feb 12, 2019 11:56
    —
При попытке просмотра или быстрого просмотра папки вывод информации перехватывает плагин и выводит в режиме Аудио (компактный) такой текст:
Quote:
Script error : Invalid operand types for ">" (NDUR > 3600000 )

в Видео (компактный):
Quote:
Script error : Invalid parameters, function NUMBER (NUMBER ( GET ( 'Duration' ) ) )

Если попытаться переключиться на По-умолчанию (кстати, здесь тире не ставится), то Total Commander закрывается без каких-либо сообщений.
Windows 10 Pro 1809 x64, Total Commander 9.21a x64.

#429:  Author: Loopback PostPosted: Tue Feb 12, 2019 14:08
    —
Viman wrote:
просмотра или быстрого просмотра папки

Ого, вот это косяк Smile На папки плагин вообще не должен открываться. Спасибо, поправлю.

Viman wrote:
кстати, здесь тире не ставится

Знаю, просто почему-то очень не нравится вид этой фразы без дефиса. Но вообще, конечно, надо будет написать правильно.

#430:  Author: VimanLocation: Moscow PostPosted: Tue Feb 12, 2019 16:30
    —
Loopback wrote:
Знаю, просто почему-то очень не нравится вид этой фразы без дефиса.

Может, назвать этот режим Расширенный или Подробный? А то как-то интересно получается, что по факту по умолчанию отображается не он, а краткий режим.

Кстати, если уж речь об этом режиме. А можно ли в нём добиться отображения длительности в формате hh:mm:ss.fff?

#431:  Author: Loopback PostPosted: Tue Feb 12, 2019 18:32
    —
Viman wrote:
А то как-то интересно получается, что по факту по умолчанию отображается не он, а краткий режим.

Это сделано умышленно. Режим по умолчанию - это так называемый режим вывода Inform, просто выдающий все имеющиеся непустые поля. Там достаточно много информации, часто не представляющей интереса, а та, которая интересна - разбросана между неинтересной, и все это еще бывает не умещается на одном экране. Особенно это касается аудио и текстовых потоков в видео, как правило самую полезную информацию по ним можно уместить в одну строчку. Поэтому и возникла идея сделать максимально компактный шаблон с наиболее важной информацией.

В то же время очевидно, что понятие "интересной" информации у всех разное, поэтому режимы просмотра можно настраивать самостоятельно. В любом случае, к релизу я планирую сделать расширенный шаблон, аналог Inform, но с возможностью локализации названия полей (вывод Inform не может быть локализован).

Viman wrote:
А можно ли в нём добиться отображения длительности в формате hh:mm:ss.fff?

Нет, в Inform ничего менять нельзя. Только через свой шаблон.

#432:  Author: VimanLocation: Moscow PostPosted: Tue Feb 12, 2019 19:08
    —
Loopback wrote:
Режим по умолчанию - это так называемый режим вывода Inform, просто выдающий все имеющиеся непустые поля.

Поэтому и возникла мысль о его переименовании в Расширенный или Подробный. И это, по-моему, будет даже как-то более логично выглядеть рядом с кратким.

Loopback wrote:
Только через свой шаблон.

А можно где-то посмотреть правила его формирования?

#433:  Author: Loopback PostPosted: Tue Feb 12, 2019 21:16
    —
Viman wrote:
Поэтому и возникла мысль о его переименовании в Расширенный или Подробный. И это, по-моему, будет даже как-то более логично выглядеть рядом с кратким.

Когда будет сделан расширенный режим, этот я вообще думал убрать, ну или так и назвать его "Inform" и поместить где-нибудь в конце. В нем всё без перевода идет, мне это не очень нравится.

Viman wrote:
А можно где-то посмотреть правила его формирования?

В конфиге несколько имеющихся шаблонов (они в терминологии плагина "режимы просмотра" называются) можно использовать как пример, справка полная уже есть. Можно свой режим просмотра добавить и экспериментировать с ним.

#434:  Author: VimanLocation: Moscow PostPosted: Wed Feb 13, 2019 11:47
    —
Loopback wrote:
справка полная уже есть

Вот как всегда, справку читаем в последнюю очередь. Каюсь.
Спасибо.

#435:  Author: Loopback PostPosted: Thu Feb 21, 2019 21:31
    —
Версия 0.8.2 бета, скачать можно здесь.

Из основного, добавлен новый режим просмотра, аналогичный стандартному Inform, но корректно (надеюсь) переводящий необходимые строки. Он теперь будет основным.

В принципе, мой список планируемого пуст, если всё нормально, то скоро будет релиз.

Единственная проблема остается в том, что я не могу в скриптах протестировать разделы типов содержимого: Menu (кроме глав), Image и Other - я так и не смог найти файлы, где были бы эти данные, и даже не очень представляю, как они должны выглядеть.

Список обновлений:
* WLX: небольшие правки в "компактных" режимах просмотра
* WDX: обновлены и локализованы скрипты колонок
+ узел <funclibraries>, где можно задавать библиотеки функций, используемых в разных скриптах
+ функция GetLang, вызываемая без параметров, возвращает текущий идентификатор языка (ENG, RUS...)
+ функция GetLang теперь глобальная и может использоваться как в WLX, так и в WDX
- WLX: исправлена проблема загрузки плагина, если предварительно не был загружен WDX-плагин
+ WDX: добавлена опция DataAutoUpdate для автоматического обновления записей базы после добавления нового источника
+ добавлен "Полный" режим просмотра, показывает все непустые поля без дополнительной обработки
+ обновлен файл MediaInfo.lng
- исправлено создание allprops.txt (стандартный вывод библиотеки обрезает некоторые длинные имена полей)
- исправлена работа функции StrIsNumber
- WLX: исправлено появление горизонтальной полосы прокрутки тогда, когда в ней нет необходимости
+ WLX: добавлен новый режим просмотра "По умолчанию", старый переименован в "Стандартный Inform"
+ StrPos теперь умеет искать с заданной позиции
* небольшие внутренние изменения
* удалены старые файлы справки readme_*.html
+ добавлена английская справка
- WLX: плагин больше не будет пытаться открывать каталоги

#436:  Author: VimanLocation: Moscow PostPosted: Sun Feb 24, 2019 10:40
    —
Вроде, всё работает как надо. Но есть некоторые замечания/предложения.
1. На мой взгляд при отображении числа каналов аудио в кратком режиме не надо надо писать Стерео или Моно в случае двух и одного канала соответственно. Число каналов - это число каналов, а вот какой звук в них... Например, тот же двухканальный звук с лёгкостью может быть монофоническим, когда левый и правый каналы идентичны, что очень часто встречается на практике.
2. Имеет ли смысл в режиме просмотра Полный выводить битрейт в b/s а не в Kb/s?
3. Возможно, лучше в составе плагина использовать библиотеки MediaInfo с названиями, используемыми в самой программе MediaInfo при установке её на x64 системах (или использования пакета без инсталляции), а именно MediaInfo.dll и MediaInfo_i386.dll для 64 и 32 бит соответственно (чтобы при выходе новых версий при замене не надо было их переименовывать). Но это так, для некоторого удобства, так как изначально можно в TCMediaInfo.xml самому задать эти названия.

И ещё. Если использовать библиотеку 18.05 (последняя из некастрированных в плане количества выводимой информации по некоторым форматам, например, показ наличия и параметров ядра в потоках HD-аудио), то в этом случае возникают проблемы в отображении для HD-аудио битрейта (он не показывается, когда сама программа в этом случае выводит Неизвестно / xxx Кбит/сек, где xxx - битрейт ядра), количества каналов в компактном режиме (для треков с количеством каналов больше шести пишет Моно).
Я понимаю, что 18.05 на данный момент неактуальна, но автор Медиаинфо, сократив количество отображаемых параметров из-за недовольства спонсоров перегруженностью данными, не исключает возможности их возврата (ему самому не нравится это урезание).

#437:  Author: Loopback PostPosted: Mon Feb 25, 2019 01:55
    —
Viman wrote:
Число каналов - это число каналов, а вот какой звук в них...

В принципе в случае с видео определенный резон есть. Даже стереозвук в нем обычно обозначают 2.0. Но для аудиошаблона мне кажется это вполне привычно и оправданно, учитывая что при обычном использовании практически все аудиофайлы будут музыкой в mp3/flac/и т.д.
Viman wrote:
2. Имеет ли смысл в режиме просмотра Полный выводить битрейт в b/s а не в Kb/s?

Полный режим водит без дополнительной обработки, а без нее библиотека выдает битрейт в бит/с. В принципе можно и поставить обработчик, в бит/с не особенно наглядно.
Viman wrote:
Возможно, лучше в составе плагина использовать библиотеки MediaInfo с названиями, используемыми в самой программе

Это если качать дистрибутив MediaInfo, а так на сайте есть еще и отдельно dll-библиотеки, каждая в своем архиве, и обе имеют название MediaInfo.dll Smile

На самом деле, я думал разместить их (и Sqlite) по каталогам со своей битностью, но не уверен, что оно стоит того. В конце-концов, тот кто просто обновляет плагин по мере выхода его новых версий, и так получит последние версии библиотек, а тот кто может обновить вручную - справится с переименованием пары файлов Smile
Viman wrote:
И ещё.

Выложите плиз или дайте ссылочку на надежный источник, на офсайте этой версии нет, а поиском все какой-то мусор находит.

Если будет понятно, какое поле выводит недостающую информацию, можно будет его добавить в обработчик.

#438:  Author: VimanLocation: Moscow PostPosted: Mon Feb 25, 2019 12:05
    —
Loopback wrote:
при обычном использовании практически все аудиофайлы будут музыкой в mp3/flac/и т.д.
Но тем не менее и они бывают моно, хоть и двухканальные. Я, конечно, понимаю, что чисто, скажем так, на бытовом уровне устоялось представление, что стерео - это 2 канала, а моно - 1. Но по сути стереофония (пространственный звук) и монофония (точечный звук) это, что ли, "состояние" звуковой картины, которое может достигаться в обоих случаях с количеством каналов и больше двух. Да и само название Число каналов как бы намекает на их количество, а не на тип звука (mono, stereo, surround (кстати, surround можно считать разновидностью stereo)).
Ну да ладно, всё равно есть же возможность собственной настройки.

Loopback wrote:
в бит/с не особенно наглядно.
Вот и мне резанули по глазам эти непривычные нули.

Loopback wrote:
а тот кто может обновить вручную - справится с переименованием пары файлов Smile
Абсолютно согласен.

Loopback wrote:
или дайте ссылочку на надежный источник, на офсайте этой версии нет
На офсайте библиотеки:
https://mediaarea.net/download/binary/libmediainfo0/
Там же и другие варианты (в родительской папке).

Кстати, ещё заметил: во всех режимах кроме Полного битрейт аудиопотоков выше 999 Кб/с выводится в Мб/с, хотя стандартом де-факто является представление и их в Кб/с.

#439:  Author: Loopback PostPosted: Mon Feb 25, 2019 20:50
    —
Viman wrote:
Но тем не менее и они бывают моно, хоть и двухканальные.

Ок, подумаю. В принципе резонно.

Viman wrote:
Там же и другие варианты (в родительской папке).

Спасибо, это какая-то другая, не та, что я вчера находил.

Библиотеку скачал, но похоже этого мало, нужен и файл, на котором было бы наглядно видно проблему. На моих что-то ничего проблемного не вижу. Если что, можно в личку.

Viman wrote:
Кстати, ещё заметил:

Ага, просто сейчас одна функция на всё. Изменю.

#440:  Author: VimanLocation: Moscow PostPosted: Mon Feb 25, 2019 21:55
    —
Loopback wrote:
нужен и файл, на котором было бы наглядно видно проблему

Вот пара восьмиканальных:
https://www.upload.ee/files/9623122/7.1.dtshd.html
https://www.upload.ee/files/9623128/7.1_strange_setup.dtshd.html
7.1 - наиболее распространённый с обычным ядром DTS.
7.1 strange setup - реже встречающийся с ядром DTS-ES.

#441:  Author: Loopback PostPosted: Mon Feb 25, 2019 23:42
    —
Viman
Ничего удивительного, если вместо ожидаемого числа библиотека выводит строку с набором значений. В общем обработчик доработал, информацию в таких случаях по битрейту выводить будет. Но думаю если в будущем разработчик эту инфу вернет, то как-то по другому сделает, потому что вот так это не совсем правильно.

Также изменил везде битрейт для аудио на килобиты, в полный режим добавил форматирование битрейта. По каналам пока думаю Smile

Вот конфиг с доработанными скриптами.

А кстати, DTSHD - это какое-то устоявшееся стандартное расширение? Тогда его можно будет добавить в строку поддерживаемых форматов.

#442:  Author: VimanLocation: Moscow PostPosted: Tue Feb 26, 2019 13:08
    —
Loopback, спасибо. Замечательно. Почти то, что нужно. Только с каналами осталось разобраться в кратком режиме, а то моно вместо 8 / 6 канал или 8 / 7 / 6 канал (это так отображается в режиме По умолчанию) вводит в лёгкое недоумение. К тому же, на мой взгляд, излишне писать канал в значении данного параметра, так как в его названии это уже упоминается (Число каналов), или, если это возможно в данном случае, хорошо бы ввести склонение, а то как-то коряво выглядит/читается.

Что же касаемо расширений, DTSHD - это расширение кодируемому материалу присваивает DTS–HD Master Audio Suite. Ешё в аудио встречаются DTSMA, AC3HD, EAC3. Для видео не будет лишним добавить M2V.

Да, и ещё, как мне кажется, правильней будет не Число каналов, а Количество каналов, а также уместно добавить в секцию Общее в режиме Видео (компактный) строку Общий битрейт, а для Аудио (компактный) битность в секцию Аудио.

#443:  Author: Loopback PostPosted: Tue Feb 26, 2019 14:03
    —
Viman
Склонение каналов есть, но поскольку в таком корявом варианте (8 / 6 и т.д.) строка в число не переводится, то и правильное склонение не выбирается. В общем для строк единицы точно надо убрать.

Расширения добавлю, думаю, хуже точно не будет.

#444:  Author: Loopback PostPosted: Thu Mar 07, 2019 23:19
    —
Версия 0.8.3. Скачать.

- исправления в шаблонах режимов просмотра
+ автоопределение языка учитывает наличие переноса секции RedirectSection в wincmd.ini
* ручная установка языка интерфейса перенесена из листерной секции в глобальную секцию настроек
* сохранение списков полей перенесено в диалог обслуживания, saveprops.bat удален
+ добавлен простой функционал обслуживания базы (удаление несуществующих, удаление лишних источников, сжатие)

#445:  Author: Skif_off PostPosted: Fri Mar 08, 2019 11:07
    —
Loopback
"Диалог обслуживания" - это в wlx, правильно понял?

А в каком виде в базе хрянятся теги в cp12?? ? Обычным SQL-запросом вытаскивалась пачка ffff.

#446:  Author: Loopback PostPosted: Fri Mar 08, 2019 15:23
    —
Skif_off
Да, там функция в ней, вызывается экзешником.

Все данные хранятся исключительно в UTF-8.

#447:  Author: Lisabon PostPosted: Fri Mar 08, 2019 16:37
    —
Loopback
1. При использовании wlx плагина, при переключении режимов просмотра:
- По умолчанию
- Аудио (компактный)
- Видео (компактный)
есть строка
Code:
Invalid operator: : (: U := GETLANG ( TERM + '_2' , U )  )

По идее, этого не должно быть.

2. По поводу TCMediaInfo.exe. Неплохо бы TCMediaInfo.exe научить брать путь к MediaInfo.dll и MediaInfo_x64.dll из TCMediaInfo.xml.
Сейчас, если в TCMediaInfo.xml изменён путь в <MediaInfoPath> и <MediaInfo64Path> , например:
Code:
<MediaInfoPath>%COMMANDER_PATH%\Plugins\wlx\MMedia\MediaInfo.dll</MediaInfoPath>

и файлы MediaInfo.dll и MediaInfo_x64.dll соответственно перенесены из папки плагина, по выше указанному пути, то в TCMediaInfo.exe на вкладке «Инструменты» жмём сохранить и TCMediaInfo.exe падает.

#448:  Author: Loopback PostPosted: Fri Mar 08, 2019 17:42
    —
Lisabon wrote:
есть строка

Не должно. Посмотрю, странно, что у меня не появлялось такого. Может какой символ в последний момент поставил по ошибке.

Lisabon wrote:
Неплохо бы TCMediaInfo.exe научить брать путь

Вообще-то он так и должен работать, функции получения путей для обоих плагинов (и этого диалога) одни и те же. Проверю на таких условиях.

PS: а может и нет, сохранение файла была второстепенная функция, кажется я её просто перенес, так что она может и не использовать заданные пути. Проверю.

#449:  Author: Loopback PostPosted: Fri Mar 15, 2019 20:41
    —
Версия 0.8.4 бета. Скачать

- небольшие исправления скриптов
- сохранение полей со страницы "Инструменты" теперь использует пути MediaLibrary из конфигурации

Если никаких критических проблем не появится, где-нибудь на следующей неделе выложу как релиз. Понятно, что мелкие косяки в скриптах могут появляться еще долго, будем править в минорных обновлениях.

#450:  Author: Loopback PostPosted: Fri Mar 22, 2019 21:42
    —
Всё, плагин добрался до релиза Smile Версия 1.0.0 выложена на wincmd.ru.

Из нового относительно предыдущего релиза - добавлена украинская локализация (спасибо LonerD).

Кстати, только сейчас обратил внимание на недоработку сайта - оказывается, нельзя плагин поместить в две категории. Поместил в контентные, с него в принципе всё начиналось...

#451:  Author: VimanLocation: Moscow PostPosted: Sat Mar 23, 2019 10:36
    —
Loopback, спасибо, отличная работа. Каких-либо недостатков не заметил (по крайней мере, в объёме моего применения).

#452: Дополнительные поля. Author: Sp_i_kE PostPosted: Sun Mar 24, 2019 14:56
    —
Все пытаюсь добавить дополнительные поля в этот плагин и все безрезультатно.
Необходимые поля: FrameRate_Mode, Format_Profile, Video_Format_List

Добавил в секцию Sources:
Code:

...
<source name="FormatProfile" field="Format_Profile" context="General"/>
<source name="VideoFormatList" field="Video_Format_List" context="General"/>
...
<source name="VideoFPSMode" field="FrameRate_Mode" context="Video"/>
...


В секцию columns добавил:
Code:

...
<column name="Format Profile">FormatProfile</column>
<column name="Video Format List">VideoFormatList</column>
...
<column name="Frame Rate Mode">VideoFPSMode</column>
...


При добавлении любой из этих колонок в кастомную вьюшку в TC всегда отображает <empty>, хотя при проверке этих файлов MediaInfo.exe данные поля присутствуют.

Так же пробовал делать что-то вроде

Code:
<column name="Frame Rate Mode" type="script">Output:=Get('VideoFPSMode', 'Video');</column>


или

Code:
<column name="Frame Rate Mode" type="script">Output:=Get('FrameRate_Mode', 'Video');</column>


Результат тот же.

Что я делаю не так?

P.S.
tcmediainfo v 1.0.0
TC 9.21a

#453:  Author: Loopback PostPosted: Sun Mar 24, 2019 15:42
    —
Sp_i_kE
Всё выглядит правильно. Дело в том, что по умолчанию плагин не обновляет данные в базе при добавлении источников, соответственно они считаются отсутствующими.

Включите опцию DataAutoUpdate, тогда плагин при добавлении новых источников будет автоматически обновлять данные в базе.

Code:

<DataAutoUpdate>True</DataAutoUpdate>


В процессе настройки, возможно, будет удобнее вообще отключить базу, чтобы данные всегда сразу брались актуальные.

#454:  Author: HEXFIXLocation: Калининград PostPosted: Sun Mar 24, 2019 19:41
    —
Поле "Дата записи" не работает. Т.е. в колонке с полем, например, [=tcmediainfo.Recorded Date.Y] ничего не отображается.

#455:  Author: Loopback PostPosted: Sun Mar 24, 2019 20:34
    —
HEXFIX
Кстати вот да, интересно, что никто не заметил.

Я так понимаю, что проблема с музыкой?

Причина в том, что сейчас плагин ожидает от библиотеки дату в формате UTC, и если формат другой (в аудиофайлах дата обычно только год), результат получается неопределенный. Надо будет сделать проверку, что если дата в неподдерживаемом формате - не конвертировать, а возвращать исходную строку.

А пока можно добавить дополнительную колонку без ft_datetime, например:

Code:
<column name="Recorded Date Audio">RecDate</column>

#456:  Author: HEXFIXLocation: Калининград PostPosted: Sun Mar 24, 2019 20:40
    —
Хммм... а по F3 отображается

#457:  Author: Loopback PostPosted: Sun Mar 24, 2019 20:51
    —
HEXFIX
Это нормально, в листере большинство полей не обрабатывается и выводятся как строка, а для wdx преобразование даты как раз и позволяет иметь возможность выбора формата (Y или Y-M-D и т.д.)

#458:  Author: Sp_i_kE PostPosted: Sun Mar 24, 2019 22:12
    —
Loopback
Спасибо большое! Помогло. Теперь есть все необходимые поля.

#459:  Author: AvadaLocation: Россия, Саратов PostPosted: Mon Mar 25, 2019 00:13
    —
Sp_i_kE
От бездумного цитирования полных чужих постов отучайтесь категорически: правилами форума это запрещено. Использование кнопки "цитата" требует последующего редактирования сообщения для сокращения скопированного текста до разумного предела (если он вообще нужен), а включение в цитату своего ника и — тем более — своего прошлого сообщения абсолютно недопустимо.
Весь мусор из сообщения удалён.

#460:  Author: Loopback PostPosted: Tue Mar 26, 2019 20:01
    —
Выложена версия 1.0.1.

+ добавлена поддержка очень длинных путей (спасибо Progman13)
- WLX: исправления скриптов
- WLX: FixCodepage не работала с функцией Get
* WLX: добавлены остальные опции отображения в конфигурацию
+ WLX: добавлена поддержка отрицательных значений CoverLineHeight
- WLX: исправлена CoverLineHeight с нулевым значением
- WLX: список не работал с клавиатурой (стрелки и т.д.)
- WLX: исправлен неправильный набор символов при создании шрифта

#461:  Author: 790 PostPosted: Wed Mar 27, 2019 02:06
    —
Никак не могу понять, почему из картинок BMP и PNG параметр BitDepth показывает инфу "24 bits", а из JPG - "8 bits", а из GIF вообще "0 bits" ? Я понимаю, что это сжатые форматы, так и PNG, вроде, тоже сжатый. Собственно, мне нужно получать инфо о bpp картинки (bits per pixel). Или тут надо OriginalSourceForm/NumColors ?

плагин использую только как WDX

Вот wdx-плагин ImageInfo показывает всё правильно, там это называется "Разрядность", жаль тока, что в ТС-64 не работает.

#462:  Author: VimanLocation: Moscow PostPosted: Wed Mar 27, 2019 11:11
    —
790 wrote:
Вот wdx-плагин ImageInfo показывает всё правильно, там это называется "Разрядность", жаль тока, что в ТС-64 не работает.

Попробуйте WDX for Images.

#463:  Author: Lisabon PostPosted: Wed Mar 27, 2019 22:44
    —
Loopback
На английской Windows (проверял на Windows 7 32-bit и Windows XP 64-bit, Total Commander v9.22 32-bit), в диалоге выбора поля плагина, при выборе плагина tcmediainfo, имена полей отображаются в виде вопросительных знаков.

Меняю кодировку файла TCMediaInfo.lng на ANSI и поля отображаются нормально на русском языке.

#464:  Author: FlasherLocation: Москва PostPosted: Wed Mar 27, 2019 22:55
    —
Lisabon
Всё тянул с этим же. У меня оба lng в UTF-8. С wdx проблем нет, а wlx символы зябрит.

#465:  Author: Loopback PostPosted: Wed Mar 27, 2019 23:28
    —
С кодировками бардак. Я перед релизом пробовал сделать lng в UTF8 (и с BOM, и без) - wdx не заработал, в выборе полей зябры. Сделал в UTF16 - заработало, поэтому решил оставить. Теперь выясняется, что так на английской версии косяки. Я уже тогда и не знаю, к какому общему знаменателю прийти (не считая ANSI, который должен умереть).

Лично мне без разницы, в какой кодировке будут файлы, главное, чтобы они были в юникоде и чтобы поля wdx читались стандартными средствами тотала.

Гислер сам что-нибудь говорил по этому поводу?

#466:  Author: FlasherLocation: Москва PostPosted: Wed Mar 27, 2019 23:43
    —
Loopback
Без дополнительных правок (см. п. 2) wdx c lng в UTF-8 и не "заработает".

#467:  Author: Loopback PostPosted: Thu Mar 28, 2019 00:23
    —
Flasher
Раз "без правок" не работает, это уже не вариант.

Неужели Гислер ничего не предусмотрел для работы юникодных языковых файлов?

#468:  Author: FlasherLocation: Москва PostPosted: Thu Mar 28, 2019 00:32
    —
Loopback
Вот это и предусмотрел. Ты же можешь привязаться в wcmd_lang.lng к ключу codepage. Question

#469:  Author: Loopback PostPosted: Thu Mar 28, 2019 01:02
    —
Flasher
Фактическую кодировку файла я и без ключа могу определить. Вот только толку от этого, если в самом тотале выбор полей не работает ни в utf-8 без модификаций, ни в utf-16 в английской винде.

#470:  Author: FlasherLocation: Москва PostPosted: Thu Mar 28, 2019 01:10
    —
Loopback
Ну, хотя бы с модификацией будет работать — уже хорошо. Или сделай для wlx отдельный lng.

#471:  Author: ProgMan13 PostPosted: Thu Mar 28, 2019 01:12
    —
Добавление "codepage=65001" в файл меню необходимо для отображения в этом самом меню юникодных символов. И если после этого нужно перекодирование lng-файлов для контентных плагинов, то проще перекодировать lng для конкретных (где utf16) wdx-плагинов в ansi.

Здесь проблема в другом. TCMediaInfo.lng в кодировке utf16le с bom, по-хорошему TC должен это понимать и не конвертировать символы в "codepage=" из меню. Это нужно репортить.

Flasher
Если файл MediaInfo.lng используется только плагином, то его кодировку менять не стоило.

#472:  Author: FlasherLocation: Москва PostPosted: Thu Mar 28, 2019 01:38
    —
ProgMan13 wrote:
Добавление "codepage=65001" в файл меню необходимо для отображения в этом самом меню
В mnu эта строка и не добавляется. Там ей делать нечего. Только в lng. А mnu/inc лишь перекодируются.
ProgMan13 wrote:
то проще перекодировать lng для конкретных (где utf16) wdx-плагинов в ansi.
Не проще. Не заведётся, ибо надо в UTF-8.
ProgMan13 wrote:
то его кодировку менять не стоило.
Shocked Помогло! А раньше вроде с этим были проблемы. Т.е., получается, wlx TCMediaInfo.lng вообще не дёргает.

В TCPhoneBook, кстати, Maximus исправлял похожий конфликт.

#473:  Author: Loopback PostPosted: Thu Mar 28, 2019 12:32
    —
ProgMan13 wrote:
Здесь проблема в другом. TCMediaInfo.lng в кодировке utf16le с bom, по-хорошему TC должен это понимать и не конвертировать символы в "codepage=" из меню. Это нужно репортить.

Вот именно это я и имею в виду. Если lng в любом варианте юникода c BOM - тотал должен просто брать текст без всякого перекодирования как юникод. Если в ANSI - перекодировать согласно указанной кодировке. Во всяком случае это было бы логичное поведение.

Flasher wrote:
Т.е., получается, wlx TCMediaInfo.lng вообще не дёргает.

Ну как же не дергает.
TCMediaInfo.lng - перевод полей wdx и интерфейса wlx
MediaInfo.lng - перевод названий полей библиотеки MediaInfo, по-сути этот файл используется только в скриптах

#474:  Author: FlasherLocation: Москва PostPosted: Thu Mar 28, 2019 14:43
    —
Loopback wrote:
TCMediaInfo.lng - перевод полей wdx и интерфейса wlx
А. У меня контекстное меню поломалось. Т.е., получается, только меню?

#475:  Author: Loopback PostPosted: Thu Mar 28, 2019 23:34
    —
Flasher
Фактически да, т.к. из интерфейса у wlx только меню (странно что "по умолчанию" нормально). Еще в диалоге обслуживания должны быть кракозябры.

Ну в принципе можно и добавить поддержку lng в utf-8, хотя если бы всё работало, как обсуждали выше, ничего бы вообще не пришлось никуда конвертировать.

#476:  Author: FlasherLocation: Москва PostPosted: Thu Mar 28, 2019 23:59
    —
Loopback
"По умолчанию" есть и в MediaInfo.lng. Может, оттуда тянет? Что за диалог обслуживания?

Конечно, хотелось бы поддержки. От Гислера по теме юникодизации ничего вытянуть не удалось и по другим существенным моментам. См. нижние 2 ссылки.

#477:  Author: Loopback PostPosted: Fri Mar 29, 2019 14:35
    —
Flasher wrote:
Что за диалог обслуживания?

Тот, что вызывается запуском TCMediaInfo.exe

Flasher wrote:
Конечно, хотелось бы поддержки. От Гислера по теме юникодизации ничего вытянуть не удалось и по другим существенным моментам.

Из того что прочитал, получается что "UTF8 только для проблемных языков, в остальном всё отлично, пользуйтесь ANSI". Грустно это.

В общем, пока ничего не остается, как добавить поддержку чтения lng из разных вариантов. Использовать юникодные языковые файлы для wdx вроде как и можно, но только если язык системы совпадает с языком тотала, в других случаях возможны проблемы. Использовать UTF8 тоже вроде как и можно, но без танцев с бубнами не заработает. И ANSI вроде тоже можно, но понятно, что только на системах, использующих соответствующую кодировку. Вроде всё можно, но ни один вариант не работает везде одинаково.

#478:  Author: FlasherLocation: Москва PostPosted: Fri Mar 29, 2019 15:23
    —
Loopback wrote:
Тот, что вызывается запуском TCMediaInfo.exe

 У меня она падает при запуске:


Loopback wrote:
Грустно это.
Он во многих ветках подобным образом отбрыкивался. Без кучи народа, видимо, ничего не добиться.
Loopback wrote:
но только если язык системы совпадает с языком тотала
Думаю, обратная ситуация — это редкость.
Loopback wrote:
Использовать UTF8 тоже вроде как и можно, но без танцев с бубнами не заработает.
Не тем способом, что я описал, а средствами плагина?

#479:  Author: Loopback PostPosted: Fri Mar 29, 2019 17:15
    —
Flasher wrote:
 У меня она падает при запуске:

Интересно. А если попробовать запустить батником с таким содержанием?
Code:
start rundll32 TCMediaInfo.wdx,OpenConfigDialog


Flasher wrote:
Думаю, обратная ситуация — это редкость.

Возможно, только вот с такой "редкости" и началось обсуждение.

Flasher wrote:
Не тем способом, что я описал, а средствами плагина?

Вся проблема исключительно с локализацией полей wdx стандартными средствами. Всё остальное решаемо.

#480:  Author: FlasherLocation: Москва PostPosted: Fri Mar 29, 2019 17:27
    —
Loopback wrote:
А если попробовать запустить батником с таким содержанием?
Да. Так запускается. С зябрами.
Батник не нужен. Проще без start из комстроки.
Loopback wrote:
Возможно, только вот с такой "редкости" и началось обсуждение.
А, русский ТС на английской винде. Ну, это Lisabon с виртуалками балуется. Smile
Loopback wrote:
Вся проблема исключительно с локализацией полей wdx стандартными средствами.
Ну, так перекодировка файлов локализации — это необходимость для определённых языков. Что тут нестандартного?

#481:  Author: Loopback PostPosted: Fri Mar 29, 2019 19:57
    —
Flasher wrote:
Так запускается.

Забавно. Падает то, что вообще падать никак не должно. Ладно, посмотрю.

Flasher wrote:
А, русский ТС на английской винде. Ну, это Lisabon с виртуалками балуется.

Ну тем не менее. Идет совершенно ненужное здесь перекодирование а ANSI.

С другой стороны, кто знает что там у Гислера, может и правда тривиальными средствами нерешаемо, все же тотал разрабатывается еще с таких времен, когда про юникод никто и не заикался.

Flasher wrote:
Ну, так перекодировка файлов локализации — это необходимость для определённых языков. Что тут нестандартного?

Учитывая вышесказанное - может и ничего.

В общем, думаю нет смысла больше обсуждать, все равно без желания автора ничего не изменим. Оставляю lng в юникоде, но чтение будет в любой кодировке. У кого будут проблемы - сможет перекодировать в нужный ему вид.

#482:  Author: FlasherLocation: Москва PostPosted: Fri Mar 29, 2019 23:43
    —
Loopback
ОК. Очень бы хотелось добавок в TCMediaInfo.sample.xml для wdx следующих данных (как в wlx):

#483:  Author: Loopback PostPosted: Sat Mar 30, 2019 12:02
    —
Flasher
Раз очень хочется - добавляй, кто же мешает? Wink

А если серьезно, то что он "sample" это не значит "пример", по сути это рабочая конфигурация, которая будет стоять без изменений у большинства. И если колонки еще можно делать без ограничений, то к добавлению источников я бы подходил более вдумчиво. Увеличение их количества так или иначе замедляет работу базы и раздувает ее размер.

Сегодня нет возможности, позже посмотрю по списку, но кое-что мне уже представляется сомнительной полезности для стандартного конфига:

Коллекция/Сезон/Часть - может было бы и полезным, но в жизни я ни разу не встречал видео, где эти поля были бы прописаны

Тип интернет содержимого (желательно без "video/")
Частота кадров аудио
Число кадров аудио

Нет возражений по:
Тип развёртки,
Соотношения сторон (но зачем в двух вариантах надо смотреть)
Ориентация
Метод сжатия

Форматы видео и аудио уже есть.

Насчет "Библиотека кодирования (с добавкой пробелов и удалением *, жаль не тянет до [=audioinfo.Кодировщик])" - тут надо смотреть, иногда скрипты могут творить чудеса Smile

И кстати, хорошо напомнил про Audioinfo, действительно отличная и во многом незаменимая вещь. Я его пару лет назад маленько доработал, но вот выложить тогда так и не созрел. Надо будет исправить это дело.

#484:  Author: FlasherLocation: Москва PostPosted: Sat Mar 30, 2019 16:15
    —
Loopback wrote:
по сути это рабочая конфигурация, которая будет стоять без изменений у большинства.
Вот именно этого и хотелось бы.
Причины должны быть очевидны:
Loopback wrote:
И если колонки еще можно делать без ограничений
Ограничения на самом деле есть. Особенно при правке с юникодными символами. Как-нибудь затрону эту тему в Общих.
Loopback wrote:
то к добавлению источников я бы подходил более вдумчиво.
Что понимается под источниками?

Коллекция/сезон/часть прописаны очень часто в сериалах. Вероятно, ты их не смотришь, поэтому и не сталкивался.
Тип интернет содержимого (желательно без "video/") — там прописан лицензируемый стандарт сжатия видео (напр., video/H264). Вещь нужная.
Частота/число кадров аудио нужны для синхронизации с видео.
Loopback wrote:
но зачем в двух вариантах надо смотреть
Там число с плавающей точкой и пропорция с двоеточием.
Loopback wrote:
Нет возражений по:
Всего 4? Что-то маловато. Про остальные даже не спросил. Confused
Loopback wrote:
Форматы видео и аудио уже есть.
Почему же их нет в списке полей? То же касается и параметров.
Loopback wrote:
иногда скрипты могут творить чудеса
Пробел нужен между цифрой и буквой, если что. А до audioinfo не тянет в целом. Скрипт тут ничего, увы, не изменит.
Loopback wrote:
Надо будет исправить это дело.
Но об этом уже в другой теме. Wink

#485:  Author: Loopback PostPosted: Sat Mar 30, 2019 22:08
    —
Flasher wrote:
Причины должны быть очевидны:

О как, прямо научную базу подвел Smile

Вопрос как всегда в том, почему именно перечисленный выше набор считать нужным и полезным для большинства. Почему не добавить еще парочку полей из нескольких сотен имеющихся. Или не убрать пару "лишних". Например, я не занимаюсь кодированием видео и из этого списка лично мне половина точно не нужна.

Flasher wrote:
Ограничения на самом деле есть. Особенно при правке с юникодными символами.

Я про количество колонок. Их можно безболезненно делать сколько угодно.

Flasher wrote:
Что понимается под источниками?

Очевидно, что узлы <source>, которые добавляются в базу.

Flasher wrote:
Коллекция/сезон/часть прописаны очень часто в сериалах. Вероятно, ты их не смотришь, поэтому и не сталкивался.

Ок, поверю, сериалы действительно смотрю нечасто, но в тех что были ни разу не встречал. Вот прямо сейчас прошелся по двум десяткам каталогов, не встретил ни одного с этими данными. Наверно, какие-то неправильные сериалы Smile

Flasher wrote:
Тип интернет содержимого (желательно без "video/") — там прописан лицензируемый стандарт сжатия видео (напр., video/H264). Вещь нужная.

Нужная кому? Wink И зачем?
Честно говоря не вижу принципиальной разницы от кодека. Посмотрел разные файлы - там везде только h264, h265 либо MP4V-ES.

Flasher wrote:
Частота/число кадров аудио нужны для синхронизации с видео.

Ну может быть, хотя опять же очень специфическая вещь.

Flasher wrote:
Там число с плавающей точкой и пропорция с двоеточием.

Ок, только я в выводе библиотеки не вижу пропорций с двоеточием.
Flasher wrote:
Всего 4? Что-то маловато. Про остальные даже не спросил.

Четыре очевидных, остальные надо было смотреть, я же писал.

Flasher wrote:
Почему же их нет в списке полей?

VideoFormat -> Video Format, AudioFormat -> Audio Format
Не?

Flasher wrote:
Пробел нужен между цифрой и буквой, если что. А до audioinfo не тянет в целом. Скрипт тут ничего, увы, не изменит.

Ладно, потом посмотрим что там нужно.

По остальным полям:

Общее
Тип содержимого - что он вообще выводит? Не нашел таких файлов у себя.

Видео
Параметры формата - ну может быть, мне данные из него ничего не говорят
Бит/(Пиксели*Кадры) - вроде для оценки качества потока используют? Тоже специфическая вещь, но может быть
Пропорции пикселя - определение анаморфности видео? Тогда ок.
Поворот - ок

Аудио
Параметры формата - аналогично видео
Режим - что это?
Расширение режима - ?
Язык (не путать с "Языки аудио") - не понял

#486:  Author: FlasherLocation: Москва PostPosted: Sun Mar 31, 2019 01:13
    —
Loopback wrote:
О как, прямо научную базу подвел Smile
Давно лелеял эту мысль и понимаю, что без достойных аргументов тут не обойтись. Wink
Loopback wrote:
Вопрос как всегда в том, почему именно перечисленный выше набор считать нужным и полезным для большинства.
Вот сейчас потихоньку и разберёмся. Smile
Loopback wrote:
Или не убрать пару "лишних".
Ну, я бы убрал "Все аудио/видео одной строкой". Не выявил пользы.
Loopback wrote:
Я про количество колонок. Их можно безболезненно делать сколько угодно.
Я тоже про них. Вовсе не безболезненно.

Loopback wrote:
Наверно, какие-то неправильные сериалы Smile
В mp4 у LostFilm практически всюду.
Loopback wrote:
Нужная кому? Wink И зачем?
Ну, допустим, для H265 нужны особые условия воспроизведения. Можно глянуть в подсказку и понять, чем лучше открыть. Также можно отделить группы в виртуальную панель, найдя проблемный формат.
Loopback wrote:
Ок, только я в выводе библиотеки не вижу пропорций с двоеточием.
А ты по моему примеру делал?
Loopback wrote:
Четыре очевидных, остальные надо было смотреть, я же писал.
Понял.
Loopback wrote:
VideoFormat -> Video Format
Не?
Я вместо Формат (как в wlx) вижу "Идентификатор кодека", аналог [=tcmediainfo.Видеокодек].
AudioFormat вроде в порядке, но надо ещё проверить.

Общее
Примеры "Тип содержимого" для mp4: Short Film, TV Show

Видео

Параметры формата — ок, не надо.
Бит/(Пиксели*Кадры) — Фактор качества. Ничуть не специфичнее битрейта. Только лучше перевести Бит/пиксель или Бит на пиксель.

Аудио
Параметры формата — не сравнимо с видео. Пример популярных режимов mp3 (не раз обсуждалось: 1, 2, 3) — Joint Stereo / MS Stereo (Режим / Расширение режима). Ещё расширением может быть Intensity Stereo.
Язык: В MediaInfo.lng:
Language=Язык
English=Английский
Russian=Русский

И ещё просьба: в случае отсутствия Комментария (Примечание) смотреть, нет ли LongDescription, и подставлять его.

#487:  Author: Loopback PostPosted: Sun Mar 31, 2019 12:02
    —
Flasher wrote:
Давно лелеял эту мысль и понимаю, что без достойных аргументов тут не обойтись.

Это правильно, вопрос серьезный, а ты теперь на другой стороне Wink
Flasher wrote:
Ну, я бы убрал "Все аудио/видео одной строкой". Не выявил пользы.

Пользы особой и нет (хотя некоторые пользуются), это в общем-то больше пример использования скриптов в колонках.
Flasher wrote:
В mp4 у LostFilm практически всюду.

Flasher wrote:
Общее
Примеры "Тип содержимого" для mp4: Short Film, TV Show

Судя по всему ключевой момент - mp4, при наличии альтернативы я обычно избегаю релизов в нем. Интересно, а mkv позволяет хранить эти данные?
Flasher wrote:
Ну, допустим, для H265 нужны особые условия воспроизведения. Можно глянуть в подсказку и понять, чем лучше открыть. Также можно отделить группы в виртуальную панель, найдя проблемный формат.

С тем же успехом можно смотреть на формат - HEVC.
Flasher wrote:
А ты по моему примеру делал?

А, понятно, DisplayAspectRatio/String. Ну достаточно получить его, десятичное значение можно вычислять скриптом.

Flasher wrote:
Я вместо Формат (как в wlx) вижу "Идентификатор кодека", аналог [=tcmediainfo.Видеокодек].

В принципе соглашусь, что идентификатор кодека может быть более информативен. Плохо только что он контейнерозависимый, для avi и mp4 выводится fourcc, для mkv, например, V_MPEGH/ISO/HEVC, V_MPEG4/ISO/AVC и т.д.
Flasher wrote:
Язык: В MediaInfo.lng:
Language=Язык

Понятно, но есть один момент. Аудиодорожек часто бывает больше одной, такое поле будет выводить язык первой дорожки. В принципе это касается и других аудиопараметров.
Flasher wrote:
И ещё просьба: в случае отсутствия Комментария (Примечание) смотреть, нет ли LongDescription, и подставлять его.

Придется еще источник добавлять...

#488:  Author: FlasherLocation: Москва PostPosted: Sun Mar 31, 2019 17:02
    —
Loopback wrote:
Это правильно, вопрос серьезный, а ты теперь на другой стороне
Не совсем (вот откопал же Smile ). Там другой контекст на троих, речь шла о запросе в одно поле. См. 3-е предложение. Поэтому и объяснял с позиции проще/быстрее. А сейчас их вон сколько, плюс многое поменялось в самом xml, т.е. ситуация иная. Smile
Но хорошо, что ты поднял. Забыл в предыдущий раз дополнить. Я там чуть выше писал о Released_Date и Original/Released_Date. По-моему, дата релиза (Год из shelldetails) будет поважнее, чем дата записи. Добавишь?
Loopback wrote:
при наличии альтернативы я обычно избегаю релизов в нем.
Если брать тот же LostFilm, то можно заметить, что с экономией на битрейте/потоке (не в ущёрб качеству) 720-ки в mp4 в 1.5-2 раза меньше, чем у других студий в mkv.
Loopback wrote:
Интересно, а mkv позволяет хранить эти данные?
В таком же виде — нет. Там вообще всё скудно с описаниями. По сути кроме названия ничего близкого нет.
Loopback wrote:
С тем же успехом можно смотреть на формат - HEVC.
Догадывался, что так ответишь. Только пока там видеокодек. И всё же это разные записи. Меня устроит и "Библиотека кодирования: имя". Там запись через x вместо H, не то что бы сильно чесалось из-за этого...
Loopback wrote:
десятичное значение можно вычислять скриптом.
Зачем, если есть DisplayAspectRatio?
Loopback wrote:
В принципе соглашусь, что идентификатор кодека может быть более информативен.
Да. Поэтому в Поле Видеоформат хотелось бы видеть урезанный вариант как в wlx (HEVC, AVC и т. д.).
Loopback wrote:
Аудиодорожек часто бывает больше одной, такое поле будет выводить язык первой дорожки.
Именно это и нужно. Я хочу знать, какая будет по умолчанию при запуске видео.

#489:  Author: LonerDLocation: Макеевка PostPosted: Sun Mar 31, 2019 17:46
    —
Flasher wrote:
с экономией на битрейте/потоке (не в ущёрб качеству) 720-ки в mp4 в 1.5-2 раза меньше, чем у других студий в mkv.

1. На самом деле ущерб есть. Он может быть незаметен ненамётанным глазом, если смотреть на телевизоре с нескольких метров, но он есть. Опытные энкодеры как правило не раздувают битрейт без существенных причин, а неопытные тем более.
2. Что mkv, что mp4 - это лишь контейнер. Перепаковать аудио и видео потоки (без перекодирования) из одного контейнера в другой - дело нескольких минут (mkvmerge+yamb/mp4box). При этом размер файлов никак не изменится, потому как потоки сами по себе практически несжимаемые.

#490:  Author: FlasherLocation: Москва PostPosted: Sun Mar 31, 2019 17:58
    —
LonerD
1. Можно подумать, на LostFilm одни неопытные сидят. Wink Тем более, что старые релизы выкладывались в mkv.
2. С "никак" ты, конечно, загнул. Контейнеры всё же разные. Несущественно — точнее. Но речь шла не об этом, а об альтернативах.

#491:  Author: Loopback PostPosted: Sun Mar 31, 2019 18:52
    —
Flasher wrote:
Я там чуть выше писал о Released_Date и Original/Released_Date. По-моему, дата релиза (Год из shelldetails) будет поважнее, чем дата записи.

Скажем так - дата релиза важнее для фильмов, дата записи - для какого-нибудь личного видео. Ок.

Flasher wrote:
Если брать тот же LostFilm, то можно заметить, что с экономией на битрейте/потоке (не в ущёрб качеству) 720-ки в mp4 в 1.5-2 раза меньше, чем у других студий в mkv.

Выше верно написано, всё зависит от настроек кодирования. Сами по себе форматы контейнеров по размеру принципиально не отличаются. Я и сам иногда, когда попадаются релизы в mp4, пересохраняю их себе в mkv - размер, естественно, одинаков.

Flasher wrote:
Догадывался, что так ответишь. Только пока там видеокодек. И всё же это разные записи. Меня устроит и "Библиотека кодирования: имя". Там запись через x вместо H, не то что бы сильно чесалось из-за этого...

Я все-таки не вижу смысла. Ну сделай себе колонку со скриптом типа if (VideoFormat = 'HEVC') then Output:='h265' и т.д. Зачем сохранять дублирующуюся информацию? И потом мы говорим о стандартном конфиге, почему всем обязательно должен понадобиться кодек в виде именно h265, а не HEVC - загадка.

Лучше уж идентификатор кодека добавить, пользы будет больше.

Flasher wrote:
Зачем, если есть DisplayAspectRatio?

Минус один источник.

Flasher wrote:
Да. Поэтому в Поле Видеоформат хотелось бы видеть урезанный вариант как в wlx (HEVC, AVC и т. д.).

Так он и выводит то, что в wlx, как он может выводить что-то другое, если поле библиотеки одно и то же?

Flasher wrote:
Именно это и нужно. Я хочу знать, какая будет по умолчанию при запуске видео.

Для mkv не сработает, в нём у потоков есть флаг "По умолчанию", и если он установлен, откроется этот поток, а не первый по списку.

#492:  Author: FlasherLocation: Москва PostPosted: Sun Mar 31, 2019 19:29
    —
Loopback wrote:
Выше верно написано
Ты писал про альтернативы. При сравнении фильмов с нужным разрешением мы смотрим как минимум на 2 вещи — студия озвучки и размер. Какая нам разница, что там за контейнер?
Loopback wrote:
Я и сам иногда, когда попадаются релизы в mp4, пересохраняю их себе в mkv - размер, естественно, одинаков.
Так а смысл пересохранять? Тем более, что там с тегами неважно.

Loopback wrote:
Ну сделай себе колонку со скриптом типа if (VideoFormat = 'HEVC') then Output:='h265' и т.д. Зачем сохранять дублирующуюся информацию?
Для поиска. Например, регуляркой можно найти по номеру (напр., больше/меньше 263/265). Потом ведь наверняка и x266 появится с каким-то своим названием.
Loopback wrote:
Минус один источник.
Т.е. будет лучше для базы, но хуже для вычисления? Правильно?
Loopback wrote:
Так он и выводит то, что в wlx, как он может выводить что-то другое, если поле библиотеки одно и то же?
Я же сразу написал, что он выводит идентификатор/видеокодек. wlx у Формат показывает HEVC, а wdx под Видеоформат показывает V_MPEGH/ISO/HEVC.
Loopback wrote:
Для mkv не сработает, в нём у потоков есть флаг "По умолчанию", и если он установлен, откроется этот поток, а не первый по списку.
Если сделаешь с такой проверкой в качестве языка, то будет вообще отлично.

#493:  Author: Loopback PostPosted: Sun Mar 31, 2019 20:16
    —
Flasher wrote:
Какая нам разница, что там за контейнер?

Из твоего сообщения было похоже, что mp4 лучше mkv, т.к. размер релиза меньше. А это вещи несвязанные. А так да, я выберу тот релиз который понравится, и если надо - пересохраню во что мне надо.
Flasher wrote:
Так а смысл пересохранять?

Предпочитаю в коллекции меньший зоопарк форматов.
Flasher wrote:
Для поиска. Например, регуляркой можно найти по номеру (напр., больше/меньше 263/265). Потом ведь наверняка и x266 появится с каким-то своим названием.

Ну ведь аргумент за уши притянут. Вот тот, кому может понадобиться такое извращение, без проблем добавит нужный ему источник. А регуляркой можно найти что угодно, и не обязательно привязываться к номерам. Короче, не убедил.
Flasher wrote:
Т.е. будет лучше для базы, но хуже для вычисления? Правильно?

Теоретически правильно, а по факту кто знает, что будет быстрее.
Flasher wrote:
Я же сразу написал, что он выводит идентификатор/видеокодек. wlx у Формат показывает HEVC, а wdx под Видеоформат показывает V_MPEGH/ISO/HEVC.

Всё, я вообще больше ничего не понимаю. Начнем сначала.
Code:

    <column name="Video Format">VideoFormat</column>
    <column name="Video Codec">VideoCodecID</column>

Вот уже есть два поля. Чем не устраивает каждое из них и все-таки что ты предлагаешь сделать, исходя из их исходных данных?
Первое показывает краткое название формата (AVC, HEVC)
Второе показывает FOURCC для avi, и вот эту корявую конструкцию V_MPEGH/ISO/HEVC для современных форматов.

Flasher wrote:
Если сделаешь с такой проверкой в качестве языка, то будет вообще отлично.

Нет, не сделаю, в стандартный конфиг 100% нет. Чтобы такое реализовать для wdx, нужно: сделать источники для поля "по умолчанию" для всех возможных потоков (т.е. сделать штук 10 источников), и еще столько же источников для поля "Язык", найти поле по умолчанию, получить его язык и вывести.

#494:  Author: FlasherLocation: Москва PostPosted: Sun Mar 31, 2019 20:37
    —
Loopback wrote:
Из твоего сообщения было похоже, что mp4 лучше mkv, т.к. размер релиза меньше.
Нет. Это ты за уши притянул. Такого не было. На "избегаю релизов в нем." я привёл пример, почему избегание нецелесообразно в угоду выбора студии.
Loopback wrote:
и если надо - пересохраню во что мне надо.
Ясно. Но вдобавок уйдёшь с раздачи, а это не всегда хорошо. Впрочем, не моё дело. Только иногда приходится те же серии пачками скачивать, т.е. на конвертацию время потребуется.
Loopback wrote:
Всё, я вообще больше ничего не понимаю. Начнем сначала.
Первое показывает краткое название формата (AVC, HEVC)
Что начинать, если я тебе по факту сообщаю как есть? На примере торрента я вывожу одну колонку с [=tcmediainfo.Видеоформат] и вижу V_MPEGH/ISO/HEVC вместо HEVC. Смотрю в wlx и вижу HEVC.
Loopback wrote:
Нет, не сделаю
Ладно, пусть будет как в wlx. Тем более, что я не поклонник скачивать с кучей дорожек, когда можно сэкономить.

#495:  Author: Loopback PostPosted: Sun Mar 31, 2019 21:13
    —
Flasher wrote:
Нет. Это ты за уши притянул. Такого не было. На "избегаю релизов в нем." я привёл пример, почему избегание нецелесообразно в угоду выбора студии.

Ну может быть, старый стал, мнительный Very Happy

На самом деле я только сегодня узнал об ограничениях тегов mkv, задумался. Возможно и пересмотрю отношение к mp4.

Flasher wrote:
Что начинать, если я тебе по факту сообщаю как есть? На примере торрента я вывожу одну колонку с [=tcmediainfo.Видеоформат] и вижу V_MPEGH/ISO/HEVC вместо HEVC. Смотрю в wlx и вижу HEVC.

То, что ты видишь - это понятно. Я вижу то же самое. Вопрос в том что ты хочешь увидеть. Еще раз перечитал с начала, но так и не понял, что не так с этими полями, и что в них не устраивает.

На самом деле они в какой-то степени повторяют друг друга. Мне кажется Видеоформат, получаемый из библиотеки можно было бы совсем убрать (там всего 3-4 значения), оставив только Видеокодек, и на основе данных их него получать колонку с нормальными названиями форматов (для этого был даже предусмотрен вариант с чтением замен из ini).

#496:  Author: FlasherLocation: Москва PostPosted: Sun Mar 31, 2019 21:32
    —
Loopback wrote:
Вопрос в том что ты хочешь увидеть. Еще раз перечитал с начала, но так и не понял, что не так с этими полями, и что в них не устраивает.
Ну, давай по цепочке:
Flasher wrote:
Очень бы хотелось добавок в TCMediaInfo.sample.xml для wdx следующих данных (как в wlx):
Flasher wrote:
Я вместо Формат (как в wlx) вижу "Идентификатор кодека", аналог [=tcmediainfo.Видеокодек].
Flasher wrote:
Поэтому в Поле Видеоформат хотелось бы видеть урезанный вариант как в wlx (HEVC, AVC и т. д.).
Что тут, собственно, ещё можно добавить?

Loopback wrote:
оставив только Видеокодек, и на основе данных их него получать колонку с нормальными названиями форматов
Ничуть не против, если это быстрей.

#497:  Author: Loopback PostPosted: Sun Mar 31, 2019 22:04
    —
Flasher wrote:
Что тут, собственно, ещё можно добавить?

То ли я туплю ,то ли что еще, но... Для меня из этой цепочки не вырисовывается конкретной идеи. Ты все время ссылаешься "как в wlx", но в wlx показывается ровно то же, что и в wdx, если нет особой обработки полей. А по кодекам её нет нигде. Поэтому мне это ничего не говорит.

Flasher wrote:
Ничуть не против, если это быстрей.

Может и быстрей, но даже если нет - поле Видеокодек дает гораздо больше полезной информации, чем Видеоформат. Так что вычисляемое поле Видеоформат (но лучше наверно "Название кодека") на основе списка будет точно полезнее. Как основу для имен кодеков можно взять список codecs.cfg.

#498:  Author: FlasherLocation: Москва PostPosted: Sun Mar 31, 2019 22:17
    —
Loopback wrote:
То, что ты видишь - это понятно. Я вижу то же самое.
+
Loopback wrote:
но в wlx показывается ровно то же, что и в wdx
Я уже не ориентируюсь в твоих показаниях. То одно пишешь, то прямо противоположное...
Формат в wlx: HEVC
Видеоформат в wdx: V_MPEGH/ISO/HEVC
Это ровно то же? Нет.

Loopback wrote:
поле Видеокодек дает гораздо больше полезной информации, чем Видеоформат.
Вот на примере с торрентом мне выдаёт одно и то же: V_MPEGH/ISO/HEVC.

Loopback wrote:
Так что вычисляемое поле Видеоформат (но лучше наверно "Название кодека") на основе списка будет точно полезнее.
Но тогда это не будет соответствовать Формат (Видео) из wlx. Ты бы пример привёл, а то неясно, о чём речь, и почему надо лезть в этот список.

#499:  Author: Loopback PostPosted: Sun Mar 31, 2019 22:43
    —
Flasher wrote:
Формат в wlx: HEVC
Видеоформат в wdx: V_MPEGH/ISO/HEVC
Это ровно то же? Нет.

Э нет, что-то здесь не то. Где ты нашел "Видеоформат в wdx: V_MPEGH/ISO/HEVC"?



Формат в wlx = Видеоформат в wdx
Идентификатор кодека в wlx = Видеокодек в wdx

Flasher wrote:
Но тогда это не будет соответствовать Формат (Видео) из wlx. Ты бы пример привёл, а то неясно, о чём речь, и почему надо лезть в этот список.

Не будет. А зачем ему обязательно соответствовать? Что полезнее:
MPEG-4 Visual или DivX 5
MPEG-4 Visual или XVID
?

#500:  Author: FlasherLocation: Москва PostPosted: Sun Mar 31, 2019 23:27
    —
Loopback wrote:
Э нет, что-то здесь не то.
Переименовал base.db — и стал показывать нормально. Закинул эту базу в тестовый ТС, там и с ней нормально. Shocked
Loopback wrote:
Что полезнее:
Тут ничего менять не нужно. Видеокодек — это отдельная вещь, являющаяся частью стандарта (формата). Это то же самое, что избавиться от стола при наличии стула. Smile

#501:  Author: Loopback PostPosted: Mon Apr 01, 2019 00:19
    —
Flasher wrote:
Переименовал base.db

Ну ок, не знаю, может последствия каких-то экспериментов.

Flasher wrote:
Тут ничего менять не нужно. Видеокодек — это отдельная вещь, являющаяся частью стандарта (формата).

Я же не предлагаю убрать видеокодек, он показывает fourcc и прочее. Он останется, но на его основе будет дополнительная колонка "Название кодека" с читаемым именем. А "видеоформат" - ну пусть остается, если нужен.

#502:  Author: FlasherLocation: Москва PostPosted: Mon Apr 01, 2019 01:01
    —
Loopback wrote:
может последствия каких-то экспериментов.
Кроме добавки/удаления колонок ничего не делалось. UTF-8 в lng могла сказаться?

Loopback wrote:
Я же не предлагаю убрать видеокодек
Это я понял. Ты сперва обозначил замену видеоформата, и по примеру с XVID я не уловил сути в читаемости имени. Потом заглянул в codecs.cfg с описаниями и понял, о чём речь. Отдельная колонка с описанием, конечно, не помешает.

Flasher wrote:
Потом ведь наверняка и x266 появится с каким-то своим названием.
Название-то уже есть — FVC. H.266 для 16K+ на 2021 год планируется. Smile

Интересно, что Видеоформат покажет при стандартах H.261, H.263, H.320, H.324? В codecs.cfg даже H269 фигурирует.

#503:  Author: Loopback PostPosted: Mon Apr 01, 2019 12:32
    —
Flasher wrote:
UTF-8 в lng могла сказаться?

Вряд ли, плагин же средствами тотала локализуется.

Flasher wrote:
Название-то уже есть — FVC. H.266 для 16K+ на 2021 год планируется.

Маркетологи не дремлют... Еще только в 2013-14 году начало более-менее распространяться аппаратное декодирование h265, а тут уже следующий. Меняйте железо, господа.

#504:  Author: ProgMan13 PostPosted: Mon Apr 01, 2019 19:03
    —
Flasher wrote:

ProgMan13 wrote:
то проще перекодировать lng для конкретных (где utf16) wdx-плагинов в ansi.
Не проще. Не заведётся, ибо надо в UTF-8.

Это в случае если используемый TC языковой файл в utf8.
Установил немецкий язык интерфейса TC. Если lng-файл плагина (пробовал DirSizeCalc) в ansi - все символы видно, если utf16le - символы с диакритикой отображаются как знак вопроса.
Получается, lng-файлы для контентных плагинов по умолчанию лучше делать в ansi.

#505:  Author: FlasherLocation: Москва PostPosted: Mon Apr 01, 2019 19:28
    —
Loopback wrote:
Вряд ли, плагин же средствами тотала локализуется.
А что насчёт смены последовательности колонок? Это на кэше не отражается?
Loopback wrote:
Меняйте железо, господа.
В рынок пойдут огромные телеэкраны и панели, придётся.

ProgMan13 wrote:
Это в случае если используемый TC языковой файл в utf8.
Об этом в контексте статьи со мной разговор и вёлся.
ProgMan13 wrote:
Получается, lng-файлы для контентных плагинов по умолчанию лучше делать в ansi.
Если в переводе есть юникодные символы, то нет.

#506:  Author: Loopback PostPosted: Mon Apr 01, 2019 20:00
    —
Flasher wrote:
А что насчёт смены последовательности колонок? Это на кэше не отражается?

Нет, они по имени берутся.

Flasher wrote:
В рынок пойдут огромные телеэкраны и панели, придётся.

Ну я и говорю маркетинг.

#507:  Author: ProgMan13 PostPosted: Tue Apr 02, 2019 00:57
    —
Flasher wrote:
Если в переводе есть юникодные символы, то нет.

Это редкое явление. Если lng в utf16le, юникодных символов тоже не будет видно. Речь для кодировки lng по умолчанию.

#508:  Author: FlasherLocation: Москва PostPosted: Tue Apr 02, 2019 01:28
    —
ProgMan13
Речь про другие языки, где явление как раз не редкое.

#509:  Author: Mellomann PostPosted: Wed Apr 03, 2019 10:36
    —
Что-то случилось в свежей версии?


#510:  Author: Loopback PostPosted: Wed Apr 03, 2019 11:26
    —
Mellomann wrote:
Что-то случилось в свежей версии?

Ну да, сидел как-то вечером, и вдруг подумалось - а что-то скучно мы живем. Дай, думаю, троянчик в плагин встрою, почему бы и нет...

#511:  Author: Mellomann PostPosted: Wed Apr 03, 2019 11:44
    —
Ага. Чтоб скучно не было... Smile

#512:  Author: FlasherLocation: Москва PostPosted: Wed Apr 03, 2019 17:53
    —
Loopback
Предлагаю подвести итоги по запрошенному списку.

Не добавляем:
Видео
Формат
Параметры формата
Тип интернет содержимого (желательно без "video/")
Аудио
Формат


Добавляем +:
Общее
Дата выпуска
LongDescription для Комментарий


И как скоро ждать обновки?

#513:  Author: Loopback PostPosted: Thu Apr 04, 2019 11:41
    —
Flasher
Примерно половину я уже добавил. До конца недели будет скорее всего некогда заниматься, но может быть доделаю. В любом случае сначала выложу конфиг для тестирования, прежде чем он пойдет в релиз.

#514:  Author: FlasherLocation: Москва PostPosted: Thu Apr 04, 2019 17:40
    —
Loopback
ОК. Принято.

#515:  Author: Loopback PostPosted: Thu Apr 11, 2019 13:45
    —
Flasher
Добавлены:
Дата выпуска
Тип содержимого

Тип развёртки,
Соотношения сторон (в двух вариантах)
Ориентация
Бит/Пиксели
Поворот
Пропорции пикселя

Метод сжатия
Параметры формата Format_Settings (заменил им Format_Settings_Mode, который по-сути частный случай)

Коллекция
Сезон
Часть

Конфиг.

По LongDescription - а ты откуда его вообще взял? Нет такого поля в mediainfo, по крайней мере в 18.12.

С видеокодеком там долго, пока некогда заниматься.

#516:  Author: FlasherLocation: Москва PostPosted: Thu Apr 11, 2019 18:01
    —
Loopback
Спасибо. Smile
Похоже год в shelldetails — не дата выпуска, а скорее дата записи. Но сабж показывает не везде. Дата выпуска вообще по нулям. Видимо, можно убирать.
Значения "тип развёртки" не переводится на русский как в wlx.
Хотелось бы, чтобы числа с плавающей точкой выводились без лишних нулей (Пропорции пикселя, Соотношение сторон, Поворот, частота кадров, Бит/Пиксели).

А где остальное?

Аудио
Режим
Расширение режима
Частота кадров
Число кадров
Язык
Библиотека кодирования


LongDescription точно есть на Ipad-рипах. Примеры: 1, 2, 3.

#517:  Author: Loopback PostPosted: Thu Apr 11, 2019 19:50
    —
Flasher wrote:
Дата выпуска вообще по нулям. Видимо, можно убирать.

О как, ты до этого даже не пробовал? Confused И зачем я это тогда вообще добавлял?

Flasher wrote:
Значения "тип развёртки" не переводится на русский как в wlx.

Это тогда через скрипт надо прогонять. Ну ок.

Flasher wrote:
Хотелось бы, чтобы числа с плавающей точкой выводились без лишних нулей

Такие строки выдает библиотека. Лично меня это устраивает, кого нет - пишет на каждую колонку по скрипту.

Flasher wrote:
Режим
Расширение режима

Format_Settings = Format_Settings_Mode + Format_Settings_ModeExtension
Параметры формата = Режим + Расширение режима

Есть "Параметры формата", остальное входит в его состав. Зачем еще два отдельных поля?

Flasher wrote:
Частота кадров
Число кадров

По кадрам, всё еще сомневаюсь в их хоть какой-то полезности. Это число фреймов самого аудио, вычисляемое из частоты сэмплирования и числа сэмплов на фрейм (разного для разных форматов). К частоте кадров видео отношения оно не имеет. Где бы посмотреть хоть один реальный сценарий их использования, я пытался нагуглить, но безуспешно.

Flasher wrote:
Язык

То же, что с кодеками. Есть одна идея по реализации, но пока некогда.

Flasher wrote:
LongDescription точно есть на Ipad-рипах.

Ок, теперь ясно. Некоторые поля библиотека не выводит в список доступных, это, получается, как раз такое, на других файлах этого поля даже в списке нет, в allprops.txt оно тоже не выводится.

#518:  Author: FlasherLocation: Москва PostPosted: Thu Apr 11, 2019 21:15
    —
Loopback wrote:
О как, ты до этого даже не пробовал? Confused И зачем я это тогда вообще добавлял?
Ну, пока это тестовый вариант. ) Мне это только в процессе обсуждения пришло в голову, так как ранее только из shelldetails брал год, а сабж его не возращал. Поэтому был уверен, что это именно дата релиза. Жаль, что не годится. Sad

Loopback wrote:
Лично меня это устраивает
И будем писать в поиске 0.000/1.000 вместо 0/1. Что хорошего?

Loopback wrote:
Есть "Параметры формата", остальное входит в его состав. Зачем еще два отдельных поля?
Странный вопрос. То, что входят, я и так писал. Сортировка по разным полям или поиску по точному соответствию отменяются? Плюс не/сокращённый вариант аля видеоформат/видеокодек. Меня устроит разбивка по прямому слэшу, если сорсы нет желания добавлять.

Loopback wrote:
То же, что с кодеками. Есть одна идея по реализации, но пока некогда.
Ты вроде не хотел усложнять, и мы сошлись на wlx-аналоге. Или передумал? Smile

Loopback wrote:
Некоторые поля библиотека не выводит в список доступных
Получается, в wlx выводится без allprops? В wdx так не получится?

Насчёт кадров я ещё подумаю.

И вопрос по части wlx. Ты можешь сделать, чтобы при навигации по поддерживаемым файлам ТС не сбрасывался на первый в приоритете? Такое есть в некоторых wlx.

#519:  Author: Loopback PostPosted: Thu Apr 11, 2019 22:33
    —
Flasher wrote:
Что хорошего?

Как минимум, показывает, что это именно число с плавающей точкой, а не целое. И то, что нет значащих цифр до третьего знака после запятой.

Я же не запрещаю, сделай себе скриптами как нравится.

Flasher wrote:
Сортировка по разным полям или поиску по точному соответствию отменяются?

С трудом представляю себе пользу от сортировки по этим параметрам... по "Расширение режима" вообще не представляю. Ну допустим. Зачем тогда нужен "Параметры формата", который в 99% случаев будет показывать сумму этих полей?

Flasher wrote:
Меня устроит разбивка по прямому слэшу

А меня, например, устроит "Параметры формата" и полное отсутствие этих полей. Как быть? Под кого будем делать дефолтный конфиг - под меня или под тебя? Wink

Flasher wrote:
Ты вроде не хотел усложнять, и мы сошлись на wlx-аналоге. Или передумал?

Сильного усложнения не должно быть. Но делать возможность вывода только первой дорожки - как-то мне такая идея совсем не нравится.

Flasher wrote:
Получается, в wlx выводится без allprops? В wdx так не получится?

allprops вообще в работе плагина нигде не участвует. В библиотеке есть возможность вывода списка поддерживаемых полей (их я и сохраняю в allprops), но выводятся туда далеко не все. Некоторые появляются только на определенных файлах. Не очень хорошо, конечно, но использовать их никто не мешает.

Обновил конфиг по той же ссылке, добавил поддержку LongDescription, локализацию значения типа развертки.


Flasher wrote:
Ты можешь сделать, чтобы при навигации по поддерживаемым файлам ТС не сбрасывался на первый в приоритете? Такое есть в некоторых wlx.

Не понял, о чем речь.

#520:  Author: FlasherLocation: Москва PostPosted: Thu Apr 11, 2019 23:20
    —
Loopback wrote:
Как минимум, показывает, что это именно число с плавающей точкой, а не целое.
И что это в практическом смысле решает?
Loopback wrote:
И то, что нет значащих цифр до третьего знака после запятой.
Нет — в смысле ограничения на показ или по факту? Если второе, то это и по умолчанию должно быть понятно.

И тут важно сделать числовой тип у всех полей с числами, а также добавить элементы сравнения <=> в диалог поиска. Вероятно, тогда и не придётся писать 1.000. К примеру, такая строка не даёт вывести данные:
Code:
<column name="Pixel Aspect Ratio" type="script">Output:=Number(PixelAspectRatio);></column>


Loopback wrote:
Зачем тогда нужен "Параметры формата", который в 99% случаев будет показывать сумму этих полей?
Во всяком случае два поля можно объединить в одно. Если "Параметры формата" заменить двумя полями, то сильно хуже не станет.
Loopback wrote:
Под кого будем делать дефолтный конфиг - под меня или под тебя?
Под общий функционал и удобство пользователей, я полагаю. Аргументы я привёл.

Loopback wrote:
Сильного усложнения не должно быть.
Ну, раз так, то только за. )

Loopback wrote:
allprops вообще в работе плагина нигде не участвует.
Да, это я мимо кассы, конечно...

Loopback wrote:
Обновил конфиг по той же ссылке, добавил поддержку LongDescription, локализацию значения типа развертки.
Переведён только Progressive. Есть ещё как минимум Interlaced (Чересстрочный) и MBAFF [Macroblock-Adaptive Frame/Field Coding] (Совмещённый). В потенциале могут быть: Telecined (Телекино-преобразованный), Hybrid (Гибридный), Blended (Смешанный), Film, Decimating, Partially interlaced, Partially film, Hybrid Film Interlaced, Hybrid Progressive Interlaced, Hybrid Film Progressive. Но это надо будет через AviSynch/MeGUI/etc прогнать.
Комментарий вообще ничего не выводит. Может, проверки на пустоту по триму недостаточно.

Loopback wrote:
Не понял, о чем речь.
Не дописал: на первый плагин в приоритете. В режиме быстрого просмотра при навигации стрелками вверх/вниз должен оставаться текущий плагин. Можно опционально.

В конфиге стоит все табы на пробельные отступы заменить и концевые пробелы убрать.
И ты в курсе, что у тебя в заголовках chm стоит Autorun Help? Very Happy

Такой момент. После вывода колонок видно, как последовательно обновляются иконки. И так происходит почему-то дважды в цикле, как будто плагин что-то дополнительно перечитывает. С этим что-то можно сделать?

Кстати, по библиотеке кодирования не ответил.

#521:  Author: Loopback PostPosted: Fri Apr 12, 2019 12:13
    —
Flasher wrote:
И тут важно сделать числовой тип у всех полей с числами

Кстати, это будет наиболее правильный подход. Для целочисленных такая поддержка есть, а вот ft_numeric_floating я почему-то не добавил.
Flasher wrote:
Во всяком случае два поля можно объединить в одно

Ок, делаем два поля, Параметры формата убираем.
Flasher wrote:
Переведён только Progressive.

Что было, то и перевел Smile Остальное добавлю. По доступным значениям, думаю, можно посмотреть исходники mediainfo.
Flasher wrote:
Комментарий вообще ничего не выводит.

Забыл написать, это баг в обработке fix_cp, исправлю в следующем релизе. Если убрать из источника комментария process="fix_cp" - всё заработает.
Flasher wrote:
В режиме быстрого просмотра при навигации стрелками вверх/вниз должен оставаться текущий плагин.

Я так понимаю, это реализуется функцией ListLoadNext. Должно быть не очень сложно, но все же потребует переделки, т.к. сейчас не предполагается повторной загрузки файла в уже созданное окно. Добавлю в todo.
Flasher wrote:
В конфиге стоит все табы на пробельные отступы заменить и концевые пробелы убрать.

Ок.
Flasher wrote:
И ты в курсе, что у тебя в заголовках chm стоит Autorun Help?

Теперь в курсе Smile Вот что бывает, когда сразу не вынесешь некоторые вещи в настройки.
Flasher wrote:
После вывода колонок видно, как последовательно обновляются иконки.

Да, видел, думаю связано с фоновой работой, надо будет посмотреть.
Flasher wrote:
Кстати, по библиотеке кодирования не ответил.

Да забыл просто, я в этих полях уже путаюсь. Добавляем.

Проблема только, что это поле доступно и в общей информации (не всегда), и для видео, и для аудио, и информация может быть разная.

#522:  Author: LonerDLocation: Макеевка PostPosted: Fri Apr 12, 2019 14:29
    —
Небольшое пожелание - добавить в xml-файл настройки
(у себя добавил и настроил колонки, но считаю, что эта информация достаточно важная, чтобы быть доступна "из коробки")

Code:

    <sources>
        <source name="Width" field="Width" context="Video"/>
        <source name="Height" field="Height" context="Video"/>
        <source name="Encoded_Library" field="Encoded_Library" context="Video"/>
        <source name="Encoded_Library_Settings" field="Encoded_Library_Settings" context="Video"/>
    </sources>
    <columns>
        <column name="Width">Width</column>
        <column name="Height">Height</column>
        <column name="Encoded_Library">Encoded_Library</column>
        <column name="Encoded_Library_Settings">Encoded_Library_Settings</column>
    </columns>

#523:  Author: FlasherLocation: Москва PostPosted: Fri Apr 12, 2019 19:58
    —
Loopback wrote:
а вот ft_numeric_floating я почему-то не добавил.
По описание Number этим и является. Нет?
Loopback wrote:
Если убрать из источника комментария process="fix_cp" - всё заработает.
Ага. Подтверждаю.
Loopback wrote:
По доступным значениям, думаю, можно посмотреть исходники mediainfo.
Посмотрел. Потенциальных нет.
Loopback wrote:
это поле доступно и в общей информации (не всегда)
Ты имеешь в виду доступно в wlx? ОК. Но нам же нужно разделять их для видео и аудио. LonerD уже просит на видео. Smile

LonerD
Там уже есть field="Width" и field="Height", объединённые в "Размер кадра":
Code:
        <source name="VideoFrameWidth" field="Width" context="Video"/>
        <source name="VideoFrameHeight" field="Height" context="Video"/>


Last edited by Flasher on Fri Apr 12, 2019 20:26; edited 1 time in total

#524:  Author: LonerDLocation: Макеевка PostPosted: Fri Apr 12, 2019 20:21
    —
Flasher wrote:
объединённые в "Размер кадра"

Я знаю, что есть объединённый вариант. Но в нём нельзя сортировать по высоте или ширине по отдельности.

#525:  Author: FlasherLocation: Москва PostPosted: Fri Apr 12, 2019 20:25
    —
LonerD
Я тебя понял. Но твой вариант с <source name="Width/Height" тут не годится. В <sources> тебе их вообще не нужно было добавлять, тогда будет верно.

#526:  Author: Loopback PostPosted: Fri Apr 12, 2019 22:26
    —
Flasher wrote:
По описание Number этим и является. Нет?

Не совсем, это функция преобразования, а я имел в виду тип колонки. Сейчас есть строка и целое, с плавающей точкой нет. Правильнее всего будет добавить этот тип.
Flasher wrote:
Ты имеешь в виду доступно в wlx? ОК. Но нам же нужно разделять их для видео и аудио. LonerD уже просит на видео.

Я про то и говорю, что информация по библиотеке в разных файлах бывает в разных контекстах - General, Video и Audio. Вроде информация как правило не пересекается, т.е. если есть в одном контексте, в других ничего нет, но это не точно. То, что источников понадобится целых три я уже понял... Надо посмотреть, можно ли (и имеет ли смысл) сделать из них одну колонку. Или придется и колонок делать три.
LonerD wrote:
Небольшое пожелание - добавить в xml-файл настройки

Ну по ширине/высоте выше написано, источники уже есть, нужно ли делать колонки надо подумать. Ширина иногда могла бы быть полезной.

По библиотеке кодирования тоже выше.

По "настройкам кодирования" не думаю, что эта простыня значений будет интересна среднестатистическому пользователю. Более того, как ее вообще использовать в wdx при такой длине? Даже в wlx я под нее делал функцию для деления на несколько строк. Так что скорее всего нет.


Вообще у меня уже иногда появляется желание сделать второй файл примера, какой-нибудь extended. Не потому что очень хочется, а потому что слишком много специфических хотелок, которые явно не нужны простому пользователю. Кому надо, может его поставить. Останавливает только то, что поддерживать два файла в актуальном состоянии ровно в два раза сложнее, чем один Smile

#527:  Author: FlasherLocation: Москва PostPosted: Fri Apr 12, 2019 22:54
    —
Loopback wrote:
Правильнее всего будет добавить этот тип.
Конечно. А ТС автоматически добавляет сравнительные опции для числовых типов, или в код плагина надо доп. функции вносить?
Loopback wrote:
Вроде информация как правило не пересекается, т.е. если есть в одном контексте, в других ничего нет
Не знал. Shocked А можно пример, когда в General есть то, чего нет в остальных двух?
Loopback wrote:
По "настройкам кодирования" не думаю, что эта простыня значений будет интересна среднестатистическому пользователю.
Согласен. Этот вариант я рассматривал, когда составлял список, и сразу от его предложения отказался. С другой стороны "Все аудио/видео одной строкой" ты почему-то не чураешься:
Loopback wrote:
Пользы особой и нет (хотя некоторые пользуются), это в общем-то больше пример использования скриптов в колонках.

Loopback wrote:
Вообще у меня уже иногда появляется желание сделать второй файл примера, какой-нибудь extended.
Я об этом с начала обсуждения думал на примере TCFS2.Core.ini/TCFS2.ini (там лишний sample не требуется, просто не трогаем с Core), но потом, сопоставив разницу в правке ini/xml и результирующих конфликтов/тормозов, что-то передумалось.

#528:  Author: LonerDLocation: Макеевка PostPosted: Fri Apr 12, 2019 23:22
    —
Loopback wrote:

По "настройкам кодирования" не думаю, что эта простыня значений будет интересна

Среднестатистическому примерно 90-95% информации плагина/библиотеки не будет интересно Very Happy

Loopback wrote:
Более того, как ее вообще использовать в wdx при такой длине?

Полностью она и не влезает. Но по начальным данным (ref, deblock, subme...) можно делать более-менее объективные выводы о качестве энкода.

Loopback wrote:
Даже в wlx я под нее делал функцию для деления на несколько строк.

Спасибо. Так намного удобней. Можно даже ещё чуть больше строк сделать (чтобы в режиме QuickView на мониторах 1920х1080 текст помещался на экране).
А с автоматическим переносом рядов (как реализовано в утилите MediaInfo Lite, к примеру) так ничего и не получилось?

#529:  Author: FlasherLocation: Москва PostPosted: Fri Apr 12, 2019 23:46
    —
LonerD wrote:
Среднестатистическому примерно 90-95% информации плагина/библиотеки не будет интересно
Такому вообще плагин не будет интересен, если уж на то пошло. Wink
LonerD wrote:
Полностью она и не влезает.
В подсказку скорее влезет. В частности, комментарий больше нужен именно в ней. Но это не в поддержку, а просто к сведению.

Loopback
В конфиге и MediaInfo.lng в Portarait нужно a убрать.

#530:  Author: Loopback PostPosted: Sun Apr 14, 2019 22:02
    —
Flasher wrote:
А ТС автоматически добавляет сравнительные опции для числовых типов

Да, поэтому смысл в числовых типах есть.

Flasher wrote:
А можно пример, когда в General есть то, чего нет в остальных двух?

Не, что-то я не то увидел Smile Посмотрел сейчас, всё зависит от формата. Например в mkv в General информация о контейнере, в Video о кодеке, а в Audio ничего. В mp4 бывает только информация в Video, не всегда, в других контекстах ничего. В аудиоформатах, во flac есть в Audio, в mp3 в General и Video одно и то же. Ну и так далее.

Короче говоря, нужны все три.
Flasher wrote:
С другой стороны "Все аудио/видео одной строкой" ты почему-то не чураешься

Ну я писал, откуда оно появилось. Можно и убрать, мне не жалко. Примеры есть и в других местах.

Flasher wrote:
но потом, сопоставив разницу в правке ini/xml и результирующих конфликтов/тормозов, что-то передумалось.

Технически оно было бы не так сложно, если бы колонки и режимы просмотра просто сваливались в кучу, но тут важен порядок. Ну и конфликтов при ручной правке не избежать, конечно.

LonerD wrote:
Среднестатистическому примерно 90-95% информации плагина/библиотеки не будет интересно

Всё верно, поэтому задача определить эти 5%, которые будут полезны большинству. Остальные без проблем добавят нужное.

LonerD wrote:
Можно даже ещё чуть больше строк сделать

В коде есть вызов функции FormatLibrarySettings(v, 8 ), число - это количество параметров в строке. Можно ставить меньше.

LonerD wrote:
А с автоматическим переносом рядов (как реализовано в утилите MediaInfo Lite, к примеру) так ничего и не получилось?

Даже скачал, посмотрел Smile Там просто Edit-контрол, здесь список. Теоретически, сделать перенос в пределах строки можно, но я не вижу большого смысла в таком усложнении. Из минусов добавится большая высота строки (как у обложки), что неудобно при листании. Но и ее максимальной высоты в 255 пикселей для такой простыни может и не хватить (встречал файлы у которых при настройках по умолчанию разбивается на ~20 строк), сейчас такой проблемы не возникает.
Flasher wrote:
В конфиге и MediaInfo.lng в Portarait нужно a убрать.

Спасибо, поправлю.

#531:  Author: FlasherLocation: Москва PostPosted: Mon Apr 15, 2019 01:02
    —
Loopback wrote:
Можно и убрать, мне не жалко.
Если никто категорично и аргументированно не воспротивится, убирай.
Loopback wrote:
Ну и конфликтов при ручной правке не избежать, конечно.
О них в т. ч. и речь.
Loopback wrote:
Всё верно, поэтому задача определить эти 5%, которые будут полезны большинству.
Как же? Тогда бы разговор шёл об урезании, а не расширении. Тут важно найти золотую середину для потенциальных пользователей не абы какого медиа-плагина, а именно на базе MediaInfo с её спецификой.

С остальным ясно. С русской справкой помощь нужна?

#532:  Author: LonerDLocation: Макеевка PostPosted: Mon Apr 15, 2019 03:07
    —
Loopback wrote:
"Все аудио/видео одной строкой"... Можно и убрать, мне не жалко.

А это уже обидно.
"All audio as string" использую в одном из вариантов колонок с информацией о видеофайлах чтобы не плодить лишние колонки для каждого пункта (в данном случае важнее инфо по видеоряду) и во всплывающей подсказке. На мой взгляд стоит наоборот чуть расширить выводимую информацию - добавить сюда же количество потоков и языки.
"All video as string" - во всплывающей подсказке (и битрейт лучше в KBps выводить, а не округлять до Mb)

#533:  Author: FlasherLocation: Москва PostPosted: Mon Apr 15, 2019 03:20
    —
LonerD wrote:
А это уже обидно.
Лучше какие-то значения в строку через запятую или всё же нормально именнованные в столбик? По мне, второе куда удобней.
LonerD wrote:
чтобы не плодить лишние колонки для каждого пункта
Так и не плоди. Объединяй их как твой душе угодно в любой последовательности в одну колонку, хоть через запятую, хоть через точку с запятой, хоть через вертикальную черту и т. д.

#534:  Author: Skif_off PostPosted: Mon Apr 15, 2019 08:27
    —
Если правильно понял, "All audio as string" / "All video as string" формируются из данных, которые плагин _уже_ получил: убирание не скажется на производительности заметно. А раз кем-то используется, то тем более смысла убирать особо и нет.
Плюс это хороший пример использования скриптового языка.

#535:  Author: FlasherLocation: Москва PostPosted: Mon Apr 15, 2019 10:07
    —
Skif_off wrote:
А раз кем-то используется, то тем более смысла убирать особо и нет.
То же самое можно сказать про убираемые "Параметры формата". Логика в том, что любую из этих строк можно сформировать правкой в диалоге без xml.
К тому же толку от сбиваемой строчным списком, который можно было выдумать каким угодно, сортировки тут особой нет.

#536:  Author: Loopback PostPosted: Mon Apr 15, 2019 13:55
    —
Flasher wrote:
По мне, второе куда удобней.

Удобство - вопрос спорный. Мне, например, основные параметры аудиодорожек гораздо удобнее читать именно так, короткой строкой (ещё пример - в компактном режиме просмотра видео). В wdx я этим полем не пользуюсь, тут это реально делалось как пример.

Но раз это кому-то нужно - пусть теперь остается. Убирать что-то всегда сложнее, так как всегда найдется кто-нибудь, кто этим пользовался. Потому и спор о нужности полей уже на три страницы, совсем не хочется надобавлять лишнего, чтобы потом болезненно это убирать Smile

Flasher wrote:
Объединяй их как твой душе угодно в любой последовательности в одну колонку

Главный минус стандартного подхода - пустые строки (или лишние разделители) в случае отсутствия значения. Скриптовый вариант это позволяет это исключить.

#537:  Author: FlasherLocation: Москва PostPosted: Mon Apr 15, 2019 14:30
    —
Loopback wrote:
Главный минус стандартного подхода - пустые строки (или лишние разделители) в случае отсутствия значения.
Никаких пустых подстрок (мы говорим про однострочники) и лишних разделителей не будет, если их записывать в кавычках внутри тега до/после его обозначения:
Code:
[=tcmediainfo.Видеоформат][=", "tcmediainfo.Битрейт видео.MBps" Мбит/с"][=", "tcmediainfo.Размер кадра][=", "tcmediainfo.Частота кадров" к/с"]

#538:  Author: Lisabon PostPosted: Mon Apr 15, 2019 15:49
    —
Flasher
У меня отображает, если нет значений(возможно значения пустые):

#539:  Author: FlasherLocation: Москва PostPosted: Mon Apr 15, 2019 15:53
    —
Lisabon
Что-то я не понял, куда смотреть на скриншоте?

#540:  Author: Lisabon PostPosted: Mon Apr 15, 2019 15:59
    —
Flasher
На всплывающую подсказку к файлу.

#541:  Author: FlasherLocation: Москва PostPosted: Mon Apr 15, 2019 16:24
    —
Lisabon
Да, есть такое. Это баг ТС. Если вставлять один тег, то скрывает, если несколько, то — нет. Confused
Надо писать Гислеру.

#542:  Author: Loopback PostPosted: Tue Apr 16, 2019 12:56
    —
Flasher wrote:
Никаких пустых подстрок (мы говорим про однострочники) и лишних разделителей не будет

Отстал я от жизни... Ну если так, и если баг будет исправлен, то да, скрипт нужен только в случае необходимости модификаций самих значений.

#543:  Author: Loopback PostPosted: Wed Jul 17, 2019 22:54
    —
Конфиг + тестовая версия.

Из последнего, что обсуждалось, добавлены:
Format_Settings_Mode
Format_Settings_ModeExtension
Encoded_Library

Вроде ничего не забыл?

Также для звука/субтитров добавлена поддержка отображения всех языков или первых пяти потоков отдельно. Чтобы заработало, нужна тестовая версия.

Кстати, обнаружил, что языки уже в конфиге были, в виде списка коротких кодов: en|ru... (Источники AudioLang, TextLang). Кто-нибудь их использует? Пока закомментировал, думаю убрать, полное наименование языков мне кажется удобнее.

#544:  Author: FlasherLocation: Москва PostPosted: Thu Jul 18, 2019 03:18
    —
Loopback
Жирный плюс в карму за труд! Smile (Не думал, что ты сразу все три плагина за день выложишь.)

Сразу вижу, что нет LNG с переводом новинок. Забыл вложить или ещё не готов?
Немного потестировал. WLX в UTF-8 читает. Очень хорошо. Но cразу вылезла ошибка внутри окна плагина:
Quote:
Invalid parameters, function STRPART : Could not convert variant of type (UnicodeString) into type (Integer) (STRPART ( GET ( 'Audio_Language_List' , 'General' ) , 2 , ' / ' ) )
С выбором пунктов меню такого нет.

Loopback wrote:
думаю убрать, полное наименование языков мне кажется удобнее.
Не скажи. Чем короче запись, тем меньше занимает места по ширине, т.е. прокручивать нужно меньше. Да и подсказка не растягивается, если языков несколько.
А по дефолтному языку так и не вышло? Ты вроде там способ нашёл какой-то.

Loopback wrote:
Да, поэтому смысл в числовых типах есть.
Не сделал? Не вижу их в поиске.

Loopback wrote:
Я так понимаю, это реализуется функцией ListLoadNext. Должно быть не очень сложно, но все же потребует переделки, т.к. сейчас не предполагается повторной загрузки файла в уже созданное окно. Добавлю в todo.
Тоже пока не реализовано.

Loopback wrote:
Теперь в курсе Smile Вот что бывает, когда сразу не вынесешь некоторые вещи в настройки.
Не исправил заголовок.

Всё остальное вроде пока тьфу-тьфу.

#545:  Author: Loopback PostPosted: Thu Jul 18, 2019 12:55
    —
Flasher wrote:
Не думал, что ты сразу все три плагина за день выложишь.

Ну это всё не за один день делалось, а последние несколько Smile

Flasher wrote:
Забыл вложить или ещё не готов?

Забыл, перекачай файл по той же ссылке.

Flasher wrote:
Но cразу вылезла ошибка внутри окна плагина:

Странно, ладно, посмотрю.

Flasher wrote:
Не скажи. Чем короче запись, тем меньше занимает места по ширине, т.е. прокручивать нужно меньше. Да и подсказка не растягивается, если языков несколько.

Ну ок, только старое поле я все же переименую, будет что-нибудь типа "Коды языков".

Flasher wrote:
А по дефолтному языку так и не вышло? Ты вроде там способ нашёл какой-то.

Вроде именно про дефолтный речи не было. Посмотрю что там.

Flasher wrote:
Не сделал?

Еще нет, пока только конфигом занимался.

Flasher wrote:
Тоже пока не реализовано.

Это не в ближайшей версии точно, может в следующей.

Flasher wrote:
Не исправил заголовок.

Мда. Теперь точно исправил Very Happy

#546:  Author: FlasherLocation: Москва PostPosted: Thu Jul 18, 2019 14:01
    —
Loopback wrote:
Ну это всё не за один день делалось, а последние несколько Smile
Я уж догадывался. Но можно было и порциями. Wink

Loopback wrote:
Забыл, перекачай файл по той же ссылке.
Забрал. В MediaInfo.lng не вижу MBAFF.

Loopback wrote:
Ну ок, только старое поле я все же переименую
Ладно. А вот '|' можно заменить на ' ,'.


Loopback wrote:
Вроде именно про дефолтный речи не было. Посмотрю что там.
 Ну, я судил по ходу обсуждения:


Loopback wrote:
Еще нет, пока только конфигом занимался.
Так "Да" был ответом на:
Flasher wrote:
А ТС автоматически добавляет сравнительные опции для числовых типов?
Я был уверен, что все сведётся только к правке конфига.

Loopback wrote:
Это не в ближайшей версии точно
Жаль. Sad

Loopback wrote:
Мда. Теперь точно исправил Very Happy
Но не по обновлённой ссылке. Wink

#547:  Author: Loopback PostPosted: Thu Jul 18, 2019 15:01
    —
Flasher wrote:
В MediaInfo.lng не вижу MBAFF.

Это же вроде аббревиатура, надо его переводить? Добавить несложно.
Flasher wrote:
А вот '|' можно заменить на ' ,'.

Кстати, интересно, а откуда вообще этот символ взялся? Разделитель должен быть заданный в параметре MultiSeparator. Баг...

Flasher wrote:
Ну, я судил по ходу обсуждения

Последняя фраза касалась вывода 1,2,3 и т.д. потока. С определением дефолтного потока всё сильно сложнее.
Flasher wrote:
Я был уверен, что все сведётся только к правке конфига.

Не, нужно добавлять поддержку float полей в плагине.

#548:  Author: FlasherLocation: Москва PostPosted: Thu Jul 18, 2019 15:23
    —
Loopback wrote:
надо его переводить?
Ну, да, хотелось бы уровнять именования. Я же не просто так в скобках пример перевода приводил.
Loopback wrote:
Кстати, интересно, а откуда вообще этот символ взялся?
Если твой пример с "en|ru..." вымышленный, то ниоткуда. Smile
Loopback wrote:
Последняя фраза касалась вывода 1,2,3 и т.д. потока.
Хм. На тот момент я бы точно не догадался.

Loopback wrote:
С определением дефолтного потока всё сильно сложнее.
Это было понятно. Но если на ресурсах не особо скажется, то я бы не отказался возыметь такой бонус.

Loopback wrote:
Не, нужно добавлять поддержку float полей в плагине.
Понял.

Жду правок, в общем.

#549:  Author: Loopback PostPosted: Thu Jul 18, 2019 22:24
    —
Flasher wrote:
Если твой пример с "en|ru..." вымышленный, то ниоткуда.

Не, тут самый настоящий баг. Исправил для следующей версии.

Flasher wrote:
Но cразу вылезла ошибка внутри окна плагина:

Найди строчку в скрипте и удали:

Code:

LineAddText(Get('Audio_Language_List', 'General'), StrPart(Get('Audio_Language_List', 'General'), ' / ', 2));

Тестовая была, она не нужна.

#550:  Author: FlasherLocation: Москва PostPosted: Fri Jul 19, 2019 00:15
    —
Loopback
Ага, помогло.

Loopback wrote:
Flasher wrote:
В конфиге стоит все табы на пробельные отступы заменить и концевые пробелы убрать.

Ок.
Пока не ОК.

Слушай, а почему бы в раскрывающихся списках полей не убрать дубликат и прописать его здесь: <по умолчанию: поле> ?
Это сразу -12 полей. Тем более, что пользователю не придётся экспериментировать с дефолтными значениями.

#551:  Author: Dimsok PostPosted: Wed Jul 24, 2019 12:17
    —
Возможно ли производить замену в выводимом результате? Например, "/" точками. Пробовал с узлами списков, но тогда вообще ничего не отображалось.

#552:  Author: FlasherLocation: Москва PostPosted: Wed Jul 24, 2019 12:32
    —
Dimsok wrote:
выводимом
Где? Если в колонках и подсказках, то см. help_ru.chm > Скриптинг > Функции > Строчные.

#553:  Author: Dimsok PostPosted: Wed Jul 24, 2019 13:09
    —
В тултипах например. В музыкальных файлах выводит текст лирики с символом новой строки. Интересно, возможно ли его убирать (замещать).

#554:  Author: FlasherLocation: Москва PostPosted: Wed Jul 24, 2019 13:13
    —
Я же написал, где смотреть. StrTrim, StrReplace в помощь.

#555:  Author: Loopback PostPosted: Wed Jul 24, 2019 13:50
    —
Flasher wrote:
Слушай, а почему бы в раскрывающихся списках полей не убрать дубликат и прописать его здесь: <по умолчанию: поле> ?

Не очень понял. Поле "<default>" я не создаю, его создает тотал. Если ты об этом.

#556:  Author: FlasherLocation: Москва PostPosted: Wed Jul 24, 2019 14:28
    —
Loopback
И перевод и DefaultViewMode под него никак не подстроить?

#557:  Author: Loopback PostPosted: Wed Jul 24, 2019 15:31
    —
Flasher
Мы не о разном говорим? DefaultViewMode - это вообще только к листеру относится.

#558:  Author: FlasherLocation: Москва PostPosted: Wed Jul 24, 2019 16:05
    —
Loopback
Нет, о том же. Я предполагал, что он тоже какое-то влияние оказывает. Если нет, то что насчёт перевода?

#559:  Author: Loopback PostPosted: Wed Jul 24, 2019 19:55
    —
Flasher wrote:
Если нет, то что насчёт перевода?

Что переводить-то? В русской версии он и так "<По умолчанию>".

#560:  Author: FlasherLocation: Москва PostPosted: Wed Jul 24, 2019 20:09
    —
Loopback
Я спрашиваю про саму возможность подгонять <default> под каждый раскрывающийся список, вставляя рядом название дефолтного поля. Её нет?

#561:  Author: Loopback PostPosted: Wed Jul 24, 2019 20:31
    —
Flasher wrote:
Её нет?

Полагаю что нет, посмотри другие плагины, везде так же. Наверно, если бы такая возможность была, ее бы давно использовали.

#562:  Author: FlasherLocation: Москва PostPosted: Wed Jul 24, 2019 20:46
    —
Loopback wrote:
Наверно, если бы такая возможность была, ее бы давно использовали.
Скорее всего. Не думал об этом.

#563:  Author: Dimsok PostPosted: Thu Aug 01, 2019 05:57
    —
Просьба привести пример для работы с StrReplace.

<source name="Lyrics" field="Lyrics"/>

<column name="Lyrics">Lyrics</column>

Вывожу лирику с помощью этих строк.

К примеру, пробую так:
<column name="Lyrics">
<unit name="replace" type="script">Output:=StrReplace(Output, 'Title', '2');</unit>
<![CDATA[
Output:='';
]]>
</column>

Но ничего не заменяется.

#564:  Author: Loopback PostPosted: Sat Aug 03, 2019 12:38
    —
Dimsok wrote:
К примеру, пробую так

Не совсем правильно. Лучше попробовать вот так:
Code:
<source name="Lyrics" field="Lyrics"/>
...
<column name="Lyrics">
  <unit name="replace" type="script">Output:=StrReplace(Lyrics, 'Title', '2');</unit>
</column>

Не знаю, какая задача стоит, в этом случае в строке будут заменены все слова Title на 2. Первым параметром нужно использовать переменную с исходной строкой (в данном случае Lyrics, это имя источника).

#565:  Author: Dimsok PostPosted: Sun Aug 04, 2019 02:19
    —
Я так пробовал, но в этом случае лирика вообще не отображается. А надо, чтобы при наличии заданных значений (в данном примерем Title), они заменялись (здесь 2). Или Flasher ввёл в заблуждение, и это невозможно?

#566:  Author: FlasherLocation: Москва PostPosted: Sun Aug 04, 2019 08:31
    —
Dimsok wrote:
Или Flasher ввёл в заблуждение, и это невозможно?
Тебе сам автор плагина приводит пример с заменой части выводимого текста, но во всём виноват почему-то Flasher? В разделе Скриптинг справки первое предложение гласит:
Quote:
Общие понятия

Написание скриптов позволяет полностью изменить вывод информации под ваши нужды.
StrReplace, как и любая другая функция, работает с возвращаемой по умолчанию информацией.

Если тебе нужно указывать переменную со значением из другого поля, то так и пиши (без расчёта на телепатический модуль). И свой файл с лирикой скинуть бы не помешало для начала.

#567:  Author: Dimsok PostPosted: Mon Aug 05, 2019 03:44
    —
Quote:
И свой файл с лирикой скинуть бы не помешало

https://yadi.sk/d/YcbirhCTz77q_g

#568:  Author: FlasherLocation: Москва PostPosted: Tue Aug 06, 2019 04:04
    —
А без замены у тебя вывод есть? У меня нет.
Code:
<column name="Lyrics">Lyrics</column>

#569:  Author: Dimsok PostPosted: Tue Aug 06, 2019 04:10
    —
Есть, причём и синхронизированной и несинхронизированной. Так, как это отображается в консольной Mediainfo, где несинхронизированная выводится в поле Lyrics, а синхронизированная - LYRICS.

Если это имеет значение, tcmediainfo 0.7.4.0

#570:  Author: FlasherLocation: Москва PostPosted: Tue Aug 06, 2019 04:18
    —
О. Ну, ты обновись сперва.

#571:  Author: Dimsok PostPosted: Tue Aug 06, 2019 04:24
    —
Quote:
О. Ну, ты обновись сперва.

Чтобы у меня тоже перестало показывать? Very Happy

Добавлено спустя 2 минуты:

К тому же и в документации этой версии значилась возможность подобной замены.

#572:  Author: FlasherLocation: Москва PostPosted: Tue Aug 06, 2019 04:34
    —
Можно временно обновиться для синхронизации тестов.
А MediaInfo.dll какой там версии?

Dimsok wrote:
К тому же и в документации этой версии значилась возможность подобной замены.
А в более современной типа не значится? Very Happy

#573:  Author: Dimsok PostPosted: Tue Aug 06, 2019 04:42
    —
MediaInfo 17.12.0.0.

#574:  Author: FlasherLocation: Москва PostPosted: Tue Aug 06, 2019 04:47
    —
Вообще-то там 18.12. Та же, что в последней.

#575:  Author: Dimsok PostPosted: Tue Aug 06, 2019 04:57
    —
Их обновлять замучаешься, каждый день добавляются.

Ты для начала сделай, чтоб просто выводилось, безо всяких замен Very Happy .

#576:  Author: FlasherLocation: Москва PostPosted: Tue Aug 06, 2019 05:07
    —
С текущим xml не выводит и на твоей версии...

#577:  Author: Dimsok PostPosted: Tue Aug 06, 2019 05:16
    —
Странно. А воообще выводит в самой Mediainfo?

#578:  Author: FlasherLocation: Москва PostPosted: Tue Aug 06, 2019 05:30
    —
Я ещё сразу на wlx проверял. Там всё в порядке.

#579:  Author: Dimsok PostPosted: Tue Aug 06, 2019 05:46
    —
А эти замены на листерную часть плагина не влияют?

#580:  Author: FlasherLocation: Москва PostPosted: Tue Aug 06, 2019 06:21
    —
Конкретно эти идут до <listeroptions>, поэтому — нет.

#581:  Author: Loopback PostPosted: Fri Aug 09, 2019 23:36
    —
Конфиг + тестовая версия.

Относительно последней тестовой версии от 17 июля:

- WLX: исправлено масштабирование больших обложек
+ WDX: coltype теперь может быть применен к единицам (с ограничениями, см. документацию)
+ WDX: добавлен тип колонки ft_numeric_floating
- исправлен баг, из конфига не читался параметр MultiSeparator

Надеюсь, теперь уже близко к финалу Smile

#582:  Author: FlasherLocation: Москва PostPosted: Sat Aug 10, 2019 02:34
    —
Loopback
Смотря что называть финалом. Релиза или ... Wink
Я не оставляю надежду по внедрению дефолтного яз. потока.
Ну, и обещанный переход с ListLoadNext жду, конечно.

Loopback wrote:
+ WDX: добавлен тип колонки ft_numeric_floating
Хорошо! Но только как-то совсем избирательно. У этих нет:

Дорожка
Сезон
Часть
Число кадров
Соотношение сторон: числовое
Пропорции пикселя
Бит/пиксель
Частота сэмплирования
Разрешение
Число каналов

#583:  Author: Loopback PostPosted: Sat Aug 10, 2019 13:09
    —
Flasher wrote:
Релиза или ...

Релиза. А то так можно в вечную бету скатиться.

Flasher wrote:
Я не оставляю надежду по внедрению дефолтного яз. потока.
Ну, и обещанный переход с ListLoadNext жду, конечно.

Первое пока вряд ли, второе не в ближайшей версии, я же писал.

Flasher wrote:
Дорожка
Сезон
Часть
Число кадров
Частота сэмплирования
Число каналов

Наверно тут нет необходимости float, можно и целый тип.
Flasher wrote:

Разрешение

1920х1080 - как тут применить числовой тип?
Flasher wrote:

Соотношение сторон: числовое

Вот тут не всё просто. Тип теперь единице присвоить можно, но ТС для операций в поиске может использовать только тип, присвоенный колонке. А присвоенный единице будет использоваться только в панелях.

#584:  Author: FlasherLocation: Москва PostPosted: Sat Aug 10, 2019 14:17
    —
Loopback wrote:
Релиза. А то так можно в вечную бету скатиться.
Ясно. Тогда надо ковырнуть chm.
Loopback wrote:
Первое пока вряд ли
Твоё "пока" оставляет надежду. Wink А можешь сейчас хотя бы понятный алгоритм поиска изложить?
Loopback wrote:
Наверно тут нет необходимости float, можно и целый тип.
И для разрешения тоже можно.
Loopback wrote:
1920х1080 - как тут применить числовой тип?
Разрешение есть только в аудио-блоке. А ты приводишь "Размер кадра" из видео-блока.
Loopback wrote:
А присвоенный единице
Что понимается под единицей?

Кстати, реально из поиска убрать колонку "-" или сделать невыбираемой?

Тут столкнулся с ситуацией, когда для некоторых файлов в некоторых колонках плагин возвращает &lt;empty&gt;. Если для всего списка видео активной панели создать в другом томе диска или на другом диске символические ссылки в некой папке, то при в просмотре тех же колонок баг в ней не наблюдается.

#585:  Author: Loopback PostPosted: Sun Aug 11, 2019 00:28
    —
Flasher wrote:
А можешь сейчас хотя бы понятный алгоритм поиска изложить?

Сделать источники для значений поля "Default" всех аудиопотоков, либо собрать их все в один. Дальше скриптом пройти по этим значениям, запомнить индекс того, там где будет "Yes". Потом выделить из списка языков нужный по этому индексу.

Можешь хоть сейчас себе такое сделать, но не в дефолтный конфиг.

Flasher wrote:
А ты приводишь "Размер кадра" из видео-блока.

Да, перепутал.

Flasher wrote:
Что понимается под единицей?

Code:

Вот эти, например:
<column name="Aspect Ratio">
   <unit name="Proportion">VideoDisplayARStr</unit>
   <unit name="Numeric">VideoDisplayAR</unit>
</column>

Тотал в диалоге поиска может использовать только тип coltype, задаваемый в узле column. Те, что в unit, будут работать только в панелях.

Flasher wrote:
Кстати, реально из поиска убрать колонку "-" или сделать невыбираемой?

Только убрать узлы <separator> из конфига.

Flasher wrote:
Тут столкнулся с ситуацией, когда для некоторых файлов в некоторых колонках плагин возвращает &lt;empty&gt;.

Это не баг, а фича © Заглушка <empty> подставляется, когда добавляешь в конфиг источники, а для имеющихся файлов в добавленных источниках нет данных.

Тут дело не в самих файлах. Когда ты создаёшь ссылки, меняется путь файла и информация загружается заново, соответственно, вместо заглушки подставляются реальные данные. Можно DataAutoUpdate включить, чтобы данные автоматом обновлялись.

#586:  Author: FlasherLocation: Москва PostPosted: Sun Aug 11, 2019 01:41
    —
Loopback wrote:
запомнить индекс того, там где будет "Yes".
А что именно должно возврашать Yes? Get?
Loopback wrote:
Те, что в unit, будут работать только в панелях.
А как-то скрытно продублировать их нельзя?
Loopback wrote:
Только убрать узлы <separator> из конфига.
Тогда разделитель и из диалога "Выбор поля плагина" исчезнет? Этого нужно избежать.

Loopback wrote:
когда добавляешь в конфиг источники
В конфиг? Может, в базу?
Loopback wrote:
а для имеющихся файлов в добавленных источниках нет данных.
Т.е. с отключённым автообновлением разные наборы колонок для тех же групп файлов применять нельзя? Я наткнулся на это через поиск по полю и вывод на панель, если что.
И это относится только в показу в колонках? Или в подсказках тоже будут дыры?

Тестировал вывод лирики, кстати? У меня так и не получилось. И что, если для подсказок некие символы менять на '\n'? Тотал поймёт, что нужен перевод строки?

#587:  Author: Loopback PostPosted: Sun Aug 11, 2019 12:52
    —
Flasher wrote:
А что именно должно возврашать Yes? Get?

Тут же не листер, Get не работает. Нужно создать источник(и) по полю Default для всех потоков аудио.
Flasher wrote:
А как-то скрытно продублировать их нельзя?

Что значит продублировать? Плагин по запросу тотала возвращает данные и тип данных, который может отличаться от изначально заданного для колонки. Дальше я уже ничего не контролирую.
Flasher wrote:
Тогда разделитель и из диалога "Выбор поля плагина" исчезнет? Этого нужно избежать.

Исчезнет. Не избежать. В Тотале вообще-то не предусмотрены сепараторы, это просто такое же поле, как другие.
Flasher wrote:
В конфиг? Может, в базу?

Ну ты же базу напрямую не редактируешь? Добавляешь в конфиг, в базе они потом создаются.
Flasher wrote:
Т.е. с отключённым автообновлением разные наборы колонок для тех же групп файлов применять нельзя?

Почему нельзя? Можно, но без включенного автообновления обновляться они автоматически не будут.
Панели, подсказки - без разницы. Есть данные в базе - будет показано, нет данных - не будет.
Flasher wrote:
Тестировал вывод лирики, кстати? У меня так и не получилось. И что, если для подсказок некие символы менять на '\n'? Тотал поймёт, что нужен перевод строки?

Нет, я думал вы там уже пришли к чему-то. Проверил, лирика из файла отображается, но коряво, конечно.

Переносы наверно должен понять, они же используются в синтаксисе подсказок. Но это не точно. Не работают.

#588:  Author: FlasherLocation: Москва PostPosted: Sun Aug 11, 2019 15:57
    —
Loopback wrote:
Нужно создать источник(и) по полю Default для всех потоков аудио.
Как? В column есть выжимка по unit. А в source что?
И что будет идентификатором для потоков? Как мне дальше не/получить Yes? Во всём конфиге это слово фигурирует только в отношении листерного Get. А в справке про него вообще ни слова.

Loopback wrote:
Что значит продублировать?
Указать с каждым из типов.

Loopback wrote:
Не избежать.
Тогда проехали.

Loopback wrote:
Почему нельзя? Можно, но без включенного автообновления обновляться они автоматически не будут.
Нельзя — в фигуральном смысле. Т. е. теряется КПД от такого подхода.
Но угловые скобки в любом случае в порядок привести стоит.

Loopback wrote:
Добавляешь в конфиг, в базе они потом создаются.
А, не о тех источниках подумал.

Loopback wrote:
Проверил, лирика из файла отображается, но коряво, конечно.
Добавляю по строчке:
Quote:
    <source name="AudioResolution" field="BitDepth" context="Audio"/>
    <source name="Lyrics" field="Lyrics" context="Audio"/>

...
    <column name="Resolution">AudioResolution</column>
    <column name="Lyrics">Lyrics</column>
Ничего в колонку/подсказку по [=tcmediainfo.Lyrics] не выводится. Confused

Loopback wrote:
Не работают.
А если на символы CR/LF менять?

Забыл написать — в конфиге на нескольких строках в отступах пробелы остались.

#589:  Author: Loopback PostPosted: Sun Aug 11, 2019 20:14
    —
Flasher wrote:
Как? В column есть выжимка по unit. А в source что?

Типа такого. Не тестировал, кроме того тут по идее еще Forced надо учитывать.
Code:

<source name="DefStream" field="Default" context="Audio" stream="*"/>
...
<column name="DefLang" type="script">
<![CDATA[
idx := 0;
for i := 1 to AudioStreamCount do
begin
  res := StrPart(DefStream, ' / ', i);
  if (res = 'yes') then
  begin
    idx:=i;
    break;
  end;
end;
if idx > 0 then Output:=StrPart(AudioLanguageList, ' / ', idx);
]]>
</column>


Flasher wrote:
Указать с каждым из типов.

Не понял, что где указывать.
Flasher wrote:
Нельзя — в фигуральном смысле. Т. е. теряется КПД от такого подхода.
Но угловые скобки в любом случае в порядок привести стоит.

Да ничего тут не теряется. Скобки поправлю, это последствие исправления бага с MultiSeparator.
Flasher wrote:
Ничего в колонку/подсказку по [=tcmediainfo.Lyrics] не выводится

Lyrics находится в глобальном контексте:
Code:

   <source name="Lyrics" field="Lyrics"/>
       ...
   <column name="Lyrics">
     <unit name="replace" type="script">Output:=StrReplace(Lyrics, '/ ', '');</unit>
   </column>

Flasher wrote:
А если на символы CR/LF менять?

Попробую, без правки плагина пока служебные символы вставить нельзя.

#590:  Author: FlasherLocation: Москва PostPosted: Sun Aug 11, 2019 22:52
    —
Loopback wrote:
Не тестировал, кроме того тут по идее еще Forced надо учитывать.
Forced — это что?
Code:
  res := StrPart(DefStream, ' / ', i);
  if (res = 'yes') then
Так. А что должен возращать отдельно DefStream? Мне ничего не выдаёт. Соответственно, и со скриптом не работает. По логике StrPart там должно быть что-то типа "no / yes / no".

Loopback wrote:
Не понял, что где указывать.
Ладно, не суть. Тогда лучше убрать unit-ы и сделать два раздельных поля.

Loopback wrote:
Да ничего тут не теряется.
Как же. Сам пишешь:
Loopback wrote:
без включенного автообновления обновляться они автоматически не будут.


Loopback wrote:
Lyrics находится в глобальном контексте:
А, ясно. Как тут не хватает регулярок, чтобы от Title: ... artist: ... album: ... music : ... lyrics: избавиться. Может, внедришь?

Loopback wrote:
Попробую
ОК.

#591:  Author: Loopback PostPosted: Mon Aug 12, 2019 12:43
    —
Flasher wrote:
Мне ничего не выдаёт.

Наверно, тестируешь на mp4? Это фича mkv, на других ничего не будет выдаваться. Forced - принудительное включение потока, я так понимаю, в первую очередь для субтитров сделано.
Flasher wrote:
Тогда лучше убрать unit-ы и сделать два раздельных поля.

Не в дефолтном конфиге.
Flasher wrote:
Может, внедришь?

Не знаю. Без поддержки массивов кроме замены ничего вменяемого из этого не выйдет.
Flasher wrote:
ОК

Замена на CR/LF не работает.

#592:  Author: FlasherLocation: Москва PostPosted: Wed Aug 14, 2019 05:51
    —
Loopback wrote:
Наверно, тестируешь на mp4? Это фича mkv, на других ничего не будет выдаваться.
И на mkv тоже тихо.
Loopback wrote:
Без поддержки массивов кроме замены ничего вменяемого из этого не выйдет.
Так замена и нужна.
Loopback wrote:
Замена на CR/LF не работает.
Жаль.

P.S.: Технические неисправности с машиной возникли. Не мог раньше ответить.

#593:  Author: Loopback PostPosted: Thu Aug 15, 2019 22:43
    —
Flasher wrote:
И на mkv тоже тихо.

Сравнение вот так запиши, в остальном работает.
Code:
if (StrLower(res) = 'yes') then


Flasher wrote:
Так замена и нужна.

Посмотрим, но не обещаю.

#594:  Author: FlasherLocation: Москва PostPosted: Thu Aug 15, 2019 23:12
    —
Loopback wrote:
Сравнение вот так запиши, в остальном работает.
Да. Теперь показывает. Не на всех mkv, как и не на всех mp4/m4v, кстати.
Забил в поиск ^N.+ по полю DefSream. Оказалось, что есть переведённые видео вообще без Yes (No / No[ / No]). И их куда больше, чем "No[ / Yes / No]", которых вообще единицы. Но в подавляющем большинстве Yes стоит первым.

#595:  Author: Loopback PostPosted: Fri Aug 16, 2019 21:07
    —
Конфиг + тестовая версия.

Косяк с &lt;empty&gt; исправил, но данные в базе теперь надо надо обновить.

Всё, завтра-послезавтра релиз.

#596:  Author: FlasherLocation: Москва PostPosted: Sun Aug 18, 2019 23:33
    —
Loopback wrote:
Посмотрим, но не обещаю.
В текущей версии ждать не стоит?

Бага нет. Числовые типы все (кроме несогласованного) на месте.
Правки хелпа — в ЛС.


Add: Уже не первый раз сталкиваюсь с ситуацией, когда при 28 добавленных колонках данные для последней (например, "Коды языков Аудио") не отображались. После добавки 29-й стали отображаться, но и в новой (например, "Всё аудио строкой") попало всё из предыдущей. Confused

#597:  Author: Loopback PostPosted: Tue Aug 20, 2019 00:16
    —
Flasher wrote:
В текущей версии ждать не стоит?

Нет. Встроенный дельфийский использовать не хочу, слишком тяжелый он для одной функции. Однако нашелся еще один вариант, неожиданно обновившийся после многих лет мой любимый TRegExpr. Но его надо будет тестировать, в частности по поддержке юникода и х64, поэтому не в этой версии точно.

Flasher wrote:
Уже не первый раз сталкиваюсь с ситуацией, когда при 28 добавленных колонках данные для последней (например, "Коды языков Аудио") не отображались. После добавки 29-й стали отображаться, но и в новой (например, "Всё аудио строкой") попало всё из предыдущей.

Что-то вот так сразу не смог повторить. Да и лирику я когда тестировал фактически повторил описанный порядок, тоже не было аномалий.

#598:  Author: FlasherLocation: Москва PostPosted: Tue Aug 20, 2019 01:13
    —
Loopback wrote:
поэтому не в этой версии точно.
ОК. Подожду.

Loopback wrote:
Что-то вот так сразу не смог повторить.
Без отладочных механизмов я тебе вряд ли что-то новое напишу. Кроме:
Code:
      <MemoryBase>False</MemoryBase>
      <UseBase>True</UseBase>

Кстати, косяк с TCMediaInfo.exe удалось побороть?

#599:  Author: Loopback PostPosted: Tue Aug 20, 2019 13:59
    —
Flasher wrote:
Кстати, косяк с TCMediaInfo.exe удалось побороть?

Не знаю, у меня он ни разу не проявлялся. Попробуй вариант из сегодняшнего релиза, кое-что поправил, что потенциально могло влиять, но опять же, для меня ничего не изменилось.

#600:  Author: FlasherLocation: Москва PostPosted: Tue Aug 20, 2019 17:06
    —
Loopback
Попробовал. То же самое. В общем, заменил vbs-ом на 79 байт:
Code:
CreateObject("WScript.Shell").Run "rundll32 TCMediaInfo.wdx,OpenConfigDialog"

Вообще диалог хорошо бы ужать до рамок первой страницы с кнопкой 'Закрыть' под ними. Рамки, кстати, гуляют по ширине.

По правкам хелпа ты кое-что упустил. См. в ЛС.

#601:  Author: Loopback PostPosted: Tue Aug 20, 2019 20:24
    —
Flasher wrote:
Попробовал. То же самое. В общем, заменил vbs-ом

Заменить-то можно и батником, хотелось бы чтобы экзешник работал. Какая у тебя система? У меня сейчас на Win7 x64 и Win10 х64 проблем нет. Может еще на чем-то пробовать надо...

Flasher wrote:
Вообще диалог хорошо бы ужать до рамок первой страницы с кнопкой 'Закрыть' под ними. Рамки, кстати, гуляют по ширине.

Я не вижу, что куда ужимать, всё симметрично. Вот рамка на один пиксель съехала это да, серьёзно Laughing

#602:  Author: Skif_off PostPosted: Tue Aug 20, 2019 21:17
    —
Loopback wrote:
Однако нашелся еще один вариант, неожиданно обновившийся после многих лет мой любимый TRegExpr. Но его надо будет тестировать, в частности по поддержке юникода и х64, поэтому не в этой версии точно.

Вроде этот компонент используется в самом ТС.

#603:  Author: FlasherLocation: Москва PostPosted: Tue Aug 20, 2019 21:38
    —
Loopback wrote:
Заменить-то можно и батником
Мелькающая консоль — это несерьёзно.
Loopback wrote:
Какая у тебя система?
7 x32 Max с PP2-ядром.

Loopback wrote:
Я не вижу, что куда ужимать, всё симметрично.


#604:  Author: Loopback PostPosted: Tue Aug 20, 2019 22:17
    —
Skif_off wrote:
Вроде этот компонент используется в самом ТС.

Возможно, но подозреваю что Гислер его мог и сам доработать.
Flasher wrote:
Мелькающая консоль — это несерьёзно.

Вот именно, поэтому экзешник. Не могу же я vbs-скриптом плагин укомплектовать Smile
Flasher wrote:
7 x32 Max с PP2-ядром.

На 32 битных не проверял... И еще, "PP2-ядром" - это про что? Гугл не знает.

По картинке теперь все ясно, DPI > 96. Странно, вроде должен был проверить.

#605:  Author: FlasherLocation: Москва PostPosted: Tue Aug 20, 2019 22:41
    —
Loopback wrote:
Не могу же я vbs-скриптом плагин укомплектовать
Можно ярлыком с относительным путём. Только иконку придётся в ресурсы плагина добавить.
Loopback wrote:
И еще, "PP2-ядром" - это про что?
PatchPae2.
Loopback wrote:
По картинке теперь все ясно, DPI > 96.
Не сообразил подсказать. AppliedDPI=78. Масштаб: 125% (средний).

#606:  Author: Loopback PostPosted: Tue Aug 20, 2019 23:39
    —
Flasher wrote:
Можно ярлыком с относительным путём. Только иконку придётся в ресурсы плагина добавить.

Нуу, можно и так, конечно. Но все равно не то.
Flasher wrote:
PatchPae2

Посмотрел, маловероятно, что это может повлиять, но как вариант учту.

#607:  Author: FlasherLocation: Москва PostPosted: Tue Aug 20, 2019 23:49
    —
Loopback wrote:
Посмотрел, маловероятно, что это может повлиять
Да это и не влияет, я просто расшифровал по твоей просьбе.

#608:  Author: Lisabon PostPosted: Wed Aug 21, 2019 20:12
    —
Loopback
По версии wdx tcmediainfo 1.0.2.
1. При использовании wdx-плагина, на аудио файлах, например, mp3, на полях:
Дорожка
Сезон
Часть
Разрешение
Число кадров
Число каналов
Частота кадров

показывает значение -1, если нет данных из файла.

2. При использовании wdx-плагина, на видео файлах, например, mkv, mp4, на полях:
Общий Битрейт
Битрейт видео

показывает 0 на KBps и MBps. Битрейт показывает на Bps.

Битрейт аудио показывает 0 на KBps. Битрейт показывает на Bps.

#609:  Author: Loopback PostPosted: Wed Aug 21, 2019 23:38
    —
Lisabon
1. Да, это в полях, у которых изменили тип на числовой. -1 это ошибочно осталось. Планировался 0, хотя сейчас я не уверен что и это правильно, ведь если значение поле пустое - значение неопределенное. Наверно, правильнее будет сообщать тоталу, что значение поля пустое.

2. Да, вижу. Причина в том, что библиотека всегда выдает плавающие значения с точкой, а скрипт - как настроено в системе, у нас с запятой. Раньше выдавал текстом - это было незаметно, а когда полю присвоили плавающий тип - вылезла проблема конвертирования. Поправлю. Пока можно убрать из этих полей coltype="ft_numeric_floating".

#610:  Author: FlasherLocation: Москва PostPosted: Thu Aug 22, 2019 00:14
    —
Loopback wrote:
Наверно, правильнее будет сообщать тоталу, что значение поля пустое.
Определённо. Тоже натыкался на этот -1, не придав сперва значения.

Loopback wrote:
Пока можно убрать из этих полей coltype="ft_numeric_floating".
Или сразу StrReplace применить.

#611:  Author: Loopback PostPosted: Thu Aug 22, 2019 01:04
    —
Flasher wrote:
Или сразу StrReplace применить.

Лучше все же изнутри исправить конвертирование.

#612:  Author: Loopback PostPosted: Thu Sep 12, 2019 20:01
    —
Flasher wrote:
Кстати, косяк с TCMediaInfo.exe удалось побороть?

В сегодняшнем релизе поменял еще экзешник, попробуй, как с этим заработает.

#613:  Author: FlasherLocation: Москва PostPosted: Thu Sep 12, 2019 22:34
    —
Loopback
Падает. А что касается косметики, то убралась только лишняя часть справа, в остальном — по-старому.
Кэш с wdx переделал, как хотел?

#614:  Author: Loopback PostPosted: Fri Sep 13, 2019 11:37
    —
Flasher wrote:
Падает.

Ок, значит дело не совсем в экзешнике. Но куда копать пока неясно. Есть еще мысль, проверю.
Flasher wrote:
А что касается косметики, то убралась только лишняя часть справа, в остальном — по-старому.

Проверил на разных коэффициентах, везде выглядит нормально... Вот так на 125%.
Flasher wrote:
Кэш с wdx переделал, как хотел?

Давно уже, некогда пока привести к виду, пригодному к выкладыванию.

#615:  Author: FlasherLocation: Москва PostPosted: Fri Sep 13, 2019 12:27
    —
Loopback wrote:
Есть еще мысль, проверю.
Проверь с KernelBase.dll.
Loopback wrote:
Вот так на 125%.
Ну, правильно. Где я соврал относительно указаний на моём скриншоте? Разве что ещё выступ в маленькой рамке сверху пофиксен.
Loopback wrote:
Давно уже
Тогда, наверное, следующий релиз уже с ListLoadNext стоит выкладывать.

#616:  Author: Loopback PostPosted: Fri Sep 13, 2019 14:52
    —
Flasher wrote:
Проверь с KernelBase.dll.

Не уверен, что можно просто так взять и подменить системные библиотеки. Ну и как минимум надо 32 битную семерку еще ставить. На самом деле вряд ли тут виновата именно эта библиотека.

Сегодня-завтра попробую кое-что изменить, возможно поможет.
Flasher wrote:
Ну, правильно. Где я соврал относительно указаний на моём скриншоте? Разве что ещё выступ в маленькой рамке сверху пофиксен.

Ну ты пишешь "убралась только лишняя часть справа, в остальном — по-старому". Логично предположить, что сползание рамки влево на список - осталось, а это и была главная проблема. Разница в пиксель - мелочь, наличие пространства снизу - это не баг, а так и задумано.
Flasher wrote:
Тогда, наверное, следующий релиз уже с ListLoadNext стоит выкладывать.

Я уже писал раньше, что это требует переписывания приличной части кода. Оно в планах, но к какому конкретно релизу - не знаю.

#617:  Author: FlasherLocation: Москва PostPosted: Fri Sep 13, 2019 15:25
    —
Loopback wrote:
Ну и как минимум надо 32 битную семерку еще ставить. На самом деле вряд ли тут виновата именно эта библиотека.
Попробуй их с kernel32.dll положить в папку с TCMediaInfo.wdx и посмотреть, что произойдёт в 32-битном ТС.

Loopback wrote:
а это и была главная проблема. Разница в пиксель - мелочь, наличие пространства снизу - это не баг, а так и задумано.
Мелочь бросается в глаза и окно не красит. Разницы между лишним пространством снизу и слева не вижу. Два сапога пара. Смысл задумки неясен.

Loopback wrote:
Я уже писал раньше, что это требует переписывания приличной части кода. Оно в планах, но к какому конкретно релизу - не знаю.
Писал, что потребует переделки, а чего именно не писал. Релиз подразумевался вроде как текущий. Посмотри исходники CudaLister, там это есть.

#618:  Author: Loopback PostPosted: Fri Sep 13, 2019 20:21
    —
Flasher wrote:
Попробуй их с kernel32.dll положить в папку с TCMediaInfo.wdx и посмотреть, что произойдёт в 32-битном ТС.

Ничего не происходит, не цепляет их. По-моему, не прокатит такой фокус с системными библиотеками.

Flasher wrote:
Разницы между лишним пространством снизу и слева не вижу. Два сапога пара.

Разница есть, так как есть список (или дерево) слева, высота которого и определяет высоту диалога. При такой раскладке это стандартная практика, что на полупустой странице снизу остается пространство. И еще смысл задумки в том, чтобы изначально иметь запас пространства и не втискивать потом контролы (как в настройках ТС, например). Не вижу ничего хорошего в тесных интерфейсах.

Flasher wrote:
Писал, что потребует переделки, а чего именно не писал. Релиз подразумевался вроде как текущий.

Ну ок, значит так. Релиз подразумевался как не текущий на тот момент. Это значит один из следующих. Может и ближайший, как пойдет.

Flasher wrote:
Посмотри исходники CudaLister, там это есть.

Да как именно реализовывать-то вроде вопросов и не возникало...

#619:  Author: FlasherLocation: Москва PostPosted: Fri Sep 13, 2019 22:49
    —
Loopback wrote:
По-моему, не прокатит такой фокус с системными библиотеками.
Да, тут, пожалуй, подмена нужна.

Loopback wrote:
так как есть список (или дерево) слева, высота которого и определяет высоту диалога.
Так логика должна подсказывать, что урезать надо и его тоже. Не будет же он поверх нижнего края окна висеть. Laughing

Loopback wrote:
чтобы изначально иметь запас пространства и не втискивать потом контролы (как в настройках ТС, например).
Т.е. настройки ТС — это нестандартная практика? Smile Как раз с такой практикой, как у тебя, крайне трудно столкнуться. Пытаюсь вспомнить другие программы с таким "запасом", и что-то на ум ничего не приходит. Если бы это было стандартной практикой, я бы об этом и не писал. И потом, у тебя есть в планах добавлять туда какие-то новые контролы? Потом растянуть под них окно разве будет проблемой?

Loopback wrote:
Релиз подразумевался как не текущий на тот момент.
В фразе "может в следующей" на тот момент мог подразумеваться как раз текущий (крайний выложенный).

Loopback wrote:
Да как именно реализовывать-то вроде вопросов и не возникало.
Судил по неуверенности в словах:
Loopback wrote:
"Я так понимаю, это реализуется функцией ListLoadNext. Должно быть не очень сложно".
Думал, что есть шанс внедрить фичу без переписывания.

#620:  Author: Loopback PostPosted: Sat Sep 14, 2019 14:21
    —
Flasher
Хотел было начать отвечать по пунктам, но что-то мне кажется, что на эту переписку уходит слишком много времени. А всё равно каждый останется при своём мнении. Решил лучше сделать что-то более продуктивное Smile

Тестовая версия с ListLoadNext.

Заодно проверь ещё раз запуск экзешником, кое-что поменял.

#621:  Author: FlasherLocation: Москва PostPosted: Sat Sep 14, 2019 19:04
    —
Loopback
ListLoadNext работает. Спасибо! Теперь удобно. Smile Сразу по песочным часам заметил, как плагин долго (ок. 2 сек) думает перед показом инфы, чего раньше не замечал.
Экзешник (прежний) так и падает. Ну, и фиг с ним, буду через ярлык запускать, не так принципиально.

А вообще настройки отображения в диалоге были в планах?

#622:  Author: Loopback PostPosted: Sun Sep 15, 2019 22:42
    —
Flasher wrote:
Сразу по песочным часам заметил, как плагин долго (ок. 2 сек) думает перед показом инфы, чего раньше не замечал.

Задержка всегда была, разумеется. Но сейчас часы необходимы, иначе вообще непонятно, что плагин что-то делает.
Flasher wrote:
Экзешник (прежний) так и падает. Ну, и фиг с ним, буду через ярлык запускать, не так принципиально.

Жаль. Ну ладно, может еще какая мысль придет, или потом сделаю отладочную версию.
Flasher wrote:
А вообще настройки отображения в диалоге были в планах?

Ну имя функции OpenConfigDialog как бы намекает, что планы были Wink Когда - не знаю.

#623:  Author: FlasherLocation: Москва PostPosted: Mon Sep 16, 2019 02:19
    —
Loopback wrote:
Но сейчас часы необходимы, иначе вообще непонятно, что плагин что-то делает.
Грузит данные. Что ж ещё? Меня вис часов напрягает. После Ctrl+Q часы исчезают куда быстрее (до отображения), чем при переходе на следующий файл. Я бы и при переходе предпочёл не видеть часов. Опцию можно добавить?
Loopback wrote:
может еще какая мысль придет, или потом сделаю отладочную версию.
ОК.
Loopback wrote:
Когда - не знаю.
Ясно.

В прошлый раз забыл отметить по WLX.
1. Для глав кириллица идёт кракозябрами.
2. В компактных режимах если текст в левой колонке больше её фиксированной ширины, то он смешивается с текстом в правой.

#624:  Author: Loopback PostPosted: Mon Sep 16, 2019 12:47
    —
Flasher wrote:
Меня вис часов напрягает.

Без часов совсем неудобно - не видно реакции на нажатие клавиш. И мне кажется это не та фича, которая требует отдельной опции.
Flasher wrote:
1. Для глав кириллица идёт кракозябрами.

Не видел такого ни на одном файле. Вроде не должно быть, это же не теги mp3. Кинь пример.
Flasher wrote:
2. В компактных режимах если текст в левой колонке больше её фиксированной ширины, то он смешивается с текстом в правой.

Да, есть такое. Пока только можно увеличить InfoLeftMargin. Тут не так просто сделать автоматическое определение ширины, т.к. придется как-то в скрипте вычислять ширину каждой строки и находить максимальную.

#625:  Author: FlasherLocation: Москва PostPosted: Mon Sep 16, 2019 15:39
    —
Loopback wrote:
Без часов совсем неудобно - не видно реакции на нажатие клавиш.
Процесс отображения и есть реакция. Другой не требуется. Удобства в часах при 2 сек нет никакого, а раздражающий фактор есть.

Loopback wrote:
Кинь пример.
В ЛС — пачка.
Сей момент не всех mkv касается, хватает и беспроблемных.

Loopback wrote:
т.к. придется как-то в скрипте вычислять ширину каждой строки и находить максимальную.
А перевод строки в первой колонке не сможешь сделать? А то есть очень длинные строки, в итоге читабельность напрочь пропадает.

И почему-то кнопка вместо плагина открывает файл в Листере:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_EXE% /O /S=L:Ptcmediainfo
%V
wcmicons.dll,47
Видео под курсором в TCMediaInfo

#626:  Author: Loopback PostPosted: Mon Sep 16, 2019 21:00
    —
Flasher wrote:
Сей момент не всех mkv касается, хватает и беспроблемных.

Скачал пару штук, главы криво добавлены изначально. Они одинаково криво выглядят и в MediaInfo GUI, и в mkvtoolnix, и в MPC-HC. Не думаю, что тут можно что-то исправить.
Flasher wrote:
А перевод строки в первой колонке не сможешь сделать?

Нет.
Flasher wrote:
И почему-то кнопка вместо плагина открывает файл в Листере:

Не пользовался этим никогда... Но проблема нашлась быстро - расширение плагина wdx, а эта штука работает только если оно wlx. Похоже на баг ТС.

Анонс

В процессе многомесячного марафона по доработке конфига Smile постоянно появлялась мысль, что путь с задаваемыми источниками сильно ограничивает полет фантазии. Да и в целом код был слишком сложный и не очень эффективный, при увеличении количества источников эффективность падает всё больше. В результате wdx-часть была переписана с нуля.

Теперь плагин сохраняет все непустые поля, больше не нужно беспокоиться по поводу увеличения количества источников. Все значения доступны для скриптинга (работа со значениями реализована аналогично WLX). За счет оперативного кэша в памяти, после первичной загрузки из базы плагин работает быстрее. Данные дискового кэша хранятся в базе в сжатом виде, что позволяет сохранить ее размер в разумных пределах.

Понятное дело, преемственность конфига полностью сохранить не было возможности, но переделки в настройках полей минимальны. В узле источников теперь задаются только некоторые поля, которых по умолчанию нет в кэше (*/String) или для которых требуется специальная обработка. Как следствие, новую версию придется выпустить как глобальное обновление.

Пока версия имеет статус альфы, основной функционал должен работать, кое-какие дополнительные возможности пока совсем не реализованы, в частности диалог обслуживания.

Скачать

#627:  Author: FlasherLocation: Москва PostPosted: Mon Sep 16, 2019 23:59
    —
Loopback wrote:
Не думаю, что тут можно что-то исправить.
Основная масса отображает слово Глава в ANSI вместо UTF-8.
Code:
en:Глава 1
en:глава 1
Разве проблема определить кодировку?

Loopback wrote:
Нет.
А строку из второй колонки перенести на дополнительную? А то картинка такая себе:


Loopback wrote:
Не пользовался этим никогда...
Удивительно. Нужная вещь, особенно для тестов.

Loopback wrote:
а эта штука работает только если оно wlx. Похоже на баг ТС.
Привязал к относительной символьной ссылке wlx\TCMediaInfo.wlx. Результат:
Code:
Crash in plugin TCMediaInfo.wlx:ListLoadW:
Access violation at address 02E0BAFF. Read of address 0000003C
Вообще это сообщение стало часто появлятся и при стандартных вызовах. Вдобавок ещё это: Error in configuration file! Please check it's structure. Файл неважен. И после первого всплыва ошибка остаётся всюду до переоткрытия ТС. Но и после перезапуска может сразу появляться.

В альфе ряд колонок из прежнего дефолтного конфига не отображается. Не буду перечислять. Битрейт аудио, Общий битрейт, Всё видео одной строкой выдают 2Variable not found: ....

#628:  Author: Loopback PostPosted: Tue Sep 17, 2019 12:04
    —
Flasher wrote:
Разве проблема определить кодировку?

Если UTF8 еще можно определить, то попробуй определи, что было написано тут:
Code:

[]绗?01 绔?
[]绗?02 绔?
[]绗?03 绔?

Flasher wrote:
А строку из второй колонки перенести на дополнительную?

Легко, переноси. Вместо одного вызова LineAddText будет два, первый выводит заголовок, второй - данные.
Flasher wrote:
Привязал к относительной символьной ссылке wlx\TCMediaInfo.wlx. Результат:

Делал то же самое, никаких падений. Файл конфига рядом со вторым файлом есть?
Flasher wrote:
В альфе ряд колонок из прежнего дефолтного конфига не отображается.

Потому что сделан на основе не окончательной версии конфига. На это пока можно не обращать внимания.

#629:  Author: FlasherLocation: Москва PostPosted: Tue Sep 17, 2019 12:27
    —
Loopback wrote:
Если UTF8 еще можно определить
Нужно.
Loopback wrote:
то попробуй определи, что было написано тут:
Там реальный косяк. Он единственный. Больше таких не попадалось.

Loopback wrote:
Легко, переноси.
Так я тебе это предлагаю сделать. Прежде всего проверять ширину текста и в случае невмещения создавать вторую строку. Или ты считаешь, что то, что я привёл на скриншоте, — это нормальное положение вещей?

Loopback wrote:
Файл конфига рядом со вторым файлом есть?
Ага, теперь понял свою ошибку. Ну, там ещё MediaInfo.dll, Sqlite3.dll и lng ? должны быть. Проще тогда всё к wlx цеплять. Тебе, наверно, стоит заменить расширения и type=wlx в pluginst.inf.

Loopback wrote:
На это пока можно не обращать внимания.
Понятно. Тогда напиши, как конфиг будет готов.

#630:  Author: Loopback PostPosted: Tue Sep 17, 2019 13:25
    —
Flasher wrote:
Нужно.

Да что-то сомневаюсь, что прям так уж нужно. Из-за нескольких криворуко сделанных файлов придется городить целый огород и как-то вписывать эту проверку в скрипт, замедляя и так небыструю работу. Скорее всего придется добавлять отдельную функцию. И главное в чём профит? Узнать, что написано "Глава"? Все равно в плеерах отображаться будет криво.

Flasher wrote:
Прежде всего проверять ширину текста и в случае невмещения создавать вторую строку.

Посмотрим. Наверно, все же в первую очередь можно сделать динамическое положение разделителя по самой широкой строке, чтобы хотя бы не накладывалось. Остальные украшательства потом.
Flasher wrote:
Тебе, наверно, стоит заменить расширения и type=wlx в pluginst.inf.

Плагин уже идет как контентный на wincmd.ru.

Вообще для этих целей интересный подход применен в плагине Imagine. Там весь функционал в одной dll, а разные типы плагинов реализованы врапперами. Возможно, имеет смысл такой вариант, раз уж в ТС нет удобной работы с мультиплагинами в одном файле.

Flasher wrote:
Понятно. Тогда напиши, как конфиг будет готов.

Конфиг сейчас вторичен. Интересно, как в целом со стабильностью и скоростью работы.

#631:  Author: FlasherLocation: Москва PostPosted: Tue Sep 17, 2019 13:49
    —
Loopback wrote:
Из-за нескольких криворуко сделанных файлов
Это я только малую часть привёл. Их куда больше.

Loopback wrote:
Узнать, что написано "Глава"? Все равно в плеерах отображаться будет криво.
А там может быть не только "Глава", но и название. Плееры надо смотреть. Может, где-то фиксили.

Loopback wrote:
Наверно, все же в первую очередь можно сделать динамическое положение разделителя по самой широкой строке
Тогда вторая колонка в ряде случаев будет уползать слишком далеко вправо и понадобится горизонтальная прокрутка. Сейчас же у меня всё чётко в рамках размеров панели.

Loopback wrote:
Возможно, имеет смысл такой вариант, раз уж в ТС нет удобной работы с мультиплагинами в одном файле.
Было бы неплохо.

Loopback wrote:
Интересно, как в целом со стабильностью и скоростью работы.
Стабильность для wdx? Не падал ещё. Скорость замерять нечем. Может, на первый взгляд чуть быстрее стало. Хотя без ряда отсутствующих данных сравнить не с чем.

#632:  Author: INFINUM PostPosted: Sat Oct 05, 2019 12:36
    —
Парни, у меня ТС падает, когда я пытаюсь плагин использовать. Надо что-то предварительно настроить?

#633:  Author: FlasherLocation: Москва PostPosted: Sat Oct 05, 2019 17:12
    —
INFINUM
А версии и битности TC/плагина, а также версию TCMediaInfo.xml сообщить сперва не хотите?

#634:  Author: INFINUM PostPosted: Sat Oct 05, 2019 21:45
    —
Flasher
TC 9.22a x64
TCMediaInfo 1.0.3
Про версию TCMediaInfo.xml без понятия, я просто скачал архив и установил через ТС его.
Не могу ссылку на скриншот вставить, появляется сообщение: Error in configuration file. Please check it's structure.

#635:  Author: FlasherLocation: Москва PostPosted: Sun Oct 06, 2019 01:04
    —
INFINUM
Значит, как wlx ещё не ставился.
Использоваться контентный плагин может по-разному. Тут тоже конкретика нужна.

#636:  Author: INFINUM PostPosted: Sun Oct 06, 2019 22:30
    —
Flasher wrote:
Значит, как wlx ещё не ставился.

Верно, не ставился. Только как WDX.
Flasher wrote:
Использоваться контентный плагин может по-разному. Тут тоже конкретика нужна.

Мне нужно делать групповое переименование видеофайлов с подстановкой даты кодирования, которую показывает MediaInfo. Это возможно?


Last edited by INFINUM on Thu Oct 10, 2019 21:58; edited 2 times in total

#637:  Author: FlasherLocation: Москва PostPosted: Mon Oct 07, 2019 02:27
    —
INFINUM
Возможно, конечно. При каком событии в ИГП ТС схлопывается?

P.S.: Не нужно вставлять свой ник в цитаты.

#638:  Author: INFINUM PostPosted: Thu Oct 10, 2019 22:05
    —
Flasher
В групповом переименовании нажимаю кнопку плагин, выбираю tcmediainfo. После этого появляется сообщение об ошибке "Error in configuration file. Please check it's structure." и ТС "схлопывается". Такое же сообщение об ошибке появляется при установке плагина. Попробуйте на чистый оригинальный ТС поставить плагин по ссылке с wincmd.ru
PS: не думаю что это влиять может, но у меня ещё установлен MediaInfo в систему.

#639:  Author: FlasherLocation: Москва PostPosted: Thu Oct 10, 2019 22:27
    —
INFINUM
С крашем ТС при установке плагинов я не раз сталкивался. Главное тут — момент вызова.
Сравните иструментом сравнения TCMediaInfo.xml с TCMediaInfo.sample.xml. Они одинаковы?

#640:  Author: INFINUM PostPosted: Fri Oct 11, 2019 19:18
    —
Flasher
откуда TCMediaInfo.xml возьмётся, его нет, только TCMediaInfo.sample.xml

Добавлено спустя 30 минут:

Переименовал TCMediaInfo.sample.xml в TCMediaInfo.xml. Теперь сразу схлопывается при выборе в диалоге "Выбор поля плагина" tcmediainfo

#641:  Author: FlasherLocation: Москва PostPosted: Fri Oct 11, 2019 20:31
    —
INFINUM wrote:
откуда TCMediaInfo.xml возьмётся
Справку читать не пробовали?:
Описание плагина > Состав дистрибутива wrote:
TCMediaInfo.sample.xml | Исходный файл конфигурации, при первом запуске плагина на его основе будет создана рабочая конфигурация.

INFINUM wrote:
Теперь сразу схлопывается
А до этого было не сразу? ТС перезапускался?

P.S.: Про точки не забываем.

#642:  Author: INFINUM PostPosted: Fri Oct 11, 2019 21:02
    —
Flasher wrote:
при первом запуске плагина на его основе будет создана рабочая конфигурация.

Только она не создаётся. Какая проблема взять и протестировать? Это же вы разработчик этого плагина? Ладно, я понял, что ничего не получится. Я вам про плагин, вы мне про точки. Обойдусь.

#643:  Author: FlasherLocation: Москва PostPosted: Fri Oct 11, 2019 21:07
    —
INFINUM wrote:
Какая проблема взять и протестировать?
В смысле протестировать? Я им пользуюсь сто лет в обед.
INFINUM wrote:
Это же вы разработчик этого плагина?
Вы серьёзно? Первый пост топика, страница загрузки, хелп и предыдущее обсуждение на этот вопрос до сих пор не ответили?
INFINUM wrote:
Ладно, я понял, что ничего не получится.
Не получится у вас при таком отношении. Ждите автора. Но он-то (как и многие старожили) уж точно тестировал на x64. И подобное всплыло бы сразу.
INFINUM wrote:
Я вам про плагин, вы мне про точки.
О, да. Я вам про перезапуск, вы мне про "не получится"...

#644:  Author: Loopback PostPosted: Wed Oct 16, 2019 14:55
    —
INFINUM
Проверил у себя несколько раз, и с установкой из архива, и через опции - копирование конфигурации проходит успешно. Не знаю, может у вас что-то с правами файлов. Если вручную копировать TCMediaInfo.sample.xml в файл TCMediaInfo.xml в том же каталоге, не появляются ли какие-нибудь сообщения, связанные с правами доступа?

При выборе поля тоже никаких проблем не вижу.

Возможно, какая-нибудь дополнительная информация могла бы помочь, пока ничего не понятно.

#645:  Author: iglezz PostPosted: Mon Dec 23, 2019 12:39
    —
Loopback
Игнорируется установка цвета в <FieldTextColor>. Ошибка?

#646:  Author: gendalv PostPosted: Fri Apr 17, 2020 23:55
    —
а можно ли задать поиск по размеру кадра больше/меньше чем, а не по содержанию конкретного одного числа вроде 1280

#647:  Author: FlasherLocation: Москва PostPosted: Sat Apr 18, 2020 00:10
    —
gendalv
Размер кадра состоит из двух чисел с разделителем 'x', соответственно, числовой тип тут неуместен.
Для ширины и высоты делаются отдельные поля в конфиге.

#648:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Apr 18, 2020 06:26
    —
gendalv
С марта 2017 года на форуме действует прямой запрет на оформление сообщений в стиле чата — без заглавных букв и знаков препинания. Замечание.

#649:  Author: Zorro734 PostPosted: Sun Apr 19, 2020 09:15
    —
Loopback

Здравствуйте.

Подскажите плиз, как добавить 2 дополнительные колонки полезные для видео файлов ?

1) Video: CodecID/Hint (чтобы отображало: XviD)
2) Audio: CodecID/Hint (чтобы отображало: MP3)

Я пробовал сам поправить файл "TCMediaInfo.xml" но у меня ничего хорошего не получилось: пришлось назад возвращать оригинальный "TCMediaInfo.xml" и базу удалять "base.db"

Сейчас приходится подтягивать эти поля плагином "MediaInfoWDX" а хотелось бы оставить только 1 плагин.

Картинку можно глянуть тут:
http_//images.vfl.ru/ii/1587273095/ce82e1aa/30262316.png

#650:  Author: Loopback PostPosted: Wed Apr 22, 2020 17:50
    —
Zorro734

Добрый день. В простейшем варианте добавить два источника и две колонки с нужными полями:

Code:

   <sources>
   ...
      <source name="CodecIDAudioHint" field="CodecID/Hint" context="Audio"/>
      <source name="CodecIDVideoHint" field="CodecID/Hint" context="Video"/>
   </sources>
   <columns>
   ...
      <column name="Audio Codec Hint">CodecIDAudioHint</column>
      <column name="Video Codec Hint">CodecIDVideoHint</column>
   </columns>

#651:  Author: FlasherLocation: Москва PostPosted: Thu Apr 23, 2020 22:12
    —
Ради интереса решил глянуть, что найдёт мне поиск по Hint на внутренних дисках:
DivX Low/DivX 4/DivX 5/XviD/Microsoft/On2 для avi (656 из 761, причём у большинства тот же Формат показывает AVI)
WMV3/Microsoft для wmv (105 из 303)
MS MPEG-4 v3/Microsoft для mpg/mpeg (2 из 132)
Microsoft для asf (1 из 4)
Итого: из 6387 видео нашлось 766 из 1200 файлов тех же форматов. По аудио вообще ничего.
Судите сами...

#652:  Author: Zorro734 PostPosted: Fri Apr 24, 2020 04:23
    —
Loopback
спасибо.
я так и сделал, сначала не заработало, писало в значениях что-то типа "empty", но после удаления базы "base.db" и перезапуска "Total Commander" заработало нормально.

#653:  Author: AvadaLocation: Россия, Саратов PostPosted: Fri Apr 24, 2020 07:12
    —
Zorro734
Заглавные буквы использовать не забываем (см. правила форума).

#654:  Author: gendalv PostPosted: Thu Apr 30, 2020 03:53
    —
Flasher проблема в том, что многие файлы могут быть нестандартных разрешений, либо мелкие, хотелось бы иметь возможность их всех находить рамками - а не угадывать каждую возможную комбинацию отдельными поисками. Регулярные выражения вполне способны отделить числа от символов.

#655:  Author: FlasherLocation: Москва PostPosted: Thu Apr 30, 2020 06:49
    —
gendalv
Регулярками никто не мешает и так пользоваться. А я писал о добавке полей для числового сравнения.
TCMediaInfo.xml:
Code:
      <column name="Frame Width" coltype="ft_numeric_32">VideoFrameWidth</column>
      <column name="Frame Height" coltype="ft_numeric_32">VideoFrameHeight</column>
// перед этой строкой, например:
      <column name="Frame Rate" coltype="ft_numeric_floating">VideoFPS</column>
TCMediaInfo.lng:
Quote:
Frame Size=Размер кадра
Frame Width=Ширина кадра
Frame Height=Высота кадра

Frame Rate=Частота кадров
Есть же help_ru.chm. Включайте соображалку.

#656:  Author: user351 PostPosted: Tue May 19, 2020 19:20
    —
На TC 9.21a не запускается плагин TCMediainfo 1.0.3. При просмотре медиа-файлов (mp3, avi и т.д.) открывается текстовый-листер с разными символами. Возможно, нужны дополнительные настройки, чтобы плагин работал с медиа-файлами? Извините, если вопрос уже обсуждался, через поиск не нашел ответа.

#657:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue May 19, 2020 23:39
    —
user351
Прекрасно работает и на этой версии, и на прочих. Вы его вообще как Lister-плагин явным образом подключали или только автоустановкой контентного плагина решили ограничиться? И использование комбинированных плагинов, разумеется, обсуждалось не раз и не только в этой теме.

#658:  Author: user351 PostPosted: Wed May 20, 2020 16:16
    —
Avada, ох, спасибо большое! Да, я применил обычную автоустановку. Теперь всё нормально. Не догадался, что сочетание "контентный/листерный плагин" это и есть "комбинированный", хотя это так очевидно.

#659:  Author: gendalv PostPosted: Fri Sep 25, 2020 11:22
    —
А как искать по параметрам?
добавил:

TCMediaInfo.xml <column name="Encoded_Library_Settings">Encoded_Library_Settings</column>
TCMediaInfo.lng Encoded_Library_Settings=Параметры кодирования

Пункт отобржается, но например если ввести umh - ничего не находит (файлы в папке имеют me=umh в mediainfo).


Last edited by gendalv on Sat Sep 26, 2020 14:38; edited 1 time in total

#660:  Author: Skif_off PostPosted: Fri Sep 25, 2020 15:15
    —
gendalv
По идее - искать с плагинами: выбрать ваше поле Encoded_Library_Settings, выбрать "содержит" или "содержит(с учётом регистра)" (лучше второе, обычно выдаёт в нижнем регистре, должно быть пошустрее), в значение вставляете "me=umh" или "umh" и вперёд.

#661:  Author: gendalv PostPosted: Sat Sep 26, 2020 13:46
    —
Skif_off Так и делал.

#662:  Author: Skif_off PostPosted: Sat Sep 26, 2020 16:51
    —
gendalv
А если добавить в набор колонок ваше поле "Encoded_Library_Settings", ТС там что-нибудь показывает? Не вижу такого источника в дефолтном TCMediaInfo.xml, по идее в <sources></sources> должно быть что-то вроде
Code:
<source name="EncodedSettings" field="Encoded_Library_Settings" context="Video"/>

и в <columns></columns>
Code:
<column name="Encoded Settings">EncodedSettings</column>

(Тип ft_string/ft_stringw, похоже, можно не указывать.)
Имена взял посимпатичнее.

#663:  Author: silv7k PostPosted: Fri Oct 09, 2020 05:02
    —
Наблюдаю в листере задвоение строк с главами видеофайла в режиме просмотра Video (compact), но не в Default.
Проблема в 879-й строке, ее надо закомментировать, там лишний LineAddText.

TC 9.5.1 (x64)
TCMediaInfo 1.0.3

#664:  Author: Loopback PostPosted: Tue Oct 13, 2020 17:01
    —
silv7k
Да, она там явно лишняя. Уберу.

#665:  Author: gendalv PostPosted: Mon Oct 26, 2020 19:57
    —
Skif_off, с этими строками поиск показывает некоторые файлы, но далеко не все, без видимой на то причины.

#666: Не работает в TC 9.51 32bit Author: strx PostPosted: Wed Mar 03, 2021 18:46
    —
Приветствую поклонников Total Commander, коим и сам являюсь с незапамятных времен! Использую сейчас сборку Total Commander Power Pack 9.51 32bit. Когда добавляю колонки [=tcmediainfo.Duration], [=tcmediainfo.Frame Width], [=tcmediainfo.Frame Height], [=tcmediainfo.FPS] и т.д. и переключаюсь на пользовательский набор колонок, все эти колонки оказываются пустыми, хотя должны отображать соответсвующие метаданные о медиафайлах - как будто плагин по какой-то причине не может извлечь эти данные из файлов. Пробовал вставлять
Code:
 <DebugMode>1</DebugMode>
в TCMediaInfo.xml, но лог не появляется.. Что предпринять? Совместим ли плагин с этой версией TC?

Update Альтернативный плагин MediaInfoWDX работает, хотя и спотыкается о некоторые типы файлов вроде FLV с кривыми timestapms

#667:  Author: Loopback PostPosted: Fri Mar 05, 2021 15:24
    —
strx
Сложно сказать, что и как там в сборке настроено. В последних версиях стандартного дистрибутива колонок Frame Width, Frame Height, FPS вообще нет. Да и непонятно что там с версией плагина, библиотеки и т.д., Нужно начать хотя бы с этого.

#668: баг Author: ColdSmile PostPosted: Sun Mar 28, 2021 01:39
    —
Исправьте, пожалуйста, отображение символа амперсанда (&) в листере.
Проблема появилась в TCMediaInfo 1.0.2

Похожее:
sourceforge_net/p/mediainfo/bugs/1097/

#669:  Author: Loopback PostPosted: Mon Mar 29, 2021 22:00
    —
ColdSmile
Есть такое, точно.

Исправил, завтра на wincmd выложу версию, а то уже прилично разных фиксов накопилось.

#670:  Author: Mellomann PostPosted: Tue Apr 13, 2021 19:03
    —
Что-то не то пошло в х64 версии 1.0.4.0.
Находим любой flac или mp3, жмякаем F3 для посмотреть медиа инфо по файлу. Наблюдаем все строки как положено, видим обложку альбома (при наличии), пока что всё хорошо.
Но стоит попытаться закрыть окно или попытаться перейти в режимы просмотра 1/2/3(любой другой) - тотал сразу же падает.

Windows 7 SP1 Pro x64
TCMediaInfo.wdx64 1.0.4.0 (1.0.2.0 wdx64 работает нормально)
Total Commander x64 9.51 (версия не влияет)
MediaInfo dll 21.03 (версия не влияет)

#671:  Author: VimanLocation: Moscow PostPosted: Wed Apr 14, 2021 11:59
    —
То же самое (TCMediaInfo 1.0.4.0, Total Commander 10.00 b5 x64, Windows 10 20H2 19042.928 x64).

#672:  Author: Mellomann PostPosted: Mon Apr 19, 2021 13:46
    —
Эх жаль, пришлось откатиться до 1.0.2.0 версии...

#673:  Author: Destiny PostPosted: Fri Apr 23, 2021 15:40
    —
Да, подтверждаю падение при работе этого плагина в версии 1.0.4 х64 под х64-битным тоталом. 32 битный вариант работает вполне стабильно.
Уважаемый Loopback
просим обратить внимание на такое падение. Ибо последнее обновление привнесло интересную поддержку тегов из библиотеки медиаинфо, не хочется откатываться на 1-0-2 версию. И на 32битном тотале сидеть неудобно - контекстные меню вложенными становятся. ВСЁ 64битное в отдельный подпункт меню выделяется...

#674:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Apr 24, 2021 10:19
    —
И я подтверждаю. И Гислер подтверждает, называет причину и просит проинформировать автора плагина для принятия мер.

#675:  Author: Loopback PostPosted: Mon Apr 26, 2021 19:27
    —
В силу личных обстоятельств, сейчас не могу даже проверить проблему, не говоря уже о том чтобы что-то исправить. Займусь этим сразу как появится возможность.

#676:  Author: Олег Верещагин PostPosted: Mon Oct 04, 2021 21:12
    —
Всем привет.
Возникла такая проблема. Снимали видео двумя камерами. Для того, чтобы было удобно совмещать видео с двух камер между собой, я обычно переименовываю все видео по формату[YMD]_[hms]_I, где I - индекс камеры. В случае, если дата/время модификации не совпадают с датой и временем съёмки, использую tcmediainfo с шаблоном [=tcmediainfo.Дата кодирования.YMD_hms]_I. Но тут снимали Айфоном 12 Pro, и нашла коса на камень. Ни одна из этих дат не имеет ничего общего с реальностью. Единственное правильные дата и время находятся в метатеге com.apple.quicktime.creationda : 2021-10-02T11:16:33+0300 - вот в таком формате. Но tcmediainfo не позволяет переименовывать по произвольному метатегу. Можете подсказать, реально ли с помощью каких-нибудь файлов настроек или ещё каким способом реализовать переименование по этому метатегу?

#677:  Author: Monarch-LFV PostPosted: Tue Oct 05, 2021 05:16
    —
Олег Верещагин
Немного не про плагин в теме, но решение такое:
Плагин PCREsearch. У меня получилось вытянуть эти данные (именно из этого тега) для i6 так:
В файле PCREsearch.ini в соответствующих строках:
regex9=(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})
regex9name=Дата Iphone
regex9type=4
regex9replace=$1
regex9flags=4
OnDemandLimit=5000 ;лимиты на размер файла в МБ
Номер (здесь 9) - возможно поменять на другой, ну и следим в начале этого файла, чтобы это поле показывалось:
regexcount=9
Все даты показываются в столбце ТС, а соответственно можно вытянуть в имя файла в нужной вам форме.

#678:  Author: Loopback PostPosted: Tue Oct 05, 2021 13:31
    —
Олег Верещагин

В файл TCMediaInfo.xml добавьте источник и колонку в соответствующие узлы. После нужно перезапустить тотал. В списке колонок плагина появится новая колонка "QT Creation Date" с нужной датой.

Code:
   
<sources>
  ...
  <source name="QTCreationDate" field="com.apple.quicktime.creationdate"/>
</sources>

<columns>
  ...
  <column name="QT Creation Date" coltype="ft_datetime">QTCreationDate</column>
</columns>


Если колонка появилась, но пустая, проще всего удалить файл базы base.db.

#679:  Author: mono PostPosted: Sat Jan 22, 2022 00:40
    —
Loopback wrote:
Олег Верещагин


1. Большое спасибо - работает.
Но выдаёт время со сдвигом по UTC, например:
- В файле записано так -
com.apple.quicktime.creationdate : 2021-11-02T15:39:19+0200
- TCMediaInfo выдает так -
"QT Creation Date" : 2021-11-02 17.39.19
Возможно ли сделать так чтоб TCMediaInfo отображало именно то время, которое есть (без корректировки по UTC - +2 часа) - "15:39:19"?


2. Может кто знает - возможно ли сделать кнопку для групового переименования (Ctrl+M)? Сам пользуюсь кнопкой ниже, но она не работает с Афйновскими видео.

Code:
   
TOTALCMD#BAR#DATA
%ComSpec% /c exiftool.exe -v0 -fileOrder DateTimeOriginal "-FileName<DateTimeOriginal" -d %Y-%m-%d_%H.%M.%S.%%e
%S > exiftool.rep
%WINDIR%\exiftool.exe
Переименовать выделенные файлы и/или все файлы подкаталогов согласно тегу "Date/Time Original" из EXIF

1
-1


Заранее благодарю!

#680:  Author: AvadaLocation: Россия, Саратов PostPosted: Sat Jan 22, 2022 07:28
    —
mono
Ваш второй вопрос в таком виде нарушает правила форума. В данной теме это оффтоп, для запроса кнопок есть специальная тема, но и туда переносить вопрос бессмысленно, поскольку в кнопке для ИГП можно указать только multirename имя_шаблона (см. справку), а настраивать и создавать шаблон вам следует в самом инструменте, проверив прежде на пробных файлах, подходит ли тот или иной плагин (в т.ч. текущий) под задачу. Кроме того на форуме не раз говорилось, что в тихом режиме, без открытия окна инструмент группового переименования не вызывается, т.е это в любом случае не совсем автоматизация и неполная замена прежней кнопки. (Возможности её коррекции при необходимости выясняются, естественно, тоже не здесь — в частности, для Exiftool есть специальная тема. Ещё при первой публикации похожей кнопки в текущей теме было ясно сказано, что это оффтоп.)

#681:  Author: Loopback PostPosted: Sat Jan 22, 2022 15:34
    —
mono
Попробуйте такой вариант, типы ft_date и ft_time интерпретируют дату/время как локальные. Версия плагина должна быть не ниже 1.0.4.
Code:
<sources>
  ...
  <source name="QTCreationDate" field="com.apple.quicktime.creationdate"/>
</sources>

<columns>
  ...
  <column name="QT Creation Date (local)" coltype="ft_date">QTCreationDate</column>
  <column name="QT Creation Time (local)" coltype="ft_time">QTCreationDate</column>
</columns>

#682:  Author: jiangzhenjerry PostPosted: Tue May 31, 2022 01:42
    —
Переведено Google Translate:

Привет! Когда я пытаюсь просмотреть (Ctrl+Q) аудиофайлы со встроенным изображением обложки, возникает ошибка:
Code:
Script error : Invalid parameters, function LINEADDCOVER : Invalid pointer operation (LINEADDCOVER ( '' , 5 , 5 )  )


Я попробовал несколько аудиофайлов (mp3, flac...), и все они имеют эту проблему. Любые идеи, как решить эту проблему?

Моя версия ТС: 10.50b7
Моя версия TCMediaInfo: 1.0.5
Моя версия MediaInfo_x64.dll: 22.3.0.0

Образец mp3-файла можно найти ниже. Но это происходит не только с этим файлом.
https://www.upload.ee/files/14185988/Dejan_S._-_Missing_You.mp3.html
(Я пока не могу публиковать ссылки. Пожалуйста, замените «hxxps» на «https»)

============================================

Hi! When I try to preview (Ctrl+Q) audio files with embedded cover image, an error occurs:
Code:
Script error : Invalid parameters, function LINEADDCOVER : Invalid pointer operation (LINEADDCOVER ( '' , 5 , 5 )  )

I have tried a few audio files (mp3, flac...) and they all have this issue. Any ideas how to resolve this?

My TC version: 10.50b7
My TCMediaInfo version: 1.0.5
My MediaInfo_x64.dll version: 22.3.0.0

A sample mp3 file can be found below. But it doesn't only happen to this file.
https://www.upload.ee/files/14185988/Dejan_S._-_Missing_You.mp3.html
(I cannot post links yet. please replace 'hxxps' by 'https')

 !  CaptainFlint:
Ссылки исправлены.
The links are fixed now.

#683:  Author: Loopback PostPosted: Wed Jun 01, 2022 18:40
    —
jiangzhenjerry
Tested your file (and many my files as well) with the same versions, but can't reproduce the problem. What OS version you use?

I will revise the code of this function for potential flaws.
-----

Протестировал приложенный файл и много своих, на тех же версиях, проблема не проявляется. Возможно, что-то связано с окружением.

Надо посмотреть код функции на потенциальные косяки.

#684:  Author: jiangzhenjerry PostPosted: Thu Jun 02, 2022 09:02
    —
Loopback

Thank you very much for your reply. I'm using Windows 11 x64. But I also tried Windows 10 x64, and the problem exists too. Maybe it is related to my settings?

------

Спасибо вам большое за ваш ответ. Я использую Windows 11 x64. Но я также пробовал Windows 10 x64, и проблема тоже существует. Может это связано с моими настройками?

#685:  Author: Loopback PostPosted: Thu Jun 02, 2022 23:06
    —
jiangzhenjerry

Well, while it's still not reproduceable for me on mp3/flac, on testing Win11 too, got the same error on *.ogg files. Though, problem with ogg's have other root, this helped to find one flaw, that potentially may cause error for you.

Compiled fixed version, please test it.

-----

У меня на mp3/flac проблема не воспроизводится, в том числе и на Win11, но проявляется на ogg-файлах. Хотя проблема с ogg имеет другую природу, это помогло найти потенциальный косяк, который может вызывать такую ошибку.

Скомпилированная тестовая версия.

#686:  Author: jiangzhenjerry PostPosted: Fri Jun 03, 2022 22:44
    —
Loopback

This version works perfectly for me now Very Happy Thank you very much for the fix!

------------

Теперь эта версия у меня отлично работает Very Happy Большое спасибо за исправление!

#687:  Author: Loopback PostPosted: Sat Jun 04, 2022 13:24
    —
jiangzhenjerry
Glad to hear it work. Release version with additional small fixes is uploaded to site.

-----

Все заработало, отлично. Обновленный релиз c дополнительными мелкими исправлениями на сайте.

#688:  Author: yozhikLocation: Электросталь PostPosted: Sat Jun 04, 2022 17:36
    —
Loopback
Доброго здоровья!
В TCMediaInfo.xml listeroptions -> display -> FieldTextColor — это же цвет текста вот в этой колонке, правильно я понимаю?

Если да, то не реагирует на изменение цвета. Я пробовал также подключать sample.xml как есть, только с изменением этой одной настройки — не реагирует. Версия плагина 1.0.6 (спасибо за обновление), а TC 10.00. Не могли бы глянуть?

#689:  Author: Loopback PostPosted: Sun Jun 05, 2022 13:38
    —
yozhik
День добрый. Да, так задумано, и оно не работает. Издержки копипасты Smile Исправлю.

#690:  Author: Mellomann PostPosted: Mon Jun 06, 2022 21:48
    —
Как подружить плагин с расшрениями aac, ape, fla, mpc, wv, m1v, m2v ?
Прописывание их его xml и в wincmd.ini (по аналогии с стандарным набором) ничего не дало. ЧЯДНТ?

#691:  Author: Loopback PostPosted: Wed Jun 15, 2022 19:18
    —
Mellomann
Именно прописывание расширений и предполагается. Для проверки у себя добавил - всё подхватилось. Разумеется, после добавления тотал надо перезапустить (или выгрузить плагины).

К сожалению, библиотека не дает возможности программно получить список поддерживаемых расширений, иначе это всё можно было бы автоматизировать. Причем такая информация в её коде присутствует, но функции для получения нет. Так что пока приходится прописывать вот так, вручную.

#692:  Author: Baltazar PostPosted: Wed Oct 12, 2022 14:36
    —
Стандартные шаблоны (для wlx - режима) поддаются экспортированию и корректировке ? Хочу заменить %Duration_String% на %Duration_String3%. Проблема в том, что дефолтном шаблоне с %Duration_String% на файлах продолжительностью >1 часа продолжительность отображается в часах и минутах. Без секунд.

#693:  Author: Loopback PostPosted: Thu Oct 13, 2022 23:58
    —
Baltazar
Не очень понятно, что понимается под "экспортированием". Корректировать, разумеется, можно: TCMediaInfo.xml фактически является локальной конфигурацией плагина и не перезаписывается при установке новых версий.

#694:  Author: Baltazar PostPosted: Fri Oct 14, 2022 05:00
    —
Loopback, Ну всмысле для использования кастомного шаблона, как в оригинальной тулзе mediainfo. Если здесь иной принцип работы с шаблонами mediainfo (те, что css), то вопрос про шаблоны был не совсем в ваш "огород" Smile
Loopback wrote:
Корректировать, разумеется, можно: TCMediaInfo.xml фактически является локальной конфигурацией плагина и не перезаписывается при установке новых версий.
ОК. Что конкретно нужно поправить относительно Duration, чтобы работал сценарий описанный мной выше ? Судя по TCMediaInfo.xml обработка именно Duration зависит от кучи параметров и переменных и простая смена "Duration_String" на "Duration_String3" мне тут не поможет (пробоаал). Что нужно корректировать для вывода времени медиафайлов >1 часа в часах:минутах:секундах ?

upd: Немного пшковырялся с TCMediaInfo.xml и блоки в tcmediainfo/listeroptions/views отвечают за свои шаблоны и там Duration_String1 можно заменить на Duration_String3 , вот только меня вполне устраивает дефолтный шаблон ("Default" ака "по умолчанию") и как на него повлиять/скорректировать мне пока не понятно.

#695:  Author: Loopback PostPosted: Fri Oct 14, 2022 18:07
    —
Baltazar wrote:
Если здесь иной принцип работы с шаблонами mediainfo

Да, здесь другой принцип.

Baltazar wrote:
вот только меня вполне устраивает дефолтный шаблон ("Default" ака "по умолчанию") и как на него повлиять/скорректировать мне пока не понятно

Да, шаблон "по умолчанию" нельзя изменить, это встроенный в библиотеку (не в плагин), специальный формат вывода, который формируется согласно зашитой автором библиотеки логике. Достигнуть желаемого можно только если сделать похожий кастомный, который бы имитировал поведение встроенного.

#696:  Author: Baltazar PostPosted: Fri Oct 14, 2022 18:24
    —
Loopback, ну собственно я об этом и подозревал.
Quote:
Достигнуть желаемого можно только если сделать похожий кастомный, который бы имитировал поведение встроенного.
А вот с этим загвоздка, да. Что-то похожее я могу сделать, но учитывая, что шаблон по ряду параметров имеет скриптоподобную схематику, полноценно воссоздавать я его буду до морковкиного заговения из-за чего я собственно и интересовался в надежде обойтись правкой одного параметра (или на худой конец "экспортировать" стандартный шаблон и поправив параметр заюзать оный), но увы. Эх.

#697:  Author: Loopback PostPosted: Sat Oct 15, 2022 00:00
    —
Baltazar
Так, стоп. Кажется, я сам уже забыл, что тут есть... Я так понимаю, что имелся в виду шаблон "Стандартный Inform"? Или нет? Потому что у меня в режиме "По умолчанию" с секундами длительности все в порядке.

Если нет, то может TCMediaInfo.xml остался от какой-то древней версии плагина, еще до версии 1.0?

#698:  Author: Baltazar PostPosted: Sat Oct 15, 2022 19:55
    —
Loopback, да, так было в старом билде (0.7.4, просто обновлял библиотеку, да и не заморачивался особо). В новом билде секунды оказались там, где мне надо на файлах хронометражом >1 часа. Единственное, что непривычно - это чередование цветов строк. Как бы его убрать и выделить лишь General, Video, Audio, Text, как в старом билде ? Ну или на крайняк, как их сделать потемнее ?

#699:  Author: Loopback PostPosted: Sat Oct 15, 2022 22:41
    —
Baltazar wrote:
Единственное, что непривычно - это чередование цветов строк. Как бы его убрать и выделить лишь General, Video, Audio, Text, как в старом билде ? Ну или на крайняк, как их сделать потемнее ?

В настройках, установить одинаковый цвет для параметров LineBackColor и LineBackColorSecond.

#700:  Author: Baltazar PostPosted: Sun Oct 16, 2022 11:26
    —
Loopback, спасибо. Просто зачистил LineBackColorSecond и стало практически как и было (там общий фоновый цвет малость отличается, ну да это мелочи) Smile

#701:  Author: jentoso PostPosted: Sun Oct 16, 2022 12:14
    —
Установка плагина в качестве wlx, осуществляется путем ручного добавления в ini с переименованием в wlx? Что-то подзабыл и в readme не нашёл.

#702:  Author: Baltazar PostPosted: Sun Oct 16, 2022 14:29
    —
jentoso wrote:
Установка плагина в качестве wlx, осуществляется путем ручного добавления в ini с переименованием в wlx? Что-то подзабыл и в readme не нашёл.
Зачем ренеймить ? Путь до wdx-файла пропишите и всё. Там расширения имеют декоративный характер.

#703:  Author: jentoso PostPosted: Sun Oct 16, 2022 15:52
    —
Baltazar wrote:
Зачем ренеймить ? Путь до wdx-файла пропишите и всё. Там расширения имеют декоративный характер.

А всё таки пришлось менять расширение, чтобы плагин работал через кнопку
Code:
TOTALCMD#BAR#DATA
%COMMANDER_EXE%
%P%N /S=L:Ptcmediainfo
WCMICONFLAT.DLL,414
Просмотр MediaInfo Plugin


-1

#704:  Author: 790 PostPosted: Wed Oct 19, 2022 13:01
    —
Вопросы только про lister:
По умолчанию смотрю в режиме "Video (compact)"
Если FieldText Видео содержит какой-нибудь name, то он своим жирным шрифтом "налезает" на InfoText и его невозможно прочитать. Хотя мне интересен только размер кадра WxH
<FieldTextColor>$xxxxxx</FieldTextColor>
Никак не изменяется (зато все остальные colors изменяются нормально). Хотел сделать его белым $FFFFFF, чтоб вообще не видно было.

TCMediaInfo.xml
// define field ID's that will be always skipped
ГДЕ пометить? ЧЕМ пометить?
Как убрать всякие битрейты из видео-инфо, FPS - я не понял.

И вообще, хорошо бы всё это как-то делать "галочками" в графическом виде - не все способны в xml ковыряться. И закреплять насовсем, а не каждый раз "галочки" ставить, хотя бы тот же auto режим.

#705:  Author: Loopback PostPosted: Wed Oct 19, 2022 14:27
    —
790 wrote:
Если FieldText Видео содержит какой-нибудь name, то он своим жирным шрифтом "налезает" на InfoText и его невозможно прочитать. Хотя мне интересен только размер кадра WxH

Варианта тут три:
1. Увеличить параметр InfoLeftMargin, но нет гарантий, что кто-то не сделает такое название, что оно всё равно не уместится.
2. Обрезать текст в первой колонке, если его длина слишком большая.
3. Выносить название отдельной строкой, в результате частично теряется компактность.

Самое простое что можно быстро сделать - второй вариант.

790 wrote:
<FieldTextColor>$xxxxxx</FieldTextColor>
Никак не изменяется (зато все остальные colors изменяются нормально). Хотел сделать его белым
$FFFFFF, чтоб вообще не видно было.

Версия плагина какая? В 1.07 было исправлено. Но это все равно не поможет, т.к. будет накладываться белым.

790 wrote:
// define field ID's that will be always skipped
ГДЕ пометить? ЧЕМ пометить?

Это список полей, которые всегда пропускаются. И это вообще из другого шаблона.
790 wrote:
Как убрать всякие битрейты из видео-инфо, FPS - я не понял.

В моем понимании, если что-то хочется под себя поменять - придётся разбираться. Ну или хотя бы четко объяснить, что именно не устраивает.

790 wrote:
И вообще, хорошо бы всё это как-то делать "галочками" в графическом виде - не все способны в xml ковыряться.

Думаю что кому-то и wincmd.ini править сложно, но это не значит, что надо всё огромное многообразие ключей выносить галочками в интерфейс. А скрипты и галочки как-то вообще плохо совместимы...

790 wrote:
И закреплять насовсем, а не каждый раз "галочки" ставить, хотя бы тот же auto режим.

Не вижу смысла что-то запоминать из интерфейса, а необходимые настройки в виде DefaultViewMode и AutoViewMode есть.

#706:  Author: 790 PostPosted: Wed Oct 19, 2022 15:40
    —
Quote:
В 1.07 было исправлено.Но это все равно не поможет, т.к. будет накладываться белым.

Ух ты! А у меня до сих пор 1.06. Щас исправлю.
<FieldTextColor>$F5F5F5</FieldTextColor> - сделал таким как back.
К тому же поменял колонки местами:
<FieldLeftMargin>500</FieldLeftMargin>
<InfoLeftMargin>5</InfoLeftMargin>
Т.е. фактически, убил первую колонку.

Quote:
Не вижу смысла что-то запоминать из интерфейса

Ну хотя бы режим просмотра можно было бы и запомнить без правки xml?
А для компакт-режима и галочек-то не много надо...

Quote:
Ну или хотя бы четко объяснить, что именно не устраивает

В режиме "Video (compact)", лично мне хотелось бы видеть только:
Общее:
Name
Duration_General х:хх:хх
Видео:
Width_Video х Height_Video, DisplayAspectRatio
(всё остальное в пол-экрана по Ctrl+Q не влезает, хотя бы перенос строк, а?)
Аудио (самое важное!):
Name + кол-во каналов в каждом
Субтитры: (не пользуюсь)
Главы: (это для DVD наверно важно? для себя бы отключил)
Всё вот это интересная инфа, чтобы понять то ли ты скачал и как лучше включить просмотр (фильма), а всякие битрейты и частоты сэмпливания никак не помогут в уже скачанном фильме, а для всего остального есть режим по умолчанию и пр.
Как отключить ненужное в "Video (compact)" ? Я там пробовал ковыряться, но всё это приводило только к краху плагина.

Заранее извиняюсь, у каждого свои потребности, это только моё личное мнение Smile

#707:  Author: Loopback PostPosted: Wed Oct 19, 2022 17:26
    —
790 wrote:
Ну хотя бы режим просмотра можно было бы и запомнить без правки xml?

В данной концепции нельзя. Бессмысленно его запоминать, т.к. на разных типах файлов нужны разные режимы. Режим видео не подходит для аудио и наоборот. А если использовать универсальный шаблон, то его можно задать по умолчанию.

790 wrote:
А для компакт-режима и галочек-то не много надо...

Еще раз, весь вывод полностью формируется скриптом, в том числе для компактного режима. О каких галочках тут вообще может идти речь?

Это максимально гибкое решение, но разумеется, его обратной стороной является необходимость приложения некоторых усилий для настройки под себя. Если такой подход не устраивает, то тут я помочь ничем не могу.

790 wrote:
Как отключить ненужное в "Video (compact)" ? Я там пробовал ковыряться, но всё это приводило только к краху плагина.
Заранее извиняюсь, у каждого свои потребности, это только моё личное мнение

К краху вряд ли, наверно просто сообщение выводилось об ошибке?

И да уж, требования весьма специфические. Впрочем, резать проще, чем добавлять, вот упрощенный
вариант по перечисленным хотелкам. Можно заменить им узел Video (Compact) или добавить отдельно перед ним.

Code:

         <view name="Video (790)" extensions="AVI,DIVX,MPG,MPEG,MPE,DAT,ASF,VOB,MKV,OGM,M2TS,TS,MTS,MOV,WMV,MP4,M4V,AVC,FLV,D2V">
         <![CDATA[
            uses 'Common';

            if Get('Cover') <> '' then LineAddCover('', 5, 5);

            LineAddHeader(GetName('General'));
            AddCheck('Title', 'General');

            LineAddText(GetName('Duration'), FormatDuration(Get('Duration', 'General')));

            if GetCount('Video') > 0 then
            begin
               LineAddHeader(GetName('Video'));
               for i:=0 to GetCount('Video')-1 do
               begin
                  sName:='['+String(i)+'] ';

                  stream := Get('Width', 'Video', i) + 'x' + Get('Height', 'Video', i);
                  dar := Get('DisplayAspectRatio/String', 'Video', i);
                  if dar <> '' then stream := stream + ' (' + dar + ')';

                  LineAddText(sName, stream);
               end;
            end;

            if GetCount('Audio') > 0 then
            begin
               LineAddHeader(GetName('Audio'));
               for i:=0 to GetCount('Audio')-1 do
               begin
                  sName:='['+String(i)+'] ';
                  sTitle := Get('Title', 'Audio', i);

                  stream:=sTitle;
                  sCN := Get('Channel(s)', 'Audio', i);
                  if sCN <> '' then stream:=stream + ' (' + FormatChannels(sCN) + ')';

                  LineAddText(sName, stream);
               end;
            end;

            // add line if value is not empty
            procedure AddCheck(Field, Context);
            begin
               R:=Get(Field, Context);
               if R = '' then Exit;
               LineAddField(Field, Context);
            end;
         ]]>
         </view>


#708:  Author: 790 PostPosted: Wed Oct 19, 2022 18:19
    —
ООО!!! Огромное спасибо!
Ну, конечно, если каждый будет так приставать со своими хотелками - замучаешься.
Но зато теперь у меня есть образец как резать... сравню и разберусь сам.

А вот это:
Quote:
2. Обрезать текст в первой колонке, если его длина слишком большая.

- это где обрезать?

#709:  Author: Loopback PostPosted: Wed Oct 19, 2022 19:52
    —
790 wrote:
- это где обрезать?

Это в принципе можно считать багом, т.к. текст не должен выходить за пределы разделителя. Исправил, вот файлы, но для релиза этого маловато.

#710:  Author: 790 PostPosted: Thu Oct 20, 2022 14:12
    —
Да, FieldTextColor теперь работает.

Для релиза можно ещё добавить в "Video (compact)", например:
Audio
if Channel(s) = 6 then писать 5.1
if Channel(s) = 8 then писать 7.1
if Channel(s) = 2 then писать Stereo
if Channel(s) = 1 then писать Mono
Хотя бывает, что и 2 - это вовсе не стерео, а 2 моно и т.д... но чаще всего всё оно соответствует действительности, а для особых случаев есть полный режим и пр.

#711:  Author: Loopback PostPosted: Thu Oct 20, 2022 15:36
    —
790 wrote:
Для релиза можно ещё добавить

Строго говоря, 5.1 не вытекает напрямую из числа каналов. Это конфигурация каналов и правильнее её брать из полей ChannelPositions. Можно подумать и добавить дополнительно, но заменять я бы не стал.

#712:  Author: 790 PostPosted: Thu Oct 20, 2022 16:07
    —
Да, именно дополнительно, типа: Формат, Коммерческое название, if Channel(s) = ... and ChannelPositions = ... then ... (... Channels)

#713: Encoded Library Author: Chucky PostPosted: Fri Oct 28, 2022 06:08
    —
Доброго времени суток, существует проблемка c wdx, прошу прощения, если я не к месту, но в других местах нигде ответа не нашел:
Поле "=tcmediainfo.Библиотека кодирования" и только оно одно, в некоторых случаях отображает кракозябры после конвертации в mp3,
пробовал разные конвертаторы, в том числе онлайн, aimp, скачивал разные всерсии библиотек lame, и так далее,
Так же везде перепробовал менять кодировки, пробовал устанавливать версии самого плагина 1.05, 1.04, 1.03, в том числе на разных версиях Windows(7/10)
но все тщетно(

Может я что-то не так делаю, или все таки тяму не хватает и ответ где то близко, в плане прослушивания это ни на что не влияет, но в плане отображения очень мешает( Прошу не судить, если знаки препинания нгарушил
Верный вариант отображения "LAME3.100.1" , другие отображаются таким образом:

" LAME3.100.1ªªªªªªª8 "
" LAMEh¢àJïkH’-¨*CSq "
" LAME3.100.1UUUUUUUU% "
________
Windows10 x64
TC 10.51 32/64
TCMedianfo 1.0.7

#714:  Author: Loopback PostPosted: Fri Oct 28, 2022 14:44
    —
Chucky
Нашел у себя такие файлы. Это баг в библиотеке MediaInfo. Чтобы в этом убедиться, достаточно поставить GUI-версию MediaInfo и открыть проблемный файл в ней. Проверил c последней версией библиотеки 22.0.9 - баг присутствует.

#715:  Author: Chucky PostPosted: Thu Nov 10, 2022 17:23
    —
Loopback
Не уточняли, будут ли изменения с данной "библиотекой" ?
И как обойти сей БАГ кодировки на текущий момент?
Или давно все тщетно?

#716:  Author: Loopback PostPosted: Fri Nov 11, 2022 13:41
    —
Chucky wrote:
Не уточняли, будут ли изменения с данной "библиотекой" ?

Нужно чтобы кто-нибудь разместил багрепорт на гитхабе проекта. В силу некоторых обстоятельств я сделать это сейчас не могу.

Chucky wrote:
И как обойти сей БАГ кодировки на текущий момент?

Этот баг не связан с кодировкой, тут налицо захват лишних (или неправильных) данных при чтении версии. В данный момент никак. Для первого и третьего примера можно было бы отрезать всё, начиная с не-цифры после номера, но во втором примере даже нет номера. Т.е. это тот случай, когда даже встроенный скриптинг не поможет. Нужно исправление со стороны MediaInfo.

#717:  Author: imig73Location: г. Иркутск PostPosted: Fri Nov 11, 2022 14:48
    —
Chucky
У меня тоже есть этот классный плагин, им пользуюсь по назначению.
Тока вот ничего такого чего вы описали не обнаружил. Имхую что изменения вы вносите самостоятельно.

#718:  Author: Chucky PostPosted: Sun Nov 13, 2022 15:26
    —
imig73
Что вы имеете ввиду под фразой вносите изменения самостоятельно?

#719:  Author: krmit PostPosted: Fri Apr 14, 2023 12:55
    —
Loopback
В листере "Nominal bit rate" и "Maximum bit rate" выдаются в b/s, хотя "Bit rate" и "Overall bit rate" преобразуются в Kb-Mb/s. Так задумано?
Плагин, mediainfo.dll и TC - x64 актуальных версий, режим просмотра - Default.

#720:  Author: Loopback PostPosted: Fri Apr 14, 2023 19:58
    —
krmit
Вряд ли задумано, просто упустил. В следующей версии поправлю, но сейчас это можно легко исправить самостоятельно, заменив для шаблона "Default" для видео строчку в условии:

Code:

   'BitRate','BitRate_Minimum':
      v:=FormatBitrate(v);


на такую:

Code:

   'BitRate','BitRate_Minimum', 'BitRate_Nominal', 'BitRate_Maximum':
      v:=FormatBitrate(v);

#721:  Author: 790 PostPosted: Wed Jun 07, 2023 12:54
    —
Duration в контент-варианте плагина, запутался с нулями. Заменил h, mm, sec на ":"
Code:
<column name="Duration">
         <unit name="hh:mm:ss" type="script">Output:=TimingFormat('%h:%mm:%ss', Duration);</unit>
         <unit name="hh:mm:ss.fff" type="script">Output:=TimingFormat('%hh:%mm:%ss.%fff', Duration);</unit>
         <unit name="s" type="script">Output:=Trunc(Duration/1000);</unit>
         <unit name="z">Duration</unit>
         <unit name="Custom" type="script">
         <![CDATA[
            // this is an example of using scripts in columns
            Output:='';
            if Not StrIsNumber(Duration) then Exit;
            nDur := Number(Duration);
            Hour:=Trunc(nDur/3600000);
            Min:=Trunc((nDur-Hour*3600000)/60000);
            Sec:=Trunc((nDur-Hour*3600000-Min*60000)/1000);
            if (Hour <> 0) then Output:=String(Hour)+':';
            if (Min <> 0) then Output:=Output+String(Min)+':';
            if (Sec <> 0) then Output:=Output+String(Sec);
         ]]>
         </unit>
      </column>

Хотелось бы использовать пользовательский режим, чтобы продолжительность трека отображалась в виде 0:00:00 (если есть "часы") или 0:00 (если нет "часов") или 00 (если нет "минут"). Но получается, что если продолжительность 10:08, то будет показано как 10:8, а если 1:00:05, то будет 1:5
Можно ли написать, например:
Code:

if (Hour <> 0) then Output:=String(Hour)+':';
if (Min = 0) or (Min > 9) then Output:=Output+String(Min)+':';
if (Min > 0) and (Min < 10) then Output:=Output+'0'+String(Min)+':';
if (Sec > 9) then Output:=Output+String(Sec) else Output:=Output+'0'+String(Sec);

Вроде, работает. Наверно, есть какие-нибудь решения попроще?

#722:  Author: Loopback PostPosted: Wed Jun 07, 2023 23:11
    —
790
Для простой работы с ведущими нулями есть встроенная функция TimingFormat, но напрямую такое она не решит. Для этого в библиотеку функций "Common" я добавлял скриптовую функцию FormatDuration, которая делает требуемое, кроме секунд без минут (мне кажется, что тогда теряется ощущение, что это именно время). Её можно использовать так:

Code:

<column name="Duration">
          ...
         <unit name="Custom" type="script">
         <![CDATA[
            uses 'Common';
            Output:=FormatDuration(Duration);
         ]]>
         </unit>
</column>


Чтобы добиться одиночных секунд, надо поменять код функции FormatDuration на такой:

Code:

         // automatically format duration
         function FormatDuration(nDuration);
         begin
            Result:='';

            If not StrIsNumber(nDuration) then Exit;
            nDuration := Number(nDuration);

            if nDuration > 3600000 then
               Result:=TimingFormat('%hh:%mm:%ss', nDuration)
            else if nDuration < 60000 then
               Result:=TimingFormat('%ss', nDuration)
            else
               Result:=TimingFormat('%mm:%ss', nDuration);
         end;

#723:  Author: 790 PostPosted: Thu Jun 08, 2023 02:24
    —
Спасибо!!
Loopback wrote:

мне кажется, что тогда теряется ощущение, что это именно время

Всё верно! Да и файлов таких у себя не нашёл (в "серьёзных" форматах аудио).
Только убрал из TimingFormat одну h, чтобы не было ведущего 0 в "часах".

Почему-то format DTS-ES (Matrix) и DTS 96/24 отображаются как простой DTS и 6ch. (а там 7, потому ещё Cb - центральный задний) в контекст-плагине, а в листерном всё нормально. (С Dolby EX, наверно, такая же ситуация будет, но мне не проверить - нет таких)
Code:
ID : 2
Format : DTS ES
Format/Info : Digital Theater Systems
Commercial name : DTS-ES Matrix
Codec ID : A_DTS
....
Channel(s) : 6 channels
Channel(s)_Original : 7 channels
ChannelLayout_Original : C L R Ls Rs Cb LFE
Sampling rate : 48.0 kHz
Bit depth : 24 bits

#724:  Author: Loopback PostPosted: Thu Jun 08, 2023 23:17
    —
790
Данные одного поля никак не могут быть разными в wdx/wlx плагинах, у них один источник данных - библиотека MediaInfo. Если что-то различается, значит это разные поля (в частности, следует обращать внимание на поля с суффиксами /string, /string1 и т.д., они могут существенно различаться), либо применена какая-то обработка скриптом (но единственное что есть в конфигурации, связанное с каналами - функция FormatChannels, которая просто добавляет локализованное слово "каналов" к их числу).

Переключите в WLX режим просмотра в "Вывод без обработки", найдите имя поля, которое выводит нужную информацию, и сравните с именем поля, данные из которого выводится в колонку.

#725:  Author: 790 PostPosted: Fri Jun 09, 2023 14:54
    —
Спасибо, всё получилось.
В листере:
Code:

Format : DTS
Format/String : DTS ES
...
Format_Commercial : DTS-ES Matrix
Format_Commercial_IfAny : DTS-ES Matrix
...
Format_AdditionalFeatures : ES
...
Channel(s) : 6
Channel(s)_Original : 7

Добавил в колонки:
Code:

<source name="AudioChannelsOriginal" field="Channel(s)_Original" context="Audio"/>
<source name="AudioFormatAdditionalFeatures" field="Format_AdditionalFeatures" context="Audio"/>
<source name="AudioFormatString" field="Format/String" context="Audio"/>
......
<column name="Audio Additional string">AudioFormatString</column>
<column name="Audio Additional Features">AudioFormatAdditionalFeatures</column>
<column name="Channels Original" coltype="ft_numeric_32">AudioChannelsOriginal</column>

Теперь пытаюсь разобраться, чтобы при отсутствии/наличии данных в 'Channel(s)_Original' использовал/не использовал данные из 'Channel(s)'

Что такое Format_Settings_Mode : 16 ?
Я не понимаю, но это не BitDepth

#726:  Author: Loopback PostPosted: Fri Jun 09, 2023 22:51
    —
790 wrote:
чтобы при отсутствии/наличии данных в 'Channel(s)_Original' использовал/не использовал данные из 'Channel(s)'

Сделать скриптовую колонку, с проверкой на пустой результат. Как-то примерно так:

Code:

Output:=Get('Channel(s)_Original', 'Audio');
if Output = '' then Output:=Get('Channel(s)', 'Audio');


790 wrote:
Что такое Format_Settings_Mode : 16 ?

Не знаю, это надо адресовать автору MediaInfo Smile

Вроде это какие-то специфические настройки кодека. В теме по этому полю было обсуждение. Для mp3 тут может выводиться, например, joint stereo, что имеет смысл. Что такое 16 - понятия не имею.

#727:  Author: 790 PostPosted: Mon Jun 12, 2023 00:28
    —
Loopback wrote:

Сделать скриптовую колонку, с проверкой на пустой результат. Как-то примерно так:
Code:

Output:=Get('Channel(s)_Original', 'Audio');
if Output = '' then Output:=Get('Channel(s)', 'Audio');

"Как-то примерно так" не получилось, не врубился. В общем, скопировал скрипт из параметра "Frame Size" и заменил на своё:
Code:
<column name="Channels" type="script"><![CDATA[if (AudioChannelsOriginal = '')  then Output:=AudioChannels else Output:=AudioChannelsOriginal;]]></column>

По аналогии ещё добавил:
Code:

<column name="Sampling Rate" coltype="ft_numeric_floating">
   <unit name="KHz" type="script"><![CDATA[if (AudioSamplingRate <> '') then Output:=Format('%f', AudioSamplingRate/1000);]]></unit>
</column>
...
<column name="Resolution" type="script"><![CDATA[if (AudioResolution = '')  then Output:='-' else Output:=AudioResolution;]]></column>

В общем, человеку, воспитанному на 'Atari Basic', так понятней Very Happy Спасибо за науку!

#728:  Author: Loopback PostPosted: Mon Jun 12, 2023 16:53
    —
790
Да, что-то я начудил тут, Get это же только для листерной части. У вас всё правильно Smile

#729:  Author: 790 PostPosted: Wed Jun 28, 2023 21:15
    —
Code:
allprops.txt:
Audio_Language_List: Audio languages in this file separated by /
Language: Language (2-letter ISO 639-1 if exists, else 3-letter ISO 639-2, and with optional ISO 3166-1 country separated by a dash if available, e.g. en, en-us, zh-cn)

Во втором параметре ни слова про /, однако, он там всё-таки есть?

Во втором source есть stream="*"
Code:
<source name="AudioLangCode" field="Language" context="Audio" stream="*"/>

без * показывает только код первого языка. (а их бывает больше 2-х)

В общем, как сделать, чтобы при пустом значении Language и AudioStreamCount > 1, не рисовались пустые слэши / / , а было написано просто число аудио-потоков; а при наличии AudioLangCode показывались сами эти "коды", даже если код один?
Типа так:
Code:

<column name="Audio Language Code" type="script">
<![CDATA[if (AudioLangCode = '') then
    begin
    if (AudioStreamCount < 2) then Output:='' else Output:=AudioStreamCount;
    end
    else Output:=AudioLangCode
]]>
</column>

но так не получается, потому что, видимо, значение AudioLangCode не пустое, там эти слэши мешают чтоли?

#730:  Author: Loopback PostPosted: Fri Jun 30, 2023 23:03
    —
790 wrote:
Во втором параметре ни слова про /, однако, он там всё-таки есть?

Это разные вещи. Эти слеши (или другие символы, заданные в ключе MultiSeparator) добавляет сам плагин, при использовании вывода из всех потоков с помощью "*" - нужно же их чем-то разделять.

790 wrote:
В общем, как сделать, чтобы при пустом значении Language и AudioStreamCount > 1, не рисовались пустые слэши / / , а было написано просто число аудио-потоков; а при наличии AudioLangCode показывались сами эти "коды", даже если код один?

Если число потоков больше 1, то Language одного потока может быть пустой, а другой нет. По идее об отсутствии нужно судить только по факту, когда пустые все. Не знаю, может надо было бы изначально возвращать пустую строку, если все составляющие пустые. С другой стороны пусть это не очень красиво выглядит, зато видно, что значений несколько и они пустые.

Думаю, в качестве решения, пусть и немного корявого, можно заменить пробелы и слеши на пустую строку и проверить результат, если он пустой - возвращать число потоков.
Code:

<column name="Audio Language Code" type="script">
      <![CDATA[
         TestStr := StrReplace(AudioLangCode, '/', '');
         TestStr := StrReplace(TestStr, ' ', '');
         if (TestStr = '') then
         begin
            if (AudioStreamCount < 2) then Output:='' else Output:=AudioStreamCount;
         end
         else Output:=AudioLangCode;
      ]]>
</column>

#731:  Author: 790 PostPosted: Sat Jul 01, 2023 02:51
    —
Да, так работает! Правда не всегда влезает в строку, если языков в файле много.
Так что я сделел так, удалил stream="*" вообще и далее:
Code:

<column name="Audio Language Code" type="script">
<![CDATA[if (AudioLangCode = '') then
   begin
if (AudioStreamCount < 2) then Output:='' else Output:=AudioStreamCount;
   end
   else
   begin
if (AudioStreamCount<2) then Output:=AudioLangCode else Output:=AudioLangCode+' +'+String(AudioStreamCount-1);
   end
]]>
</column>

и так оно работает:
Если там нет кодов и 1 аудио-поток, то будет пусто;
Если там нет кодов, а потоков >1, то будет число потоков;
Если там 1 код и 1 поток, то будет 1 код;
Если там 1 код и потоков >1, то будет первый код +N кодов и я буду знать, что надо глянуть в листере, что там ещё за языки и/или форматы звука.
Мой телек не позволяет мне переключать аудио-дорожки, и хотя, как правило, первым идёт "ru", зачастую приходится удалять ненужные.

#732:  Author: jentoso PostPosted: Sat Sep 02, 2023 19:14
    —
Использую кнопку для просмотра в Lister
Code:
TOTALCMD#BAR#DATA
%COMMANDER_EXE%
%P%N /S=L:Ptcmediainfo
WCMICONS.DLL,414
Просмотр MediaInfo Plugin

0
-1

Сам плагин настроен так, чтобы не хватал все файлы, а только по требованию
Code:
10=%COMMANDER_PATH%\plugins\WDX\TCMediaInfo\TCMediaInfo.wlx
10_detect="ext="XXX""

Почему-то в TC x64 данная кнопка не срабатывает, просто открывается внутренний Lister.
P.S. Еще заметил, что после закрытия Lister, процессы TOTALCMD.EXE и TOTALCMD64.EXE остаются в памяти. Данная проблема была в плагине Autorun, проблему решил.

#733:  Author: Loopback PostPosted: Sun Sep 03, 2023 22:28
    —
jentoso wrote:
Почему-то в TC x64 данная кнопка не срабатывает, просто открывается внутренний Lister.

У меня и в 32-битном не работал... Но причину нашёл - проблема в расширении wdx для листерного плагина. При этом при нажатии кнопки плагин вообще тоталом не загружался. Если сделать копию плагина с именем TCMediaInfo.wlx и указать его в ListerPlugins, то всё начинает работать. Полагаю, это можно считать багом тотала, учитывая что по F3 всё работает и c расширением wdx, то и в таком сценарии должно работать.

В x64 тоже работает, если сделать копию TCMediaInfo.wdx64 в TCMediaInfo.wlx64.

Не знаю, может всё же стоит сделать пару сопутствующих файлов-врапперов wlx/wlx64 (как в Imagine), чтобы исключить такие проблемы.

#734:  Author: jentoso PostPosted: Sun Sep 03, 2023 22:45
    —
Loopback wrote:
В x64 тоже заработало, если сделать копию в TCMediaInfo.wlx64.

Сделал копию TCMediaInfo.wdx64 и переименовал в TCMediaInfo.wlx64, все работает.
А я уже и не помню, почему для 32-битной версии переименовал копию в wlx, а для 64 не догадался.

#735:  Author: burav PostPosted: Wed Sep 13, 2023 11:10
    —
Добрый день!
Подскажите, почему у одного файла русские тэги в листерном плагине отображаются кракозябрами, у другого - нормально, хотя в контентном плагине оба файла отображаются правильно?

Спасибо

#736:  Author: Loopback PostPosted: Wed Sep 13, 2023 13:56
    —
День добрый.

Всё просто: в файле с кракозябрами тег сохранен в кодировке win1251, что не соответствует стандарту тега, раньше многие программы этим грешили. По стандарту, если строки в теге не юникодные, их кодировка должна быть ISO 8859-1. Когда-то давно библиотека читала теги в локальной кодировке, но потом автор вдруг решил "исправить ошибку" и строго следовать стандарту. Просьбы сделать опцию для совместимости с такими файлами действия не возымели. Подробнее можно почитать в документации.

Думаю, самый правильный способ исправить проблему - с помощью редактора тегов поменять кодировку тегов в файлах на какую-нибудь юникодную, т.к. косяк рано или поздно всплывёт не только с MediaInfo (к примеру, медиасервера Navidrome и Jellyfin тоже не читают такие теги корректно).

Но вообще, такого быть всё равно не должно, поскольку для этих полей включён костыль для исправления кодировки. Версия плагина и конфигурация точно не какие-нибудь совсем старые? Если всё актуальное, скиньте куда-нибудь проблемный файл, посмотрю.

#737:  Author: burav PostPosted: Wed Sep 13, 2023 21:14
    —
Версия плагина 1.0.7, конфиг практически дефолтный
Кодировку поменять можно, это будет лучшее решение. Но меня, в первую очередь, смутила разница между выводом в контентном и листерном виде.
https://disk.yandex.ru/d/HP-vJ2FqBdyBhg

#738:  Author: Loopback PostPosted: Wed Sep 13, 2023 23:37
    —
burav
В общем, оказалась глупейшая ошибка - вызов FixCodepage в шаблоне "Default" почему-то оказался закомментирован. Просто уберите // в начале строки с этим вызовом, всё будет работать нормально.

#739:  Author: burav PostPosted: Fri Sep 15, 2023 16:01
    —
Loopback wrote:
burav
В общем, оказалась глупейшая ошибка - вызов FixCodepage в шаблоне "Default" почему-то оказался закомментирован. Просто уберите // в начале строки с этим вызовом, всё будет работать нормально.

спасибо, всё работает!)

#740:  Author: 790 PostPosted: Mon Sep 25, 2023 16:23
    —
Я извиняюсь, у меня такой неожиданный вопрос: а почему окно листер-плагина (в частности, этого) не прокручивается "стрелками" вниз/вверх на клаве, а только колесом мыши? Или это у всех листер-плагинов так?

Посмотрел некоторые другие листеры - все кнопки "навигации" работают штатно.

#741:  Author: AvadaLocation: Россия, Саратов PostPosted: Mon Sep 25, 2023 21:19
    —
790
Выберите в этом плагине в отображаемом тексте какую-то строку курсором — будет прокручиваться клавишами. У некоторых других плагинов это организовано иначе и прокрутка клавишами идёт сразу. А что в вашем понимании означает "другие листеры", я не знаю.

#742:  Author: Loopback PostPosted: Mon Sep 25, 2023 21:26
    —
790
Да, всё работает. Просто по умолчанию фокус не стоит на списке (делалось умышленно), при клике мышью список получает фокус и стрелки начинают работать. Но я как обычно забыл про клавиатурщиков, а поставить фокус без мыши получается затруднительно. Думаю, вполне можно сделать, чтобы список получал фокус при первом нажатии стрелок.

#743:  Author: LonerDLocation: Макеевка PostPosted: Tue Sep 26, 2023 06:34
    —
Loopback wrote:
Думаю, вполне можно сделать, чтобы список получал фокус при первом нажатии стрелок.

При быстром просмотре в соседней панеле удобно было бы, чтобы панель просмотра получала фокус при нажатии на Tab (так сделано во многих других листерных плагинах).

#744:  Author: Loopback PostPosted: Tue Sep 26, 2023 15:15
    —
LonerD
Думал про таб, но не вижу большого смысла. Зачем списку получать фокус (что влечёт отрисовку выделения строки), если не планируется перемещаться стрелками? А если планируется, то после смены фокуса на панель с предпросмотром стрелки будут работать так же, как в оконном режиме.

#745:  Author: 790 PostPosted: Tue Sep 26, 2023 15:37
    —
Avada Извините, имелось в виду "другие листер-плагины".
Loopback Ну так-то да, конечно, с кликом работает.

#746:  Author: LonerDLocation: Макеевка PostPosted: Tue Sep 26, 2023 23:49
    —
Loopback wrote:
Думал про таб, но не вижу большого смысла. Зачем списку получать фокус, если не планируется перемещаться стрелками?

Наоборот - получать фокус через таб надо в том случае, если планируется перемещаться стрелками. То есть работать с панелями исключительно с клавиатуры.
Хотя мне это не особо актуально, я в основном так и остался мышефилом Embarassed

#747:  Author: 790 PostPosted: Sat Dec 16, 2023 23:35
    —
Простите, если что-то пропустил, но нет ли каких-нибудь команд к TCMediaInfo.exe ?
Например, TCMediaInfo.exe /clear
Чтоб одной командой с кнопки очищал, сжимал и подтверждал (молча, без "Done") базу.

Стал пользоваться базой, потому как у меня видео-файлы получают разные иконки в зависимости от AudioCommercialName, во избежание задержки отбражения в панели

#748:  Author: Loopback PostPosted: Tue Dec 19, 2023 16:59
    —
790
Нет, такого в настоящее время не предусмотрено.

#749:  Author: 790 PostPosted: Sat Feb 10, 2024 19:30
    —
Loopback
https://forum.wincmd.ru/viewpost.php?p=136825
Вот сейчас обсуждаем одну проблемку, в которой замешан wdx_TCMediaInfo, может подскажите решение? Суть в том, чтобы плагин НЕ работал на сетевом диске (vpn)

#750:  Author: Orion9 PostPosted: Sun Feb 11, 2024 01:05
    —
Очередной искусный/продвинутый плагин, делающий жизнь в TC просто комфортной!
Сколько лет пользуюсь, а нарадоваться не могу. Спасибо, Loopback! Smile

Запрос поддерживаю - действительно нужна такая вещь.
А лучше отдельное поле, где можно будет проверять условие. Иначе на сетевом диске при работе могут наблюдаться жуткие тормоза, в зависимости от скорости обмена.

#751:  Author: Loopback PostPosted: Sun Feb 11, 2024 19:15
    —
790, Orion9
Суть проблемы в принципе понятна, но решать ее по-хорошему надо так, как вы и пытались в той теме, т.е. со стороны поиска, исключая в конкретном поисковом запросе сетевые пути.

Проверил, что выдаёт FileX, на локальных файлах F, на сетевых (что на UNC путях, что на смонтированных) - N. А должен Fixed и Network соответственно (ну или локализованное имя). Т.е. ошибка в плагине, скорее всего с типами строк, поэтому он выдает неверную строку и сравнение не работает. Причём поменять вручную в ini не получается, т.к. эта колонка типа MultipleChoice и подставляемое значение должно быть строго равно одному из предопределенных значений.

Orion9 wrote:
А лучше отдельное поле, где можно будет проверять условие.

Если имеется в виду реализовать в плагине дополнительное поле, что-то вроде "тип диска", то это проблематично, поскольку текущая реализация заточена на получение данных из библиотеки. Воткнуть туда стороннее поле непросто.

Если же делать xml-опцию, то она будет применяться везде: в поиске, просто при заходе на сетевой ресурс, при работе подсказок. Не самый лучший вариант.

#752:  Author: Orion9 PostPosted: Sun Feb 11, 2024 19:29
    —
Спасибо за развернутый ответ. Вроде, все понятно. Я тоже заметил через WDX Guide, что он отображает только одну букву, но думал, что так и задумано, пока не проверил на практике.
Жаль, что в вашем плагине нельзя реализовать такую опцию, было бы удобно. Что ж... будем искать другие варианты Smile

#753:  Author: 790 PostPosted: Sun Feb 11, 2024 20:51
    —
Loopback
Я правильно понимаю, мы обсуждаем wdx TCMediaInfo, а не FileX ?
Я правильно понял, что сама "база" занимается поиском в т.ч. на сетевом диске и поэтому запрет на поиск по шаблонам ТС там ничего не даёт? т.е. надо применять "санкции" к базе/плагину, чтоб оно не лезло куда не надо? Или это не так?
Я могу сказать, что на FTP, так сказать, "диске", к которому не применены никакие исключения, видео-файлы показаны с цветами как на локальных (т.е. как в шаблоне поиска) и значками ассоциированного плеера. Плагин wdx TCMediaInfo ничего там не делает, "база" не обновляется.

#754:  Author: Loopback PostPosted: Sun Feb 11, 2024 23:28
    —
790 wrote:
Я правильно понимаю, мы обсуждаем wdx TCMediaInfo, а не FileX ?

И то, и другое. Я выше писал о том, что для поиска с исключением сетевых каталогов правильнее использовать плагин FileX, а конкретно колонку "Тип диска". К сожалению, он имеет баг именно в работе этой колонки. Если бы он работал как надо, то пример поискового запроса, предложенного Orion9, работал бы без скриптовых заморочек.

Суть в том, чтобы первым стояло условие проверки типа диска. Тогда если он сетевой, то проверка последующих условий, которые включают вызов TCMediaInfo, выполняться не будет.

790 wrote:
Я правильно понял, что сама "база" занимается поиском в т.ч. на сетевом диске и поэтому запрет на поиск по шаблонам ТС там ничего не даёт? т.е. надо применять "санкции" к базе/плагину, чтоб оно не лезло куда не надо? Или это не так?

"База" это часть плагина и сама по себе поиском заниматься, разумеется, не может. Плагин же работает только тогда, когда TC выполняет функцию ContentGetValue плагина и передаёт в неё имя файла. В этом случае идет проверка по базе, есть ли такое имя. Если есть, берутся сохраненные данные, если нет - выполняется получение данных через библиотеку MediaInfo и они записываются в базу. По своей инициативе плагин никогда никуда не лезет. Тотал же может вызывать функцию плагина из разных мест, где используются макросы запроса данных плагина: при включенных пользовательских колонках, при выводе подсказки, поиск с использованием плагинов и т.д.

790 wrote:
Плагин wdx TCMediaInfo ничего там не делает, "база" не обновляется.

А много ли плагинов могут работать в панели FTP? Наскидку только встроенный tc-плагин, и то только отдельные поля. На самом деле я как-то не особо интересовался, что там происходит, что-то плагину наверняка передается, но он явно не может такие пути обработать.

#755:  Author: 790 PostPosted: Mon Feb 12, 2024 02:02
    —
В общем, во всём виноваты "Внутренние ассоциации" Very Happy Это они запускают плагин. Плагин определяет что "Commercial name содержит" такой-то тип аудио, и "Внутренние ассоциации" подставляют нужную иконку перед названием видео.
Это не супер-быстрый процесс - файлы-то большие, но на локальных дисках не заметно. А вот на сетевом... Если на лёгком (для роутера) PPTP VPN это не слишком напрягает, то на шифрованных соединениях открытие папки с видео-файлами вводит ТС в полный ступор!
Удаляю настройки "Внутренних ассоциаций" - всё прекрасно: нет иконок - нет проблемы.

#756:  Author: AvadaLocation: Россия, Саратов PostPosted: Mon Feb 12, 2024 07:18
    —
Loopback wrote:
А много ли плагинов могут работать в панели FTP? Наскидку только встроенный tc-плагин, и то только отдельные поля.

Ни одного не будет. Об этом много раз предупреждалось везде и всюду. А работают там на самом деле не отдельные поля встроенного плагина, а типовые колонки из стандартного подробного режима представления.

#757:  Author: bbd PostPosted: Mon Feb 12, 2024 16:16
    —
Подскажите, плиз, что и где можно поправить (или настроить), чтобы для видеофайла, в колонке "число потоков", показывалось не общее число (videoaudiotextmenu), а только число аудио потоков (чтобы на вложенном скрине были "Число потоков" 1 и 2, а не 1111 и 12).

Спасибо.

#758:  Author: Loopback PostPosted: Mon Feb 12, 2024 17:49
    —
bbd
В колонке поменяйте представление по умолчанию на "Число потоков" с выбором единицы "Только аудио".


#759:  Author: 790 PostPosted: Tue Feb 13, 2024 16:03
    —
Всем спасибо! Вопрос решился. Походу, это уже старость, рассеяный склероз начинается...
Плагин тут не причём. Раз уж виноваты "Внутренние ассоциации", то там и надо было копать. Просто создав условия для определённых значков, я не создал условие для отсутствия этих условий на сетевом диске Z: или \\ Embarassed
Сделал, поднял приоритет на самый верх - заработало!

#760:  Author: Loopback PostPosted: Mon Jun 24, 2024 18:20
    —
Обновил версию с накопленными изменениями, на wincmd.ru.

* обновлен русский перевод для новых полей MediaInfo
* обновлена библиотека MediaInfo до версии 24.05
+ добавлены опции MediaInfoPathXP и MediaInfo64PathXP для XP-версий MediaInfo
+ WLX: список теперь получает фокус при первом нажатии стрелок клавиатуры
+ CFG: добавлено большое число поддерживаемых расширений
+ CFG: опция Formats может быть записана в несколько строк
+ CFG: добавлена пустая библиотека UserFunc для пользовательских функций
- CFG: многочисленные мелкие исправления
- WLX: исправлено наложение длинного текста из первой колонки на информацию

#761:  Author: Orion9 PostPosted: Tue Jun 25, 2024 14:20
    —
Loopback wrote:
Обновил версию с накопленными изменениями, на wincmd.ru.

Спасибо за проделанную работу.

Был один недостаток, связанный с базой. Когда скачиваешь файл и он еще недокачался, если в этот момент навести на него указатель мыши, то в базу попадут пустые поля, которые так и будут потом отображаться в подсказке при повторных наведениях.

#762:  Author: Loopback PostPosted: Tue Jun 25, 2024 17:06
    —
Orion9 wrote:
Был один недостаток, связанный с базой. Когда скачиваешь файл и он еще недокачался, если в этот момент навести на него указатель мыши, то в базу попадут пустые поля, которые так и будут потом отображаться в подсказке при повторных наведениях.

Суть понятна. Наверно, не только курсор навести, при настроенном наборе колонок тоже может быть.

Вообще плагин не добавляет файл в базу, если библиотека возвращает ошибку. Проблема в том, что MediaInfo на таких файлах её не возвращает. Однако поскольку тегов и прочего еще нет, добавляются пустые данные. Как отличить докачанный файл от недокачанного - вот в чём вопрос. Думаю со 100% надежностью это в принципе сделать невозможно.

Что в теории может помочь - перед добавлением в базу проверять, что все поля пустые. Если хотя бы одно поле содержит данные, значит всё в порядке.

Но тут есть сомнения:
- если MediaInfo может возвращать неполные данные (например, битрейт получен, а тег еще нет), то в таких случаях метод не поможет.
- если окажется так, что в нормальном файле действительно нет данных, для которых настроены источники, плагин будет пытаться перечитывать его каждый раз. Хотя вероятность такого представляется незначительной.

В общем, можно сделать тестовую версию и погонять ее, окажется ли метод жизнеспособным.

В любом случае это костыль. Самый надежный способ - чтобы качалка меняла расширение файла на временное до момента полного скачивания Smile

#763:  Author: Orion9 PostPosted: Tue Jun 25, 2024 19:32
    —
Quote:
В любом случае это костыль.

Ну, нам на костылях бегать не впервой, и какие-то проверки, наверное, все же нужны. Но можно сделать еще, например, чтобы при зажатом Ctrl плагин перечитывал файл(ы) заново? Думаю, это могло бы решить проблему, которая хоть и не часто, но возникает.

#764:  Author: Loopback PostPosted: Tue Jun 25, 2024 22:46
    —
Orion9 wrote:
чтобы при зажатом Ctrl плагин перечитывал файл(ы) заново

Очень не нравится идея такого использования привязки поведения к клавишам. Похожая штука сделана в плагине wcres (разное поведение в зависимости от включенного Scroll Lock), и я с этим когда-то словил немало неприятных минут. Лучше поискать какие-то другие варианты.

#765: перевод Author: macleod PostPosted: Tue Jun 25, 2024 23:24
    —
Как можно изменить язык приложения? В файле TCMediaInfo.lng я добавил перевод на другой язык, но не понял, как активировать этот язык.

#766:  Author: Orion9 PostPosted: Tue Jun 25, 2024 23:49
    —
Loopback wrote:
Очень не нравится идея такого использования привязки поведения к клавишам

Не вижу большой проблемы. Scroll Lock для подобных целей действительно не подошел бы, поскольку это клавиша переключатель, за состоянием которой нужно следить, и которая, к тому же, не на каждой клавиатуре имеется. А вот Ctrl - самый раз. Захотел принудительно перечитать и обновить запись в базе - удерживаай Ctrl.

#767:  Author: yozhikLocation: Электросталь PostPosted: Wed Jun 26, 2024 00:17
    —
Loopback
Header2BackColor не работает.

macleod
В обоих файлах добавили? И в TCMediaInfo.lng, и в MediaInfo.lng? Далее по заголовку секции:
Code:
<Language>HEB</Language>

и обязательно перезапустить Total Commander.

#768:  Author: Loopback PostPosted: Wed Jun 26, 2024 00:40
    —
macleod wrote:
Как можно изменить язык приложения? В файле TCMediaInfo.lng я добавил перевод на другой язык, но не понял, как активировать этот язык.

В TCMediaInfo.xml в узле Language изменить идентификатор языка:

Code:
<Language>RUS</Language>


Либо, если ваш идентификатор языка совпадает с установленным в тотале, можно просто оставить этот узел пустым, будет взят перевод с тем же идентификатором, как в тотале.

Orion9 wrote:
Не вижу большой проблемы.

Это частный случай, если используется вызов из подсказки.

А теперь представим, что открыт набор колонок, файл, который нужно обновить - пятый снизу. Вопрос: как это сделать? Ответ - никак, потому что обновляться будут все файлы, видимые в панели. Как по мне уже проблема. Но даже если это нас устраивает, чтобы их обновить, надо ещё вручную триггернуть обновление панели, сама она не обновится.

yozhik wrote:
Header2BackColor не работает.

Чудеса какие-то, то одна, то другая...
Похоже всё работaет, но есть нюанс. Скорее всего в шаблоне используется вызов DisplayOption. Вызов этот есть во всех трех шаблонах второй группы (Raw info и т.д. ). Непонятно зачем я добавил его туда, когда дефолтное значение нужно было добавлять в конфиг. Попробуйте закомментировать эти строки.

#769:  Author: Orion9 PostPosted: Wed Jun 26, 2024 12:06
    —
Loopback wrote:
А теперь представим, что открыт набор колонок, файл, который нужно обновить - пятый снизу. Вопрос: как это сделать?

Допустим Ctrl работает. При зажатом Ctrl происходит форсированное перечитывание файла и обновление его записи в базе. Что произойдет, если при открытом наборе колонок вызвать подсказку для (пятого снизу или любого другого) пустого файла, наведя на него курсор мыши с зажатым Ctrl? Разве плагин не перечитает этот файл заново и не вернет для него обновленную строку? По идее, будет новая, актуальная подсказка для файла, наполненная свежими данными, в то время как в наборе все еще останется пустая строка. Так ведь и ежу понятно, что панель тоже придется обновить, чтобы и в ней отразились все изменения.

 Hidden text

#770:  Author: yozhikLocation: Электросталь PostPosted: Wed Jun 26, 2024 13:11
    —
Loopback wrote:
в шаблоне используется вызов DisplayOption

Точно, в этом было дело, теперь всё заработало.
Orion9
 Hidden text

#771:  Author: Loopback PostPosted: Wed Jun 26, 2024 13:45
    —
Orion9 wrote:
вызвать подсказку для

Ну то есть опять же - без подсказки решение считай нерабочее. Нет, если и делать, то что-то более универсальное и предсказуемое.

#772:  Author: 790 PostPosted: Wed Jun 26, 2024 17:10
    —
А я ж предлогал добавить ключ к TCMediaInfo.exe - чтоб сразу и check, и compact, и может даже renew делал...

#773:  Author: Loopback PostPosted: Wed Jun 26, 2024 17:51
    —
790 wrote:
А я ж предлогал добавить ключ к TCMediaInfo.exe

То было не предложение, а вопрос Smile Но на самом деле, управление через TCMediaInfo.exe выглядит наиболее вероятным вариантом.

#774:  Author: macleod PostPosted: Thu Jun 27, 2024 07:47
    —
Loopback и vozhik
Теперь все работает, большое спасибо. Пришлось перезапустить TC, плагин запомнил последний язык, даже если я изменил запись в xml файле.

#775:  Author: Orion9 PostPosted: Thu Jun 27, 2024 11:44
    —
Loopback wrote:
Ну то есть опять же - без подсказки решение считай нерабочее. Нет, если и делать, то что-то более универсальное и предсказуемое.

Вы будете смеятся, но в основном я пользуюсь только подсказками. Ну может, 2-3 раза переключился на набор за несколько лет, и все Laughing

И все-равно не понятно, что мешает обновить панель с зажатым Ctrl? Ну если там только сотни файлов. Я просто не знаю, как происходит обновление: страницами или каталогами.

В общем, проблема обозначена и легко воспроизводима. Уверен, вы что-нибудь придумаете, что поможет ее решить и облегчить нам жизнь )

 P.S.

#776:  Author: olegvsk PostPosted: Thu Jun 27, 2024 14:41
    —
Loopback
А где можно взять wlx? В архиве не вижу, там только wdx.

#777:  Author: Loopback PostPosted: Thu Jun 27, 2024 15:08
    —
Orion9 wrote:
Вы будете смеятся, но в основном я пользуюсь только подсказками.

Смеяться тут не над чем, я тоже пользуюсь больше подсказками, но все равно регулярно использую и наборы. Но дело даже не в этом. Раз уж взялся писать плагин публично, то вынужден думать и об удобстве его использования во всех возможных сценариях (подсказки/колонки, листер/быстрый просмотр и т.д.), даже если сам их не использую.

 Hidden text


Orion9 wrote:
И все-равно не понятно, что мешает обновить панель с зажатым Ctrl? Ну если там только сотни файлов. Я просто не знаю, как происходит обновление: страницами или каталогами.

Обновляются все файлы, видимые в данный момент в панели. Т.е. нажал Ctrl, нажал обновить, сидишь ждёшь, пока дойдет до нужного. Или подгоняешь скроллом так, чтобы нужный файл оказался у верхней границы. В общем, выглядит удобно, да Very Happy

olegvsk wrote:
А где можно взять wlx? В архиве не вижу, там только wdx.

Плагин совмещенный, функции wlx в том же TCMediaInfo.wdx. К сожалению, добавлять средствами тотала такие плагины не очень удобно.

Давно думал сделать враппер для wlx (примерно как в Imagine), но пока как-то так.

#778:  Author: yozhikLocation: Электросталь PostPosted: Thu Jun 27, 2024 15:19
    —
olegvsk
(Пардон, если ликбез, но я на всякий случай. Пока печатал, Loopback уже ответил.)
Прописываем wdx вручную в секции [ListerPlugins] wincmd.ini (или там, куда ведёт редирект). Например:
Code:
[ListerPlugins]
...
20=%COMMANDER_PATH%\Plugins\WDX\TCMediaInfo\TCMediaInfo.wdx
20_detect=MULTIMEDIA & EXT="MXF" | FORCE

Можно вписать самым последним, а потом вызвать диалог настройки плагинов (cm_PluginsConfig) и передвинуть на нужную позицию.

#779:  Author: olegvsk PostPosted: Thu Jun 27, 2024 16:19
    —
Loopback, yozhik
Спасибо, разобрался.

#780:  Author: 790 PostPosted: Thu Jun 27, 2024 18:57
    —
Loopback wrote:
790 wrote:
А я ж предлогал добавить ключ к TCMediaInfo.exe

То было не предложение, а вопрос Smile Но на самом деле, управление через TCMediaInfo.exe выглядит наиболее вероятным вариантом.

Я ничего не требую Smile Ну просто необходимость запуска TCMediaInfo.exe, чтобы потом ещё нажать Check files, поставить галочки Remove.., Compact.. ,нажать Perform... зачем столько действий? Так бы засунул в автозапуск Windows (хорошо бы ещё без открытия окна, в silent) и вообще бы не вспоминал об очистке "базы".

#781:  Author: Loopback PostPosted: Thu Jun 27, 2024 23:22
    —
790 wrote:
нажать Check files, поставить галочки Remove.., Compact.. ,нажать Perform... зачем столько действий? Так бы засунул в автозапуск

Вообще, конечно, никогда не предполагалось проводить обслуживание с такой частотой. Да этого и не требуется. Вполне можно раз в месяц-другой открыть и выполнить. Но хозяин — барин.

#782:  Author: Orion9 PostPosted: Fri Jun 28, 2024 13:41
    —
Loopback wrote:
Обновляются все файлы, видимые в данный момент в панели. Т.е. нажал Ctrl, нажал обновить, сидишь ждёшь, пока дойдет до нужного. Или подгоняешь скроллом так, чтобы нужный файл оказался у верхней границы. В общем, выглядит удобно, да Very Happy

А разве я изначально не исходил из того, что таких файлов мало, буквально единицы? В таких случаях достаточно обновить некоррекную запись в базе специальным вызовом (команды, подсказки, кнопки, шортката, чего угодно). Вызов подсказки с зажатым Ctrl - всего лишь один из вариантов. Причем неважно где происходит такой вызов, в наборе или не в наборе. А обновлять страницу (все видимые файлы на панели) из-за одного файла смысла действительно нет, если только не стоит именно такая задача - обновить сразу все записи для всех видимых файлов, или если на странице присутствует 3-4 пустых записи, чтобы не обновлять каждый файл по одиночке.
Loopback wrote:
По этой причине никогда не делал публичные сборки тотала. Хорошая сборка всегда слишком индивидуальна. Ради чего жертвовать удобством, добавляя ненужные лично мне фичи, утилиты, команды, режимы и т.д.?

Ну если только это является препятствием, то это слабое препятствие.) Ведь не обязательно делать универсальную сборку, чтобы угодить всем (хотя это и подразумевается в самом слове "сборка"). Универсальная сборка отнимает много времени, а чтобы ее сделать, нужно обладать большими знаниями. Поэтому сборщики вызывают у меня уважение. К тому же, интересно черпать идеи с чужих сборок. Жаль только, что одну сборку мне так и не удалось пока посмотреть:

 Hidden text

#783:  Author: Orion9 PostPosted: Fri Jun 28, 2024 17:48
    —
Quote:
Так бы засунул в автозапуск Windows

Зачем автозапуск Windows, когда есть плагин Autorun? Тут у меня строгий порядок: сначала запускаю Total, потом Windows Mr. Green

#784:  Author: Loopback PostPosted: Fri Jun 28, 2024 22:04
    —
Orion9
Ладно, больше спорить буду. Вижу, что мои аргументы недостаточно убедительны. Придётся просто воспользоваться правом автора на своё видение того, как будет правильно...

Orion9
 Оффтоп

Orion9 wrote:
Зачем автозапуск Windows, когда есть плагин Autorun?

Пожалуй это тот случай, когда на самом деле лучше автозапуск винды: поиск отсутствующих файлов может занимать приличное время. Если же только Vacuum делать, то да, можно будет и через Autorun.

#785:  Author: Orion9 PostPosted: Sat Jun 29, 2024 14:39
    —
Loopback wrote:
Вижу, что мои аргументы недостаточно убедительны.

Почему не убедительны? Перспектива "скроллить" панель с зажатым контролом еще как меня убедила Mr. Green

Если серьезно, просто я не совсем понял, о каком более универсальном решении могла идти речь. Ведь задача вполне ясна. В базе есть запись несоответствующая действительности. Ее нужно привести в порядок. Для этого я выделяю нужный файл и заставляю плагин перечитать его заново. Триггером может послужить что угодно: кнопка на панели, клавиша-модификатор, отдельная комбинация клавиш и т.д. При чем тут набор или не-набор, если обновление (коррекция) одиночной записи происходит по моему (пользовательскому) требованию? А таких записей и есть единицы. Исправить их руками по одной можно очень быстро. И не нужно для этого делать обслуживание всей базы, типа Remove, Compact и т.п. И уж тем более не нужно прописывать такое обслуживание в автозапуск. Достаточно сделать отдельную панель с командами обслуживания, откуда вручную их переодически выполнять.

Можно еще, конечно, сделать, чтобы битрейт проверялся, и если он нулевой (пустой), сразу делать попытку перечитать файл, как вы и писали. Но все-равно вариант ручной коррекции (принудительного перечитывания) файла по требованию плагину необходим и сам напрашивается. Вопрос только в триггире. Если вам не нравится Ctrl, то есть и другие варианты.

P.S.

Мда. И оффтопить не хочется, и тему создавать лень. Но тем не менее.

 Оффтоп

#786:  Author: Monarch-LFV PostPosted: Sat Jun 29, 2024 17:59
    —
Loopback
Будучи установлен как wlx (версия 1.0.8 ) плагин почему-то по ctrl+Q (и F3) перехватывает просмотр обычных текстовых файлов TXT. На версии 1.0.7 такого не происходит. В Detect строке: MULTIMEDIA | FORCE.
По поводу обновления базы вставлю свои 5 копеек: считаю, что в базу попадают много лишних данных, то есть все файлы в папке (PDF, TXT, ZIP, RAR), по крайней мере в версии 1.0.8 (кстати, скорее всего именно из-за этого описанный мной перехват и происходит, в 1.0.7 в базе таких записей не было). Эти файлы соответственно не имеют битрейта и других данных, однако существуют, поэтому, думаю, излишне будет перечитывать такие файлы заново. А обслуживание базы сделать, как делают другие подобные программы: а-ля "сжать базу", "проверить на наличие несуществующих", может "перечитать все файлы заново".
Для себя при глюках базы решаю кардинально - просто убиваю файл base.db. Да, теряю все данные о ранее прочитанных, но мне они и не нужны. А если нужно, то можно благодаря Everything и команде LOADLIST загрузить все видеофалы со всех дисков разом на панель и активировать пользовательские колонки с вашим плагином (плюс сортировку по колонке плагина, чтобы плагин перечитал все файлы в панели, а не только отображаемые на экране). Подождать N минут (зависит от количества файлов и скорости дисков) и все - актуальная база готова.

#787:  Author: VimanLocation: Moscow PostPosted: Sat Jun 29, 2024 21:15
    —
Monarch-LFV, в версии 1.0.8 "добавлено большое число поддерживаемых расширений". Если какие-то не нужны, то просто удалить их в TCMediaInfo.xml в самом начале из секции Formats.

#788:  Author: Loopback PostPosted: Sat Jun 29, 2024 21:24
    —
Orion9 wrote:
Если серьезно, просто я не совсем понял, о каком более универсальном решении могла идти речь.

Наверно я тоже не понял. Более универсальное просто имелось в виду не зависящее от наличия у пользователя настроенных подсказок. Ну и без удержания ctrl, да.

Orion9 wrote:
Для этого я выделяю нужный файл и заставляю плагин перечитать его заново.

Именно так и будет реализовано. Точнее уже сделано, немного причешу и завтра (наверно) выложу тестовую версию.
Orion9 wrote:
Можно еще, конечно, сделать, чтобы битрейт проверялся

Это все же не самый надежный вариант. Пожалуй, пусть пока будет только ручное обновление.
Orion9 wrote:
И оффтопить не хочется

Всё, оффтоп закрываем Smile

Monarch-LFV wrote:
Будучи установлен как wlx (версия 1.0.8 ) плагин почему-то по ctrl+Q (и F3) перехватывает просмотр обычных текстовых файлов TXT. На версии 1.0.7 такого не происходит.

Да, это потому что добавил все расширения, поддерживаемые библиотекой (узел formats). Пожалуй, это неправильный подход, надо будет умолчания подкорректировать, txt и docx с подобными, а также архивы и exe/dll убрать. Я не знаю, зачем их поддержка добавлена в MediaInfo.

Просто уберите ненужные расширения из Formats и перезапустите тотал. А в следующей версии их состав оптимизирую.

Monarch-LFV wrote:
А обслуживание базы сделать, как делают другие подобные программы: а-ля "сжать базу", "проверить на наличие несуществующих", может "перечитать все файлы заново".

Да, выше писал, так и будет.

Monarch-LFV wrote:
Для себя при глюках базы решаю кардинально - просто убиваю файл base.db.

Простейший и вполне действенный вариант. Какой-то особой ценности база и не представляет, это же по-сути просто кэш.

#789:  Author: Orion9 PostPosted: Sun Jun 30, 2024 12:38
    —
Loopback wrote:
Это все же не самый надежный вариант.

Почему не самый надежный? Еще не встречал видео с нулевым битрейтом Mr. Green И аудио тоже... Или такие "звери" существуют в природе? )
Loopback wrote:
Я не знаю, зачем их поддержка добавлена в MediaInfo.

Как зачем? Автор явно хотел добавить "универсальности" Mr. Green Раскрыть, так сказать, весь потенциал MediaInfo Mr. Green Что из этого вышло, вы прекрасно видите ))
Loopback wrote:
Всё, оффтоп закрываем Smile

Да закрываем, конечно. Тут нужна отдельная тема. И нужна ли? Никакой Америки я вам не открою. Все и так давно известно, тем более такому профи, как вы Smile Я лишь хотел сказать, что та причина, которую вы привели, не может быть веской, чтобы не делать сборку, если желание делать сборку у вас вообще есть.)) А на счет "универсальности", то и так понятно, что всем мил не будешь. Поэтому в таких делах главное сразу задать верное направление и не заиграться в раскрытие ненужного потенциала. Мне, например, в свое время понравилась в этом отношении сборка в AdminPE, где автор изначально закладывает определенную концепцию в свою сборку и четко ей следует.

#790:  Author: Monarch-LFV PostPosted: Sun Jun 30, 2024 13:30
    —
Orion9 wrote:
Еще не встречал видео с нулевым битрейтом Mr. Green И аудио тоже... Или такие "звери" существуют в природе? )

Поверьте, бывают, можете сами проверить - у файлов с видеокодекамм "V_MPEG4/ISO/AVC" и "V_VP9" не определяется битрейт видео. У меня на таких файлах и в колонках на битрейте видео пусто, и в быстром просмотре пусто и в базе эта часть информации отсутствует. Хотя видео проигрывает без проблем.
Примеры такого видео.
В чем может быть причина?

Добавлено спустя 2 часа 34 минуты:

Кстати, обновились библиотеки MediaInfo до версии 24.06.

#791:  Author: Loopback PostPosted: Sun Jun 30, 2024 17:05
    —
Orion9 wrote:
Почему не самый надежный? Еще не встречал видео с нулевым битрейтом

Как верно заметил Monarch-LFV, бывают. Я такие файлы тоже встречал. Поэтому не привязывался бы только к битрейту. Более-менее однозначно только если все поля пустые.
Orion9 wrote:
Автор явно хотел добавить "универсальности"

Справедливости ради, в обычных сценариях, когда MediaInfo используется как единственный источник информации, такой проблемы просто не возникнет. Это специфика совместной работы плагинов TC.

#792:  Author: 790 PostPosted: Sun Jun 30, 2024 17:36
    —
Если кому-то поможет, то записи в base.db можно открыть и прочитать плагином wlx Sqliteviewer

#793:  Author: Orion9 PostPosted: Sun Jun 30, 2024 18:26
    —
Monarch-LFV
Вы мне напомнили: действительно может Laughing Если бы я чаще пользовался набором колонок, пустые поля мне бы лучше запомнились (в подсказке это не так очевидно, потому как информация о видео и аудио у меня берется в одну строку, т.е. например видео 1920x1080 (16:9), 60.000 fps, AVC, а аудио Opus, 48.0 kHz, 2 Ch, Дорожек: 1)

Обычно, если файл недокачен, вся подсказка пустая, и это сразу бросается в глаза. Но только лишь по битрейту этого не определить. Т.ч. очередной мой промах и гол в ворота от Loopback Laughing

Quote:
В чем может быть причина?

Скорее всего в переменном битрейте. Но я в таких делах не сильно разбираюсь. К тому же, неизвестно как были созданы эти файлы. Почему для современных кодеков используется старый контейнер (вернее расширение). Что мне показалось наиболее странным: даже если нет битрейта у видео и аудио потоков, то обычно общий битрейт все-равно присутствует, но здесь у одного файла и его нет.

Quote:
Справедливости ради, в обычных сценариях, когда MediaInfo используется как единственный источник информации, такой проблемы просто не возникнет.

Да не. Я давно заметил, что MediaInfo может работать с другими форматами, например картинками. Но информации там практически никакой. Вопрос: зачем вообще нужна такая поддержка? Вместо того, чтобы расширять список ненужных форматов, лучше бы автор MediaInfo сосредоточился на алгоритмах определения битрейта у вышеуказанных файлов, хотя бы примерном, исходя из других доступных в них параметров.

Добавлено спустя 1 час 41 минуту:

Monarch-LFV
Ролл про яйца зачётный, приколоться можно.)) Но такое ощущение, что он либо недокачан, либо отрезан как-то не так. В любом случае, информации нет даже о продолжительности, может и битрейта общего тоже поэтому нет. Я думаю, тут все зависит от библиотеки кодирования и ее настроек. Если при кодировании запись о переменном битрейте сразу не помещается в заголовок, то потом ей взяться неоткуда. Поможет только перерасчет и обновление заголовка. Что-то подобное я видел в foobar2000, функция Fix VBR MP3 Header. Но это что касается mp3, а на счет видео сказать не могу.

#794:  Author: Orion9 PostPosted: Mon Jul 01, 2024 00:26
    —
Глянул ради интереса. Если взять тот же MKV, то заголовок вручную поправить не получится. Рекомендуют делать Remux, чтобы информация в заголовке сама обновилась. Например, fmpeg -i input.mkv -c copy output.mkv. Но я часто пользуюсь MKVMerge, поэтому попробовал сделал этой программой. На выходе получился 3D Eggs Size Comparison Animal Egg Size.mkv с появившейся информацией о продолжительности и битрейте всех потоков. Тоже самое и с Kayatma feat. Pasha Bochkarev & Argishty - Hjarta.mkv, теперь тоже все показывается корректно. Т.ч. речь здесь идет больше о неправильном или неполном заголовке, вряд ли MediaInfo сможет что-то с этим сделать.

#795:  Author: Monarch-LFV PostPosted: Mon Jul 01, 2024 01:16
    —
Orion9
Вы правы, файлы скорее всего косячно скаченные, кривые (3D egg.., скачивал программой yt-dlp), и конечно же, если их пересобрать (перекодировать) заново, то информация появится. Я просто писал к тому, что нельзя основываться на сам факт пустого битрейта, что он может быть пустым.

#796:  Author: Orion9 PostPosted: Mon Jul 01, 2024 11:29
    —
Monarch-LFV
Да, я тоже пользуюсь yt-dlp. Норм утилита. Smile Бывало у меня, что если места на диске мало, на выходе мог получиться косячный файл после недозавершенного слияния. Но может быть, у вас по другой причине он был недокачан.

 3D egg

В общем, да. Битрей брать нельзя. Но может быть другие параметры можно? Хотя нужно ли, если будет возможность вручную быстро поправить (перечитать файл заново).

#797:  Author: Loopback PostPosted: Mon Jul 01, 2024 14:41
    —
Тестовая версия

Для TCMediaInfo.exe сделан интерфейс командной строки, все функции обслуживания теперь доступны в том числе и из него. Также добавлены параметры для быстрого удаления из базы записей выбранных файлов. Соответственно, после удаления информация для этих файлов будет обновлена обычным способом.

Информация по параметрам командной строки в справке, раздел "Управление и обслуживание" (бывший Обслуживание).

Версию для x64 не включаю, она не менялась (весь код конфигурации и управления находится в 32-битной библиотеке).

Orion9 wrote:
Я давно заметил, что MediaInfo может работать с другими форматами, например картинками. Но информации там практически никакой. Вопрос: зачем вообще нужна такая поддержка?

Картинки могут быть в контейнере, так что тут логика есть. Вот зачем архивы, docx и exe с dll решительно непонятно, но может мы чего-то не знаем. В конце-концов есть контекст "Other", а туда в теории может что угодно попадать.

#798:  Author: Orion9 PostPosted: Mon Jul 01, 2024 20:16
    —
Что-то я не понял. Прошел сейчас процесс обновления, включая последнюю библиотеку MediaInfo, и все работает просто "мухой". База выключена. Думаю, что с такой скоростью база вообще может быть не нужна Laughing
Quote:
Картинки могут быть в контейнере, так что тут логика есть

Есть, согласен. Открыл сейчас картинку ради интереса. Кажись, лучше стало. Раньше, если я все правильно помню, меньше инфы выводилось.
Quote:
Вот зачем архивы, docx и exe с dll решительно непонятно, но может мы чего-то не знаем

Может и не знаем. А может, просто погоня за конкурентами и желание объять необъятное.
Quote:
В конце-концов есть контекст "Other", а туда в теории может что угодно попадать

Включая саму MediaInfo.dll Mr. Green

 Hidden text

#799:  Author: 790 PostPosted: Mon Jul 01, 2024 22:29
    —
Я так понимаю, TCMediaInfo.exe теперь строго заточен на файлы TCMediaInfo.wdx и TCMediaInfo.xml.
А у меня-то они называются по-другому: TCMediaInfoV.wdx и TCMediaInfoV.xml , потому что плагин уже давно "поделен" на две части - Audio и Video. Потому что для аудио и видео у них разные задачи и на аудио база мне не нужна. А переименовывать файлы - много чего рухнет.
В общем, получил я сообщения об отсутствии файлов.

#800:  Author: Loopback PostPosted: Mon Jul 01, 2024 23:43
    —
790 wrote:
Я так понимаю, TCMediaInfo.exe теперь строго заточен на файлы TCMediaInfo.wdx

Нет, конечно, нужно только переименовать exe, чтобы он имел такое же имя, как wdx, в данном случае TCMediaInfoV.exe. Решил немного упростить логику, довольно нерационально делать поиск при каждом запуске. Добавлю это в справку.

Добавлено спустя 8 минут:

Orion9 wrote:
Что-то я не понял. Прошел сейчас процесс обновления, включая последнюю библиотеку MediaInfo, и все работает просто "мухой". База выключена. Думаю, что с такой скоростью база вообще может быть не нужна

Как-то странно, не верю я, что можно кардинально улучшить скорость работы библиотеки. Собственно, и не заметил какой-то разницы при обновлении.

#801:  Author: Orion9 PostPosted: Tue Jul 02, 2024 00:58
    —
Loopback
Сижу и кайфую. Скорость - космос. Про базу можно забыть Laughing

В 64-битном ТС тоже все в поряде. Даже по сетке скорость приличная.

Разумеется, если файлы большие, с большим количеством дорог и титров, некая задержка присутствует. Но я даже в памяти базу отключил, поскольку не требуется Laughing

#802:  Author: 790 PostPosted: Tue Jul 02, 2024 02:24
    —
Loopback
Да, спасибо, так заработало.

Orion9
А я вот без базы не могу, иначе очень долго отображаются файлы видео.
Мой телек не хочет переключать дорожки аудио при трансляции через DLNA, поэтому приходится "вычищать" лишние дорожки через MKVToolNix. а ещё сокращать очень длинные названия. Из-за этого в базе много мусора.

У меня ж ещё по каждому видео-файлу отображается своя иконка по "Поиск с плагинами->Commercial name" его аудио (DD, DD+, DTS и т.д.). Иконки засунуты в WCMICONS.DLL. Так что без базы это всё долго.

#803:  Author: Monarch-LFV PostPosted: Tue Jul 02, 2024 06:32
    —
Loopback
Проблемы тестовой версии:
1. Дома стоит drweb, скачал и все работает.
На работе групповая политика безопасности - Касперский, сразу при скачивании удаляет EXE-шник.
Firefox даже заходить по вашей ссылке на архив на сайте darkhost.ru отказывается, сразу Касперский перехватывает.
Пришлось качать через другой браузер, но все равно без экзешника в архиве.

2. В справке небольшой недочет: в таблице указан ключ /RL, а в примере ниже /LR.

#804:  Author: Loopback PostPosted: Tue Jul 02, 2024 11:56
    —
Orion9 wrote:
Сижу и кайфую. Скорость - космос. Про базу можно забыть

Ну что же, я рад что так быстро всё работает. Сам, к сожалению, такого сказать не могу Smile

Monarch-LFV wrote:
Проблемы тестовой версии:

Даже не знаю, что тут можно сделать. Ничего потенциально опасного там, разумеется, нет. Но современные антивирусы крайне параноидальны и могут найти вирусы даже в пустом экзешнике. Наверно подпись приложения помогла бы, но это всё стоит очень немалых денег.

Однако файл новый, если его лишний раз не менять, то со временем (наверно) должна наработаться некая "репутация", или как там всё происходит.

Попробовал отправить его на VirusTotal, там только 3 срабатывания, причём Касперский ничего не детектит.

Monarch-LFV wrote:
В справке небольшой недочет: в таблице указан ключ /RL, а в примере ниже /LR.

Да, так бывает, когда делаешь, потом переименовываешь... Исправлю.

#805:  Author: Orion9 PostPosted: Tue Jul 02, 2024 12:53
    —
790 wrote:
А я вот без базы не могу, иначе очень долго отображаются файлы видео.

Речь, видимо, идет о наборе колонок? Просто я имел в виду скорость всплытия подсказок, когда я говорил о скорости. А набором я практически не пользуюсь. Однако если на него переключиться, то конечно, все выстраивается не в одно мгновение, но все-равно довольно быстро, как мне представляется.

Кстати, в последних версиях MediaInfo появилась MediaInfo_InfoTip.dll, создает весьма симпатичный тултип в Проводнике. Еще одно kudos автору библиотеки.)

790 wrote:
Мой телек не хочет переключать дорожки аудио при трансляции через DLNA, поэтому приходится "вычищать" лишние дорожки через MKVToolNix.

Именно эту прогу я имел в виду, когда писал MKVMerge. Перепутал экзешники Laughing В свое время я немного вник в эту тему. Конечно, многое зависит от телевизора, но все же рекомендуют использовать отдельный Media Player + NAS коробку для максимального комфорта, так сказать.)
790 wrote:
а ещё сокращать очень длинные названия. Из-за этого в базе много мусора.

Я много лет вообще не чистил базу. Реально не заметил никакого падения скорости из-за этого. Какого только мусора там не было, но не раз выручала, если нужно было восстановить список просмотренного. Позже я стал качать раритетные видео напрямую с vk и одноклассников. Часто были недокачки и пустые подсказки. Поэтому пришлось отключить базу на диске и перевести ее в RAM (<MemoryBase>true</MemoryBase>). А сейчас и от этого отказался.
790 wrote:
У меня ж ещё по каждому видео-файлу отображается своя иконка по "Поиск с плагинами->Commercial name" его аудио (DD, DD+, DTS и т.д.). Иконки засунуты в WCMICONS.DLL. Так что без базы это всё долго.

Ну тогда понятно. Откуда взяться скорости, если одним плугом пашется два поля Laughing

#806:  Author: Monarch-LFV PostPosted: Tue Jul 02, 2024 13:24
    —
Loopback wrote:
Попробовал отправить его на VirusTotal, там только 3 срабатывания, причём Касперский ничего не детектит.

Хм, странно, сам увидел на вирустотал.

<Оффтоп>А по поводу Касперского, он реально стал параноиком - я когда-то написал VBS-скрипт, добавляющий переменную окружения в систему, раньше работал нормально, а месяц назад Касперский сказал, что это вирус и удалил его Evil or Very Mad . Пришлось тоже самое реализовать через батник, который делает тоже самое, но Касперский молчит.</Оффтоп>

#807:  Author: BeTePLocation: Санкт-Петербург PostPosted: Tue Jul 02, 2024 16:50
    —
Orion9 wrote:
Поэтому пришлось отключить базу на диске и перевести ее в RAM (<MemoryBase>true</MemoryBase>). А сейчас и от этого отказался.
Я за давностью уже даже не вспомню причину, но создание базы в любом виде отключил давно. И никаких неудобств от этого не испытываю.

 Hidden text

#808:  Author: Orion9 PostPosted: Tue Jul 02, 2024 18:08
    —
Quote:
Я за давностью уже даже не вспомню причину, но создание базы в любом виде отключил давно. И никаких неудобств от этого не испытываю.

Думаю, на маломощных компах и при низких скоростях накопителей (внешний диск в usb 2.0 или сеть 100 mb/s, например) база все же будет полезна. Но похоже автор действительно оптимизировал работу библиотеки. Я это сразу заметил на avi-шках. Раньше на этом формате были какие-то непонятные затыки.

P.S.

 Небольшой оффтоп на счет переменных окружения

#809:  Author: jentoso PostPosted: Mon Jul 15, 2024 21:01
    —
Loopback
Обновил плагин, но без переименования WDX в WLX кнопка не хочет работать
http://forum.wincmd.ru/viewpost.php?p=136349
По поводу wrapper так и не нашлось время или неактуально стало?
http://forum.wincmd.ru/viewpost.php?p=136352

#810:  Author: Destiny PostPosted: Tue Jul 16, 2024 11:55
    —
Loopback
allprops.txt
зачем он лежит в составе плагина, если оказывается, что надо вызывать ехе и из него сохранять настоящий/актуальный файл?
Ибо комплектный из состава архива - не соответствует тому, что выходит из недр *.ехе. Кол-во полей разное совершенно.
Почему при генерации не формируется формат: "ПОЛЕ;описание поля"?
Ведь если посмотреть в гитхабе самой библиотеки, то там всё это есть.
https://github.com/MediaArea/MediaInfoLib/tree/master/Source/Resource/Text/Stream
Почему вдруг плагин стал поддерживать совершенно странные для него форматы? PDF, TXT, XLSX, BMP, EXE и т.п?
КАК теперь быстро, безболезненно, интуитивно и точно оставить в его поле зрения ТОЛЬКО лишь файлы видео и аудио формата?
не пытаясь вспомнить их все, не перепроверяя имеющийся список FORMATS через инет - пытаясь понять - что есть там что.
В идеале тег FORMAS в XML файле настроек плагина должен иметь суб-теги: AUDIO, IMAGE, VIDEO, TEXT ну и т.д. в зависимости
от того - какие реально виды/расширения файлов вдруг стали пониматься библиотекой.
Чтобы ненужное можно было сразу закомментировать.


Last edited by Destiny on Tue Jul 16, 2024 13:14; edited 1 time in total

#811:  Author: Loopback PostPosted: Tue Jul 16, 2024 13:04
    —
jentoso wrote:
По поводу wrapper так и не нашлось время или неактуально стало?

Да как-то подзабылось. Насчет актуальности не знаю. Наверно все же сделаю, выложу здесь, нужно будет потестировать какое-то время прежде чем включать в дистрибутив.

Destiny wrote:
зачем он лежит в составе плагина, если оказывается, что надо вызывать ехе и из него сохранять настоящий/актуальный файл?

Он просто для справки, список полей с описаниями. Для того, чтобы было где посмотреть поддерживаемые поля при модификации конфига. В работе плагина он не участвует.

Обновлять его необязательно, список полей библиотеки между версиями обычно меняется незначительно.

Destiny wrote:
Почему при генерации не формируется формат: "ПОЛЕ;описание поля"?
Ведь если посмотреть в гитхабе самой библиотеки, то там всё это есть.

Потому что библиотека его выводит в таком виде, в котором он сохранен в allprops.txt. И с точки зрения читабельности это вполне нормальный формат. А то что в исходниках они лежат в формате csv ничего не значит, API библиотеки не предоставляет к ним доступ.

Destiny wrote:
Почему вдруг плагин стал поддерживать совершенно странные для него форматы? PDF, TXT, XLSX, BMP, EXE и т.п?

Эти вопросы нужно задавать автору библиотеки. Почитайте тему чуть выше, только недавно это обсуждали.

Destiny wrote:
КАК теперь быстро, безболезненно, интуитивно и точно оставить в его поле зрения ТОЛЬКО лишь файлы видео и аудио формата?
не пытаясь вспомнить их все, не перепроверяя имеющийся список FORMATS через инет - пытаясь понять - что есть там что.

Присмотритесь повнимательнее к тегу. Он сейчас как раз разбит на группы: контейнеры, видео, аудио, изображения, архивы/документы, текст (субтитры).

В еще невыпущенной версии я уже убрал часть расширений:

 Hidden text


Просто уже много раз возникали вопросы - а почему этот формат не поддерживается, почему этот не показывается. Поэтому попробовал добавить все поддерживаемые форматы (генерируется из csv из исходников), но тут всплыла специфика взаимодействия с другими плагинами. Так что просто надо найти баланс.

Destiny wrote:
В идеале тег FORMAS в XML файле настроек плагина должен иметь суб-теги: AUDIO, IMAGE, VIDEO, TEXT ну и т.д.

Субтеги это уже излишне, но группы можно дополнительно разделить пустыми строками для наглядности.

#812:  Author: Destiny PostPosted: Tue Jul 16, 2024 13:42
    —
Loopback wrote:
Он просто для справки, список полей с описаниями.

Дык это же хорошо)))
НО! как справка = файл тогда должен быть актуализирован!
Т.е. должны быть суммированы факты:
есть список полей, генерируемых библиотекой, и есть описания для них, выдранные из того,
что хранится на гитхабе разработчика библиотеки.
А иначе толку от файла, который правильный на 70/80/90%?

Loopback wrote:
И с точки зрения читабельности это вполне нормальный формат.

См. выше- написано вами же)) Это справка! А значит формат=> ПОЛЕ : описание поля.
И никак иначе....

Loopback wrote:
Присмотритесь повнимательнее к тегу. Он сейчас как раз разбит на группы: контейнеры, видео, аудио, изображения, архивы/документы, текст (субтитры).

Вот не догнал((( хотя вроде и достаточно логичное разбиение.
Так что тупо воспользовался вашим спойлером, надеясь, что "перекрестно-опыляемых" расширений
с поддержкой их другими плагинами не получится...

В целом: с надеждой смотрим в будущее плагина и благодарим за вашу работу!

#813:  Author: Loopback PostPosted: Tue Jul 16, 2024 16:00
    —
Destiny wrote:
О! как справка = файл тогда должен быть актуализирован!

Разумеется, когда я обновляю версию библиотеки, то обновляю и allprops.txt. Механизм обновления в TCMediaInfo.exe предусмотрен на случай, если пользователь самостоятельно обновляет библиотеку.

Destiny wrote:
Т.е. должны быть суммированы факты:
есть список полей, генерируемых библиотекой, и есть описания для них, выдранные из того,
что хранится на гитхабе разработчика библиотеки.

Да не нужно ничего тянуть из гитхаба, всё то же самое в виде пар поле:описание возвращает библиотека. И всё это без изменений сохраняется в allprops.txt. Причём именно для текущей версии, установленной у пользователя. А на гитхабе могут быть версии этих файлов с полями, которых по факту еще нет в текущей версии.

Destiny wrote:
См. выше- написано вами же)) Это справка! А значит формат=> ПОЛЕ : описание поля.
И никак иначе....

Так а в allprops.txt что, разве другой формат?
Code:
Menu_Codec_List                                  : Deprecated, do not use in new projects
Menu_Language_List                               : Menu languages in this file, separated by /
CompleteName                                     : Complete name (Folder+Name+Extension)
FolderName                                       : Folder name only
FileNameExtension                                : File name and extension
FileName                                         : File name only
FileExtension                                    : File extension only
CompleteName_Last                                : Complete name (Folder+Name+Extension) of the last file (in the case of a sequence of files)


Destiny wrote:
хотя вроде и достаточно логичное разбиение.

Группировка берется из исходного файла Format.csv.

#814:  Author: Destiny PostPosted: Tue Jul 16, 2024 16:53
    —
Loopback wrote:
Так а в allprops.txt что, разве другой формат?

Конечно. ЕСЛИ сохранить из ЕХЕ файла эти поля в этот файл (чьё имя по умолчанию, кстати, даже и не спрашивается! имя захардкожено похоже),
то в файле сохраняются ТОЛЬКО названия полей. Никаких комментариев после двоеточия нет.
Только в редчайших случаях есть слово Deprecated
и всё.

#815:  Author: Loopback PostPosted: Tue Jul 16, 2024 19:23
    —
Destiny wrote:
имя захардкожено похоже

Тот случай, когда выбор ни к чему. Незачем плодить файлы, назначение функции - обновить имеющийся.
Destiny wrote:
то в файле сохраняются ТОЛЬКО названия полей. Никаких комментариев после двоеточия нет.

Вот это уже интереснее. Например, файл в версии 1.0.8 c библиотекой 24.05 сохранён с помощью этой же функции и он вполне полноценен. Версии плагина и библиотеки какие?

#816:  Author: AvadaLocation: Россия, Саратов PostPosted: Tue Jul 16, 2024 20:22
    —
Loopback
Я проверял сегодня именно на этой версии плагина именно с этой библиотекой. Файл allprops.txt создавался через TCMediaInfo.exe. Да, остаются только названия полей. Комментариев или нет вообще (в основном), или вместо них указано "Deprecated" (редко).

#817:  Author: Destiny PostPosted: Tue Jul 16, 2024 21:13
    —
Loopback
Да ваш плагин 1.0.8 в полной его комплектации и без каких-либо моих вмешательств.
Ну и выше вот уже подтвердили суть проблемы.
Включая нюансы про Deprecated.

#818:  Author: yozhikLocation: Электросталь PostPosted: Tue Jul 16, 2024 22:51
    —
Это я народ в заблуждение ввёл, прошу великодушного пардону Embarassed Я на ру-борде написал что дамп полей без описаний был всегда — у меня в памяти это перемешалось с дампами другой утилиты. Сейчас прочёл сообщения и перепроверил: в 1.0.7 дамп поле:описание, в 1.0.8 — только поле (описаний нет, за исключением редких Deprecated).

#819:  Author: Loopback PostPosted: Tue Jul 16, 2024 23:05
    —
Avada
Destiny
yozhik
Проверил. По всей вероятности я ошибся и всё же выгрузил список, который в версии 1.0.8 из более ранней версии библиотеки. Так как дело именно в ней: в версии 22.03 выгрузка работает без проблем, а в последних выдает только список полей без описаний. Посмотрю в чем дело, но если это было сделано намеренно и это принципиальная позиция автора, то к сожалению, придется фичу с сохранением этого файла выпилить.

UP: Долго искать не пришлось, вот коммит. Сэкономили на спичках, как говорится. Правда с определенной мотивацией. И вот тут еще спрашивали.

#820:  Author: Destiny PostPosted: Wed Jul 17, 2024 15:12
    —
Мммммм. Позволите продолжить уточнения?
Типа в самой библиотеке порезали возможности по выводу информации о поддерживаемых тэгах? Зачем-то намеренно.
И логику фиг поймешь, но да ладно.
НО! мы же речь ведем о самописной/дополнительной программе, функционал которой и выполнял эту встроенную типа
API команду на вывод инфы в файл.
НО! если "на той стороне" что-то и почикали - то "на этой" же можно продолжить выводить корректно! Т.е. просто допилить
вывод инфы С УЧЕТОМ той инфы, что они хранят в вышеуказанной ссылке и на которую сами же ссылаются в одном из
указанных выше коммитов/обсуждений.
Типа это офиц.место для хранения такой инфы. Ну значит надо её оттуда извлекать и генерировать вывод в файл allprops.txt
инфы с её учетом.

#821:  Author: Loopback PostPosted: Wed Jul 17, 2024 15:51
    —
Destiny wrote:
Типа в самой библиотеке порезали возможности по выводу информации о поддерживаемых тэгах? Зачем-то намеренно.
И логику фиг поймешь, но да ладно.

Да, убрали из бинарника описания.

А логика указана по ссылкам. Мотивируют это тем, что библиотека слишком разрослась в размерах, что плохо для использования в некоторых применениях, например, в JavaScript, поэтому размер оптимизируют. Вот тут пожертвовали описаниями полей, их размер около 150кб.

Destiny wrote:
Ну значит надо её оттуда извлекать и генерировать вывод в файл allprops.txt
инфы с её учетом.

Файл я продолжу обновлять. Если нужно, отдельно выложу скрипт для формирования этого файла на основе данных гитхаба. Просто больше этого функционала не будет во встроенном виде.

Также ещё планирую сделать раздел на сайте с этой информацией, может так кому удобнее будет смотреть.

#822:  Author: olegvsk PostPosted: Tue Jul 23, 2024 22:24
    —
Loopback
Отличный полезный плагин. Пользуюсь главным образом wlx-частью, не хватает одного - быстрого переключения режимов просмотра. Например, Ctrl+номер или вроде того. Или хоткей можно настроить самостоятельно?

#823:  Author: Loopback PostPosted: Wed Jul 24, 2024 00:52
    —
olegvsk
Хорошая идея. Будучи "мышистом" всё время забываю про клавиатурное управление. Добавил в todo. Возможно не в ближайшей версии, но надо будет сделать.

#824:  Author: Orion9 PostPosted: Fri Jul 26, 2024 11:55
    —
Loopback
IsPressed функцию можно добавить? Хочу поэксппрементировать с подсказкой. Сейчас она у меня такая:

 Hidden text

 Hidden text

Делал давно и, как видите, коряво. Нужна ревизия, до которой руки так и не дошли.

#825:  Author: Loopback PostPosted: Fri Jul 26, 2024 13:21
    —
Orion9 wrote:
IsPressed функцию можно добавить?

IsPressed куда добавить, сюда? Зачем? Confused

Если с похожими целями, как обновление записей при нажатом Ctrl, то нет, я уже говорил, что не буду здесь делать действия в зависимости от нажатых клавиш.

#826:  Author: Orion9 PostPosted: Fri Jul 26, 2024 13:56
    —
Loopback wrote:
IsPressed куда добавить, сюда? Зачем? Confused

Чтобы можно было вызывать разные подсказки в зависимости от зажатой клавиши-модификатора.

#827:  Author: Destiny PostPosted: Fri Jul 26, 2024 14:10
    —
Orion9 wrote:
Чтобы можно было вызывать разные подсказки в зависимости от зажатой клавиши-модификатора.

Дык именно в посте ранее ответ был такой:

Loopback wrote:
я уже говорил, что не буду здесь делать действия в зависимости от нажатых клавиш.

Т.е. "в зависимости" - делать не будут.

#828:  Author: Orion9 PostPosted: Fri Jul 26, 2024 14:34
    —
Destiny
Тогда речь шла о базе, а не о подсказках, вроде.

#829:  Author: Loopback PostPosted: Fri Jul 26, 2024 19:59
    —
Destiny wrote:

Loopback wrote:
я уже говорил, что не буду здесь делать действия в зависимости от нажатых клавиш.

Т.е. "в зависимости" - делать не будут.

Именно так.

#830:  Author: Orion9 PostPosted: Sat Jul 27, 2024 11:44
    —
Loopback
А в чём сложность? Функция IsPressed ведь уже реализована в Autorun, казалось бы, всего лишь нужно перенести код. Или какие-то проблемы с интерпретатором PasCalc?

#831:  Author: Loopback PostPosted: Sat Jul 27, 2024 13:58
    —
Версия 1.1.0, на wincmd.ru.

* обновлена библиотека MediaInfo до версии 24.06
+ WLX: большое изображение можно закрыть клавишей ESC
+ WLX: пункт меню и горячая клавиша для показа большого изображения
- WLX: исправлено медленное появление контекстного меню по правому клику на больших списках
* WLX: улучшено отображение ошибок
+ WLX: добавлены горячие клавиши для первых десяти режимов просмотра
* убран функционал обновления файла allprops.txt (не работает с MediaInfo 23.03 и выше)
+ добавлена возможность удаления из базы выбранных в TC файлов
+ добавлены ключи командной строки для TCMediaInfo.exe
* CFG: уменьшен список поддерживаемых расширений во избежание пересечения с другими плагинами
- исправлены некоторые значения по умолчанию для цветов

Orion9
Технических сложностей нет. Но мы это всё уже обсуждали ранее, не вижу смысла повторяться.

#832:  Author: yozhikLocation: Электросталь PostPosted: Sat Jul 27, 2024 17:24
    —
Loopback
Вот здесь мы обсуждали DisplayOptions в шаблонах. Я так понял, что они там лишние и надобно их убирать, но в TCMediaInfo.sample.xml они по-прежнему есть. Так надо или ускользнуло от внимания?

#833:  Author: Orion9 PostPosted: Sun Jul 28, 2024 11:48
    —
Quote:
Технических сложностей нет. Но мы это всё уже обсуждали ранее, не вижу смысла повторяться.

Довольно странный ответ. Если технических сложностей нет, то что тогда мешает. Лично я так и не понял. Ну хорошо. Пусть останется загадкой, если так хотите Smile

#834:  Author: Loopback PostPosted: Sun Jul 28, 2024 13:21
    —
yozhik wrote:
ускользнуло от внимания

Да, забылось.

Orion9 wrote:
Пусть останется загадкой

Ну какие загадки, мы же обсуждали это несколькими страницами ранее. Я против каких-либо действий в любых обычных wdx в зависимости от состояния клавиш. Это не задача контентного плагина, это нарушает логику работы контентного плагина. Можно считать это моими личными тараканами, я не против Smile

#835:  Author: Destiny PostPosted: Sun Jul 28, 2024 15:14
    —
Loopback wrote:
Это не задача контентного плагина

Но тут один нюанс похоже тоже ускользнул из под внимания....
Это плагин в первую очередь листерный))) wLx.
Тот факт, что у вас получилось сделать его совмещенным с wDx функционалом - это честь и хвала.
Но все же это просто попутное улучшение...
А уж для Листера - любое использование хоткеев/модификаторов - просто маст-хев, чтобы получить полную требуемую функциональность...

#836:  Author: Loopback PostPosted: Sun Jul 28, 2024 17:39
    —
Destiny wrote:
Это плагин в первую очередь листерный))) wLx.

Destiny wrote:
Но все же это просто попутное улучшение...

С каких это пор? Smile Изначально был wdx, листерный появился сильно позже. Да и основное расширение wdx намекает, кто тут главный.

Destiny wrote:
уж для Листера - любое использование хоткеев/модификаторов - просто маст-хев

Про хоткеи для листера речи не шло.

#837:  Author: Orion9 PostPosted: Sun Jul 28, 2024 19:22
    —
Quote:
Это не задача контентного плагина, это нарушает логику работы контентного плагина.

Не спора ради. Но ваш плагин Autorun давно сломал любую логику контентного плагина Laughing И именно за это мы его так любим Wink

#838:  Author: Loopback PostPosted: Sun Jul 28, 2024 22:52
    —
Orion9 wrote:
Но ваш плагин Autorun давно сломал любую логику контентного плагина

Ожидаемый аргумент Smile Из каждого правила есть исключения. Но Autorun изначально был в формате wdx только потому, что это единственный способ загрузить dll при старте TC. Это очень далеко не его основная функция.

#839:  Author: Orion9 PostPosted: Mon Jul 29, 2024 00:24
    —
Loopback
Да ладно, бог с ней, не такая уж это и важная фича)
В том примере, что я скинул, в аудио выводится только первая дорожка, и меня это полностью устраивает. Но я подумал, что теоретически (чисто теоретически) можно было бы попробовать раскрывать все дорожки при зажатом Ctrl, когда это необходимо, или что-то еще интересное придумать в альтернативной подсказке. Но в принципе и без этого прожить можно Smile

#840:  Author: Destiny PostPosted: Mon Jul 29, 2024 14:16
    —
Loopback wrote:
С каких это пор?

С тех пор, как узнал о существовании wlx Media Info и поставил.
Просмотреть инфу - всегда было логично для меня, нежели чем вывести ее в панель
и там накручивать полосу прокрутки, пытаясь увидеть все нужное, ибо ширины ФП
не хватает чтобы это уместить.
А в Листере - бам! и всё как на ладони!

Ну да история - это частности.
Вы тогда для WLX вариации плагина сможете подключить поддержку действий для
нажатых клавиш? Тут-то же вроде все вполне логично и вписывается в концепцию
работы этого типа плагинов...

#841:  Author: Loopback PostPosted: Mon Jul 29, 2024 15:05
    —
Destiny wrote:
Вы тогда для WLX вариации плагина сможете подключить поддержку действий для
нажатых клавиш?

Можно добавлять горячие клавиши, если есть какая-то необходимость.

#842:  Author: AkulaBig PostPosted: Wed Sep 18, 2024 11:26
    —
Здравствуйте. Плагин в режиме показа длительности проигрывания hh:mm:ss секунды показывает без округления. Насколько я понимаю, это можно исправить скриптом. Как правильно записать этот скрипт и можно-ли это сделать в оф версии плагина?

#843:  Author: Loopback PostPosted: Wed Sep 18, 2024 12:41
    —
День добрый.

А почему он вообще должен секунды округлять? И до чего округлять?

Да, и "режим показа длительности" - это же wdx-колонка имеется в виду или что?

#844:  Author: AkulaBig PostPosted: Thu Sep 19, 2024 07:50
    —
Округлять миллисекунды до секунд при формате без миллисекунд. То-есть если длительность миллисекунд более 500, то при показе без миллисекунд, секунды должны округляться, по правилам математики, в большую сторону. Я не мог понять, почему длительность при сравнении с anytag.wdx отличается на 1 сек. Выбрал формат с миллисекундами и все стало ясно. Плагин миллисекунды просто отбрасывает при показе секунд в формате без миллисекунд, а должен учитывать.

#845:  Author: Loopback PostPosted: Thu Sep 19, 2024 13:02
    —
Теперь ясно. Да, это баг в функции TimingFormat.

Вот исправленная версия.

#846:  Author: AkulaBig PostPosted: Thu Sep 19, 2024 15:45
    —
Спасибо большое. Совсем другое дело.

#847:  Author: Loopback PostPosted: Fri Sep 20, 2024 01:34
    —
Недоглядел в предыдущей версии, округление неправильно работало при граничных значениях немного меньших 500мс.

Версия от 20.09.24

#848:  Author: AkulaBig PostPosted: Fri Sep 20, 2024 06:14
    —
Loopback wrote:
Недоглядел в предыдущей версии, округление неправильно работало при граничных значениях немного меньших 500мс.

Обратил внимание, но тревожить уже не стал Embarassed

#849:  Author: AkulaBig PostPosted: Sun Sep 22, 2024 12:54
    —
Я извиняюсь, но если возможно, просил-бы вас переделать и скрипты продолжительности:
<column name="Duration">
<unit name="hh:mm:ss" type="script">Output:=TimingFormat('%hh:%mm:%ss', Duration);</unit>
<unit name="hh:mm:ss.fff" type="script">Output:=TimingFormat('%hh:%mm:%ss.%fff', Duration);</unit>
<unit name="s" type="script">Output:=Trunc(Duration/1000);</unit>
<unit name="z">Duration</unit>
<unit name="Custom" type="script">
<![CDATA[
// this is an example of using scripts in columns
Output:='';
if Not StrIsNumber(Duration) then Exit;
nDur := Number(Duration);
Hour:=Trunc(nDur/3600000);
Min:=Trunc((nDur-Hour*3600000)/60000);
Sec:=Trunc((nDur-Hour*3600000-Min*60000)/1000);
if (Hour <> 0) then Output:=String(Hour)+' hr ';
if (Min <> 0) then Output:=Output+String(Min) +' min ';
if (Sec <> 0) then Output:=Output+String(Sec) +' sec ';
]]>
</unit>
</column>
А то получается стандартные форматы показывает правильно, а скрипты неправильно. Понятно, что вы можете сказать, исправьте это сами. Но лично мне не понятно, можно-ли вообще написать скрипт с правильным алгоритмом.

#850:  Author: Loopback PostPosted: Sun Sep 22, 2024 17:35
    —
В принципе эти скрипты сделаны для демонстрации и практической пользы не имеют.

Ок, вот вариант учитывающий округление:

Code:

         <unit name="s" type="script">SF:=Number(Duration)/1000;Output:=Integer(SF) + Round(Frac(SF));</unit>
         <unit name="z">Duration</unit>
         <unit name="Custom" type="script">
         <![CDATA[
            // this is an example of using scripts in columns
            Output:='';
            if Not StrIsNumber(Duration) then Exit;

            SF:=Number(Duration)/1000;

            // whole seconds + rounded MS
            Sec:=Integer(SF) + Round(Frac(SF));

            Min:=Integer(Sec/60);
            Sec:=Sec-Min*60;
            Hour:=Integer(Min/60);
            Min:=Min-Hour*60;
            
            if (Hour <> 0) then Output:=String(Hour)+' hr ';
            if  (Min <> 0) then Output:=Output+String(Min) +' min ';
            if  (Sec <> 0) then Output:=Output+String(Sec) +' sec ';
         ]]>
         </unit>

#851:  Author: AkulaBig PostPosted: Sun Sep 22, 2024 18:58
    —
Loopback wrote:
В принципе эти скрипты сделаны для демонстрации и практической пользы не имеют.

Ну да, это понятно.
Loopback wrote:

Ок, вот вариант учитывающий округление:

Спасибо большое.
У нас на руборде разгорелся жесточайший спор об округлении до секунд продолжительности типа 02:36,499. Я считаю, что правильно как у вас сейчас 02:37. Также в плагине anytag.wdx. Но в некоторых плагинах 02:36. Вот теперь можно по формуле пересчитать, сколько-же получится.

#852:  Author: Loopback PostPosted: Sun Sep 22, 2024 19:57
    —
Плагин округляет самым распространенным методом "до ближайшего целого": если дробная часть меньше 0.5 - то в минус, если больше или равно 0.5 - в плюс. Значение 02:36,499 по этому методу округляется до 02:36, я не знаю откуда взялось 2:37.

Миллисекунда - это тысячная доля секунды, поэтому число секунд представляем как десятичную дробь 156.499. Округление этого числа до целого даст 156 -> 02:36.

К слову с кодом перемудрил, всё еще проще, отделять дробную часть вообще ни к чему:

Code:

         <unit name="s" type="script">Output:=Round(Number(Duration)/1000);</unit>
         <unit name="z">Duration</unit>
         <unit name="Custom" type="script">
         <![CDATA[
            // this is an example of using scripts in columns
            Output:='';
            if Not StrIsNumber(Duration) then Exit;

            Sec:=Round(Number(Duration)/1000);

            Min:=Integer(Sec/60);
            Sec:=Sec-Min*60;
            Hour:=Integer(Min/60);
            Min:=Min-Hour*60;
           
            if (Hour <> 0) then Output:=String(Hour)+' hr ';
            if  (Min <> 0) then Output:=Output+String(Min) +' min ';
            if  (Sec <> 0) then Output:=Output+String(Sec) +' sec ';
         ]]>
         </unit>


Но тут, конечно, многое зависит от предпочтений, округлять можно вверх, вниз (как по-сути и было раньше), банковский вариант и еще всякая экзотика, но во всех языках с которыми я работаю округление идет по этому правилу.

#853:  Author: AkulaBig PostPosted: Sun Sep 22, 2024 20:04
    —
Проверил первый вариант. По нему получается 02:36. А стандартный вывод в плагине выдает 02:37. Сейчас второй вариант проверю.

Добавлено спустя 8 минут:

И по второму варианту получилось 2:36. А не могли-бы вы внести изменения в плагин, чтобы стандартные форматы, формируемые плагином, соответствовали скриптам?

#854:  Author: Loopback PostPosted: Sun Sep 22, 2024 20:53
    —
AkulaBig
У меня выдает 2:36. Версия от 20 сентября, MediaInfo 24.06, единицы кроме пользовательского скрипта без изменений.

Code:

<unit name="hh:mm:ss" type="script">Output:=TimingFormat('%hh:%mm:%ss', Duration);</unit>
<unit name="hh:mm:ss.fff" type="script">Output:=TimingFormat('%hh:%mm:%ss.%fff', Duration);</unit>

#855:  Author: AkulaBig PostPosted: Sun Sep 22, 2024 21:08
    —
Блин, извиняюсь. Мой косяк. Я потестил исправления от 20.09, а сборку собрал с изменениями от 19.09. Все отлично. Спасибо большое.

#856:  Author: AkulaBig PostPosted: Mon Nov 04, 2024 12:07
    —
Так как даже после исправлений продолжительность звучания аудио-файлов продолжала в некоторых случаях различаться, решил разобраться с этим вопросом до конца.
В итоге получился вот такой вариант подсчета продолжительности:
Code:

      <!-- General -->
      <column name="Duration">
         <unit name="hh:mm:ss" type="script">Output:=TimingFormat('%hh:%mm:%ss', Duration);</unit>
         <unit name="hh:mm:ss.fff" type="script">Output:=TimingFormat('%hh:%mm:%ss.%fff', Duration);</unit>
         // FIXES: Show Duration in second
         <unit name="sec" type="script">Output:=Round(Number(Duration)/1000);</unit>
         // FIXES: Show Duration in millisecond
         <unit name="msec">Duration</unit>
         // FIXES: Show Duration Custom
         <unit name="Custom" type="script">
         <![CDATA[
            Output:='';
            if (Duration <= 0) then Exit;
            if Not StrIsNumber(Duration) then Exit;
            Secs := Integer(Duration / 1000); //convert miliseconds to seconds
            Hours := Integer(Secs / 3600); //3600 seconds in an hour
            Mins := Integer((Secs - (Hours * 3600)) / 60); //60 secs per min
            Secs := Secs - ((Hours * 3600) + (Mins * 60)); //leftovers
            If (Hours < 10) then Hours := '0' + String(Hours);
            If (Mins < 10) then Mins := '0' + String(Mins);
            If (Secs < 10) then Secs := '0' + String(Secs);
            Output := StrFormat('%s:%s:%s', Hours, Mins, Secs))
         ]]>
         </unit>
      </column>

Этот вариант полностью соответствует отображению MediaInfo, что подтверждаю скрином. Дело в том, что многие при подсчете продолжительности расчет ведут от округленных секунд, что конечно неправильно. Даже K-Lite Codeck Pack считает неправильно. Что видно на скрине. Хотелось-бы увидеть эти изменения в плагине, для стандартных форматов продолжительности. Чтобы у всех были одинаковые данные. Еще нашел косячки в последнем TCMediaInfo.xml. Из-за чего не отображались год, наличие обложки и комменты аудио-файлов. Еще там кое-какие обновления. Опять-же, если сочтете нужным, включите эти изменения в новую версию плагина. https://www.dropbox.com/scl/fi/g17ie6raiopm67pngdcwc/TCMediaInfo.xml?rlkey=p6t0cy4cbrx7pqusk831dqx6l&dl=1
Я конечно и сам сейчас выложу на ру.борде эту информацию. Но очень-бы хотелось, чтобы это было единоообразно для всех.

На скрине первая колонка продолжительности мой кастом, вторая - ваша стандартная.

#857:  Author: Orion9 PostPosted: Mon Nov 04, 2024 12:43
    —
AkulaBig
А в чем весь сыр-бор-то? Что последняя секунда не так округляется? Да и фиг с ней Laughing

Ну а если серьёзно, там же есть фреймы для уточнения, т.е. например Duration, hh:mm:ss.fff = 00:08:16.526

Или я что-то не понимаю?

 Hidden text

#858:  Author: AkulaBig PostPosted: Mon Nov 04, 2024 13:30
    —
Orion9 wrote:
AkulaBig
А в чем весь сыр-бор-то? Что последняя секунда не так округляется? Да и фиг с ней Laughing

Не порядок, когда есть разночтение с MediaInfo, раз плагин ей пользуется.
Orion9 wrote:
AkulaBig
 Hidden text

#859:  Author: Loopback PostPosted: Mon Nov 04, 2024 17:27
    —
AkulaBig wrote:
Дело в том, что многие при подсчете продолжительности расчет ведут от округленных секунд, что конечно неправильно.

Если вести не от округлённых, то получается, что в расчете тайминга мы просто отбрасываем миллисекунды. Что, собственно, и делалось в TimingFormat до всех сентябрьских модификаций (да, там все равно был косячок в округлении до десятых/сотых при наличии спецификаторов %f, но он не связан с округлением до целых секунд, в этом случае миллисекунды отбрасывались).

В вашем Custom эта строка просто обрезает полученное дробное число секунд до меньшего целого, никакого округления не производится:

Code:
Secs := Integer(Duration / 1000); //convert miliseconds to seconds


Что приводит вывод к старому варианту Smile

AkulaBig wrote:
Этот вариант полностью соответствует отображению MediaInfo, что подтверждаю скрином.

Разумеется, потому что MediaInfo при форматировании не округляет, а отбрасывает миллисекунды.

AkulaBig wrote:
Опять-же, если сочтете нужным, включите эти изменения в новую версию плагина.

Посмотрю, но не очень скоро, вижу там много чего.

AkulaBig wrote:
Не порядок, когда есть разночтение с MediaInfo, раз плагин ей пользуется.

А вот это как раз ни к чему не обязывает, поскольку MediaInfo используется только как источник сырых данных. То, что выводит GUI-версия - это уже отформатированные данные. Единственные данные, которые обязаны быть одинаковы - это полный тайминг вида 00:08:16.526, всё остальное зависит от метода расчета и предпочтений пользователя.

#860:  Author: AkulaBig PostPosted: Mon Nov 04, 2024 18:17
    —
Loopback wrote:
AkulaBig wrote:
Дело в том, что многие при подсчете продолжительности расчет ведут от округленных секунд, что конечно неправильно.

Code:
Secs := Integer(Duration / 1000); //convert miliseconds to seconds


Что приводит вывод к старому варианту Smile

Эта строка как раз у меня вопросов не вызывает. Понятно, что она является округлением до секунд по правилам математики. А вот при преобразовании в часы, минуты, секунды не надо округлять секунды, а потом от этого округления высчитывать продолжительность. То-есть обсуждать стоит только блок 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 и я считаю его правильным.

#861:  Author: Orion9 PostPosted: Mon Nov 04, 2024 18:39
    —
Quote:
Не порядок, когда есть разночтение с MediaInfo, раз плагин ей пользуется.

Понятно. Как говорилось в одном фильме: "Упорядочивание хаоса - очень прибыльное дело" Smile Но если вопрос только в округлении последней секунды, не кажется ли вам, что это больше смахивает на дилемму о наполовину полном и наполовину пустом стакане? )

#862:  Author: AkulaBig PostPosted: Mon Nov 04, 2024 19:41
    —
Дело не в округлении последней секунды, а в алгоритме преобразования миллисекунд в часы, минуты, секунды.

#863:  Author: Loopback PostPosted: Mon Nov 04, 2024 20:17
    —
AkulaBig wrote:
А вот при преобразовании в часы, минуты, секунды не надо округлять секунды, а потом от этого округления высчитывать продолжительность.

Так в том-то и дело, что сейчас именно так работает TimingFormat. После внесенных в сентябре изменений. И тогда такой вариант был сочтен правильным. И если сейчас

Quote:
Хотелось-бы увидеть эти изменения в плагине, для стандартных форматов продолжительности.


их приводить к одному варианту, то к какому? Потому что сейчас ваш Custom - миллисекунды обрезает, а стандартный TimingFormat - миллисекунды округляет.

AkulaBig wrote:
Это очень тонкий момент. К сожалению под рукой нет учителя математики, чтобы подтвердить правоту этого выражения. Похоже это соответствует правилам именно при преобразовании в часы, минуты, секунды. В любом случае MI работает именно по подобному алгоритму.

Внутренне функция Integer - это дельфийская функция Trunc, которая просто отсекает дробную часть.

AkulaBig wrote:
Как я писал выше, видимо именно так должно происходить преобразование. Может у вас есть толковое словесное описание, как должно происходить преобразование? Я такого в инете не нашел. Я думаю тут причина в том, что есть разница между округлением и преобразованием. Ведь это не округление.

Преобразование так или иначе будет включать в себя избавление от миллисекунд (дробной части). И этот процесс - вопрос реализации. Нет "правильных" и "неправильных", есть просто разные подходы. Если не брать банковскую специфику их три: округление по математическим правилам (Round), до меньшего (Floor) и большего (Ceiling). MediaInfo использует Floor. Плагин тоже использовал его, в сентябре переделали на Round.

AkulaBig wrote:
Дак в этом и дело, что мы не можем отследить алгоритм преобразования.

Исходники MediaInfo открыты...

Ну вот по-видимому оно, в этом файле функция Duration_Duration123. Насколько я могу судить, округления тут не производится.

#864:  Author: Orion9 PostPosted: Mon Nov 04, 2024 20:20
    —
AkulaBig
Я, конечно, небольшой специалист в этих делах, но, по-моему, для расчета времени воспроизведения, например, того же mp3 используются сэмплы (фреймы) и их количество, которое затем переводится в секунды и миллисекунды. Поэтому самым правильным и точным вариантом, имхо, является отображение времени воспроизведения в полном формате, как, например, это делает foobar2000:

File name : Donna Summer - I Feel Love (Extended Mix).mp3
File size : 18.9 MB (19 865 536 bytes)
-
Duration : 8:16.524 (21 896 687 samples)
Sample rate : 44100 Hz
Channels : 2
Bitrate : 320 kbps
Codec : MP3
Codec profile : MP3 CBR
Encoding : lossy
Tag type : id3v2.4|id3v1

Т.ч. выбор формата отображения - это скорее всего действительно дело предпочтения: кому-то хочется или нужно округлять в большую сторону, кому-то обрезать дробную часть, кто знает. На мой взгляд, второй вариант более правилный, т.к. всегда знаешь точное количество целых секунд, держа в голове, что может быть остаток фреймов или миллисекунд.

#865:  Author: AkulaBig PostPosted: Mon Nov 04, 2024 20:49
    —
Loopback wrote:

Так в том-то и дело, что сейчас именно так работает TimingFormat. После внесенных в сентябре изменений.

В том-то и дело, что работает не так. Я для этого и привел скрин. Не соответствует длительности MediaInfo.
Loopback wrote:

И тогда такой вариант был сочтен правильным.

Мы тогда тестировали файл длительностью 02:36. Он и сейчас показывает правильно.
Loopback wrote:

их приводить к одному варианту, то к какому?

Естественно к варианту, который показывает MediaInfo, иначе я не последний, кто обратит на это внимание. Если-бы MI показывала-бы только миллисекунды, вопросов-бы не было. Но MI показывает продолжительность в разных форматах, в том числе и в ч, м, с. И тут сразу возникает вопрос. А почему у вас длительность не совпадает? Ведь вы используете эту библиотеку.
[quote="Loopback"]
AkulaBig wrote:
А вот при преобразовании в Внутренне функция Integer - это дельфийская функция Trunc, которая просто отсекает дробную часть.

Вы меня не поняли. Учитель сказал-бы правильный математический алгоритм. Назначение функций программирования я и сам знаю.
Loopback wrote:

Нет "правильных" и "неправильных", есть просто разные подходы.

Я думаю, что есть один правильный алгоритм. Но это вопрос дискуссионный. Нет смысла его обсуждать. Я могу допустить, что автор MI не прав.
Loopback wrote:

Исходники MediaInfo открыты...

А я не смог ссылку найти. Спасибо.

Добавлено спустя 4 минуты:

Loopback wrote:
Насколько я могу судить, округления тут не производится.

Ну да.
//Seconds
Sec=(int32s)(MS/1000); //s

Добавлено спустя 2 минуты:

Orion9 wrote:
Поэтому самым правильным и точным вариантом, имхо, является отображение времени воспроизведения в полном формате, как, например, это делает foobar2000:

Интересно. Проверю.

#866:  Author: Loopback PostPosted: Mon Nov 04, 2024 21:18
    —
AkulaBig wrote:
В том-то и дело, что работает не так. Я для этого и привел скрин. Не соответствует длительности MediaInfo.

Естественно, потому что текущая версия TimingFormat - округляет. Согласно вот этому запросу. Если взять релизную 1.1.0, там будет совпадать с MediaInfo...

AkulaBig wrote:
Мы тогда тестировали файл длительностью 02:36. Он и сейчас показывает правильно.

Вообще-то длительность его была 02:36,499, которая согласно мат. правилам округляется в меньшую сторону до 2:36.

Уверен, что полная длительность всех "расходящихся" значений, выделенных на скрине, имеет 500 или больше миллисекунд.

AkulaBig wrote:
Естественно к варианту, который показывает MediaInfo, иначе я не последний, кто обратит на это внимание

В общем всё к тому и шло. Верну исходный вариант с обрезкой по умолчанию и добавлю опцию, как округлять. Кому под вывод какой программы нужно подгонять - пусть и меняет.

#867:  Author: AkulaBig PostPosted: Mon Nov 04, 2024 22:58
    —
Loopback wrote:
Верну исходный вариант с обрезкой по умолчанию

Действительно. Исходный вариант показывает согласно данным MediaInfo. Сейчас еще уточню по foobar2000. Он, как и все остальные плееры показывает с округлением. Но это на линейке. В свойствах вообще продолжительность не показывает.
Я тогда не знал, как MediaInfo пользоваться. Кстати, а вот встроенный плеер Гислера показывает тоже согласно MediaInfo. В этом вроде ничего удивительного нет, учитывая, что у меня настройка использовать внешние кодеки. В которых используется и MediaInfo. Надо скачать LAV-фильтры, удалить кодек-пак и посмотреть, что покажет.

Добавлено спустя 3 минуты:

Orion9 wrote:
foobar2000:

File name : Donna Summer - I Feel Love (Extended Mix).mp3
File size : 18.9 MB (19 865 536 bytes)
-
Duration : 8:16.524 (21 896 687 samples)
Sample rate : 44100 Hz
Channels : 2
Bitrate : 320 kbps
Codec : MP3
Codec profile : MP3 CBR
Encoding : lossy
Tag type : id3v2.4|id3v1

А как можно эти данные посмотреть? Я скачал первую попавшуюся сборку, там в свойствах файла очень скудную инфу показывает.

Добавлено спустя 19 минут:

Попробовал выше приведенный вариант со встроенным плеером Гислера. Учитывая, что MediaInfo вообще удалена и никак не участвует в выдаче информации. Гислер показывает согласно нашим данным.
Пытаюсь понять логику. Для себя так определился. Сначала мы ищем часы, затем минуты, затем секунды. А не сначала секунды. Видимо на этом и основан правильный алгоритм. Просто на форуме утверждали, что автор mp3tag на этом собаку съел и его решение единственно правильное. И большинство плееро-писателей пошли по этому пути.

#868:  Author: Orion9 PostPosted: Tue Nov 05, 2024 00:14
    —
Quote:
А как можно эти данные посмотреть? Я скачал первую попавшуюся сборку, там в свойствах файла очень скудную инфу показывает.

Зачем сборку, когда есть чистая версия:
https://www.foobar2000.org/download
При установке можно выбрать Portable. Плюс отдельная куча компонентов расширяющих функционал:
https://www.foobar2000.org/components

Автор, если не ошибаюсь, один из соразработчиков самых первых версий Winamp, т.ч. собаку он съел не меньшую на этом деле, если не бОльшую Smile

Для прослушивания на компе я, конечно, пользуюсь PotPlayer, но foobar2000, имхо, - крутой технический инструмент. В основном, я использую его фичу ReplayGain для нормализации звука MP4 и MKV файлов для медиаплеера, а также пользуюсь его продвинутым конвертером. Но там еще много другого классного функционала и фич, которые, как правило, идут уже в отдельных компонентах.

#869:  Author: Skif_off PostPosted: Tue Nov 05, 2024 01:08
    —
Quote:
Сначала мы ищем часы, затем минуты, затем секунды. А не сначала секунды.

Кто-нибудь может на пальцах объяснить, чем этот способ лучше получения секунд с округлением и уже из них получения часов и минут?
Снова про "02:36" не надо, пусть примерами будут, например, "00:01:59.400" и "00:01:59.600", они же 119400 и 119600 мс.

#870:  Author: AkulaBig PostPosted: Tue Nov 05, 2024 05:06
    —
Orion9 wrote:

Зачем сборку, когда есть чистая версия:

Неудачный пример получился. foobar в свойствах показывает только с миллисекундами. Я другого вида отображения и в стандартной версии не нашел. А в линейке показывает округленный до секунда. И вопрос остается.

Добавлено спустя 6 минут:

Skif_off wrote:

Кто-нибудь может на пальцах объяснить, чем этот способ лучше получения секунд с округлением и уже из них получения часов и минут?

Если-бы мы сами знали. Возможно, как при арифметических действиях, необходимо соблюдать очередность вычислений. В инете полно хитрых примеров, как неправильная последовательность вычислений влияет на результат. Возможно при преобразовании миллисекунд в ч,м,с тоже самое.

#871:  Author: Monarch-LFV PostPosted: Tue Nov 05, 2024 07:04
    —
Вообще, математический расчет времени, по моему мнению, должен быть по правилам математического округления, то есть в экселе такой (скопировать и вставить в эксель в A1):
Code:
119400
=ОКРУГЛ(A1/1000;0)
=ЦЕЛОЕ(A2/3600)
=ЦЕЛОЕ(A2/60)-A3*60
=A2-A3*3600-A4*60

119600
=ОКРУГЛ(A7/1000;0)
=ЦЕЛОЕ(A8/3600)
=ЦЕЛОЕ(A8/60)-A9*60
=A8-A9*3600-A10*60

По порядку: вначале округляем миллисекунды в секунды (до целых), далее получаем часы, минуты и секунды. Разный расчет может быть только на этапе округления (в самом начале), Думаю, тут только по правилам математики нужно, остальные отбрасывания или округлвверх дадут не совсем верные варианты.

#872:  Author: Skif_off PostPosted: Tue Nov 05, 2024 11:17
    —
AkulaBig
Это всё общие/гипотетические рассуждения Wink Покажите пример, когда получение часов, минут и секунд из миллисекунд дадут более точный результат, чем получение секунд и уже из секунд - часов и минут.
Ну и про Unix-time давайте не забывать, там секунды и горя не знают.

Monarch-LFV
Это всё понятно, тут дело в другом, как понимаю: учитывать миллисекунды и округлять или же отбрасывать их. Какие-то программы идут по первому пути, какие-то по второму, что вносит некоторую путаницу: во втором случае всегда знаешь, что у тебя может быть ещё чуток длины, а во втором может быть больше, а может быть и меньше. Фиг знает, насколько длина плюс/минус секунда критична...

Loopback, собственно, принял компромисное решение
Loopback wrote:
Верну исходный вариант с обрезкой по умолчанию и добавлю опцию, как округлять. Кому под вывод какой программы нужно подгонять - пусть и меняет...

или терпит Smile)

#873:  Author: Loopback PostPosted: Tue Nov 05, 2024 11:53
    —
Skif_off wrote:
Это всё понятно, тут дело в другом, как понимаю: учитывать миллисекунды и округлять или же отбрасывать их. Какие-то программы идут по первому пути, какие-то по второму, что вносит некоторую путаницу: во втором случае всегда знаешь, что у тебя может быть ещё чуток длины, а во втором может быть больше, а может быть и меньше.

Верно, нет никакой разницы, как считать. Можно начинать с часов, можно с секунд, результат будет тот же. Разница в результате плюс-минус одна секунда идёт исключительно от метода учёта миллисекунд. Либо отсекаем, либо округляем, во втором случае может появиться дополнительная секунда. Алгоритм-то простейший, не знаю, что тут можно столько обсуждать.

В любом случае, просто сделаю метод округления опциональным.

#874:  Author: Orion9 PostPosted: Tue Nov 05, 2024 12:29
    —
AkulaBig wrote:
Неудачный пример получился. foobar в свойствах показывает только с миллисекундами. Я другого вида отображения и в стандартной версии не нашел. А в линейке показывает округленный до секунда. И вопрос остается.

Наоборот, удачный пример, как раз то, что нам нужно. Smile В списке воспроизведения foobar2000 округляет до секунды, а в свойствах файла - показывает точную информацию о времени без округления:
Quote:
Donna Summer - I Feel Love (Extended Mix) 8:17
-
Duration : 8:16.524 (21 896 687 samples)

Поскольку Sample rate = 44100 Hz (сэмплов в секуду), берем 21896687 и делим на 44100. Получаем 496,52351473922902494331065759637, т.е. 496 секунд (8 минут, 16 секунд) и остаток, который округлился до 524 миллисекунд.

Что с этим остатком делать? Да что хотите, то с ним и делаете - вам решать Laughing

Лирическое отступление:

Меня сейчас больше интересует другое. Если открыть этот файл в плагине TCMediaInfo, то получается Duration, hh:mm:ss.fff = 00:08:16.526. Разница в две единицы! (О, ужас ужасный! Laughing) Сначала не понял. Глянул в MediaInfo, а там есть такая строчка - Frame rate: 38.281 FPS (1152 SPF). Перемножаем 38281 × 1152 = 44 099 712. Т.е. 44099,712 сэмплов в секунду. Делим общее количество сэмплов 21896687 на 44099,712 и получаем 496,52675736295057890627494347355

Вывод:

Короче, чувствую, что занимаюсь чем-то не тем. А вы уверены, что оно вам надо? Laughing

Добавлено спустя 19 минут:

Да, забыл написать, что MediaInfo показывает:

Code:
Format                                   : MPEG Audio
File size                                : 18.9 MiB
Duration                                 : 8 min 16 s
Overall bit rate mode                    : Constant
Overall bit rate                         : 320 kb/s
Track name                               : I Feel Love (Extended Mix)
Track name/Position                      : 01
Performer                                : Donna Summer


Audio
Format                                   : MPEG Audio
Format version                           : Version 1
Format profile                           : Layer 3
Format settings                          : Joint stereo
Duration                                 : 8 min 16 s
Bit rate mode                            : Constant
Bit rate                                 : 320 kb/s
Channel(s)                               : 2 channels
Sampling rate                            : 44.1 kHz
Frame rate                               : 38.281 FPS (1152 SPF)
Compression mode                         : Lossy
Stream size                              : 18.9 MiB (100%)

Т.е. без округления, что еще раз подчеркивает разницу в предпочтениях. Имхо, это даже хорошо, потому что видя эту разницу в разных местах (проигрывателях, свойствах файла и т.д.) сразу можно понять, что у этого файла есть спорный остаток.

#875:  Author: AkulaBig PostPosted: Tue Nov 05, 2024 16:18
    —
Orion9 wrote:

Поскольку Sample rate = 44100 Hz (сэмплов в секуду), берем 21896687 и делим на 44100. Получаем 496,52351473922902494331065759637, т.е. 496 секунд (8 минут, 16 секунд) и остаток, который округлился до 524 миллисекунд.

Познавательный пост у вас получился. Я со своей стороны тоже поразбирался и вот что получается.
Основная фишка в том, что секунды, в отличии от часов и минут, могут быть дробными. Поэтому единственно правильный формат продолжительности 11:11:11.111. Очень удобный онлайн-преобразователь для этого https://www.convert-me.com/ru/convert/time/millisecond/millisecond-to-dhms.html?u=millisecond&v=247532

Как видно на скрине. На преобразователе есть кнопочка, которой можно выбрать количество значащих цифр. И при значащей цифре 1 мы получаем округленные секунды. Это округление сделано по законам математики и по другому быть не должно. То-есть TCMediaInfo 1.1.0.2 показывает продолжительность совершенно правильно.
А дальше пошла жарешка. Свойства Windows показывает неправильно, MediaInfo показывает неправильно. Да плюс к этому есть еще проблема разных форматов. То-есть понятно, что в Винде нет кодеков для для ogg, opus и я не могу посмотреть свойства в чистой Винде. А вот при установке К-Lite Codec Pack свойства показываются и они НЕ совпадают с TCMediaInfo:

Так что я предлагаю смириться. Пользоваться исходной TCMediaInfo 1.1.0. Только попрошу разобраться с отображением колонок и русификацией.
Себе я сделал кастомную колонку hh:mm:ss с округлением секунд. Думаю она будет полезной. Файл TCMediaInfo.xml все по той-же ссылке.

#876:  Author: Orion9 PostPosted: Tue Nov 05, 2024 19:15
    —
AkulaBig
Если вам интересно, то можете как-нибудь почитать о том, как оцифровывают и кодируют звук. Помню, несколько лет назад я немного окунулся в эту тему, пытаясь понять, как работает ReplayGain и почему при его использовании (или использовании MP3Gain) не происходит потери качества. Но что-то лезть в эти дебри меня больше как-то не тянет Smile

Хотел найти ту статью, которую я тогда читал, но так и не нашел. Но было что-то примерно этого (если кому-то интересно):
https://habr.com/ru/articles/503786/
https://habr.com/ru/articles/103635/

А холивар на счет последней секунды нет смысла устриавать - пусть большие дядьки сами там решают. Laughing Как по мне, то в последней секунде все-равно ничего интересного не бывает Mr. Green

#877:  Author: AkulaBig PostPosted: Tue Nov 05, 2024 20:05
    —
Orion9 wrote:

Если вам интересно, то можете как-нибудь почитать о том, как оцифровывают и кодируют звук.

Меня интересует одинаковое отображение параметров для всех программ и типов файлов, но не получится.

#878:  Author: Orion9 PostPosted: Wed Nov 06, 2024 12:01
    —
AkulaBig wrote:
Меня интересует одинаковое отображение параметров для всех программ и типов файлов, но не получится.

Вынужден согласиться - не получится. Это же типичный холивар "с какого конца яйцо лучше бить". Нет здесь хорошего и правильного решения. Округлишь в большую сторону - добавишь несуществующие миллисекунды. Округлишь в меньшую - потеряешь существующие миллисекунды. Обрежешь до целого - еще больше потеряешь миллисекунды. На этой дилемме ведь не один чип может сгореть Laughing Хотя это смотря какой чип ) Надо будет у Алисы спросить, что она на этот счет думает Mr. Green

 P.S.

#879:  Author: AkulaBig PostPosted: Wed Nov 06, 2024 13:21
    —
Orion9 wrote:

Вынужден согласиться - не получится. Это же типичный холивар "с какого конца яйцо лучше бить".

Вы меня не поняли. Дело не в этом. Я выше писал, что файлы ogg и opus (возможно и другие, я пишу только про которые я тестировал) показывают продолжительность в Вин Свойства другие значения. То-есть если настроить, чтобы mp3 отображались правильно, то эти расширения показываются неправильно. И наоборот. То-есть невозможно настроить, чтобы все расширения показывались в одном стиле.

Добавлено спустя 6 минут:

А вообще может все-же мы чего-то до конца не понимаем. Я очень сомневаюсь, что мелко-мягкие используют неправильный алгоритм. Но, конечно, это дискуссионный вопрос.

#880:  Author: Orion9 PostPosted: Thu Nov 07, 2024 00:17
    —
AkulaBig wrote:
Вы меня не поняли. Дело не в этом. Я выше писал, что файлы ogg и opus (возможно и другие, я пишу только про которые я тестировал) показывают продолжительность в Вин Свойства другие значения. То-есть если настроить, чтобы mp3 отображались правильно, то эти расширения показываются неправильно. И наоборот. То-есть невозможно настроить, чтобы все расширения показывались в одном стиле.

Я и правда ничего не понял Laughing

Но если у вас много коротких аудио (видео) файлов, где последняя секунда играет какую-то роль, то можно сделать дополнительный набор колонок, где миллисекунды будут вынесены в отдельный соседний ряд либо будут отображаться как-то по-другому. Можно сделать еще подсветку файлов в обычном наборе, т.е. раскрасить файлы, у которых > 500 миллисекунд в остатке.

В общем, есть варианты )

#881:  Author: Skif_off PostPosted: Thu Nov 07, 2024 02:30
    —
AkulaBig wrote:
Свойства Windows показывает неправильно, MediaInfo показывает неправильно. ... чтобы mp3 отображались правильно

Не бывает "правильно" или "неправильно", есть два подхода: одни приложения традиционно отбрасывают миллисекунды, другие традиционно округляют.
Если найдёте пример программы, которая округляет, например, по десятой доле секунды, отбрасывая сотые и тысячные, тогда можно поговорить о "неправильно".

P.S. MediaInfo и как минимум WinXP выкатили плюс/минус 20 лет назад и вряд ли регулярно переделывали туда-сюда отображение длятельности, тут либо сделать как удобнее для себя в файловом менеджере, либо смириться стойко и мужественно переносить суровую реальность бытия, либо писать письма в Спортлото MediaArea и MS.

#882:  Author: Orion9 PostPosted: Thu Nov 07, 2024 12:47
    —
Quote:
Я очень сомневаюсь, что мелко-мягкие используют неправильный алгоритм.

Ну, на мелко-мягких я ориентироваться не стал бы. У них расширение файла в Проводнике не показывается по-умолчанию, а вы хотите, чтобы они миллисекунды в свойствах файла отображали что ли? Laughing

Ну вот открыл сейчас вкладку "Подробно", а там продолжительность - 0:08:16. Ну как же так? Взяли и съели 524 миллисекунды. А ведь это целых 23108 сэмплов! А у меня, между прочим, каждый сэмпл на счету Mr. Green

MPC-BE - 0:08:17
MPC-HC - 0:08:16
foobar2k - 0:08:17
PotPlayer - 0:08:16
ExifTool - 0:08:17 (approx)
MMedia - 496 seconds (8:16)
Mp3Tag -0:08:17

Можно продолжать и продолжать... "Округлить нельзя обрезать", - подумал Гулливер, вставляя запятую Mr. Green

#883:  Author: AkulaBig PostPosted: Thu Nov 07, 2024 13:56
    —
Orion9 wrote:
Я и правда ничего не понял Laughing



Добавлено спустя 10 минут:

Skif_off wrote:
Не бывает "правильно" или "неправильно", есть два подхода

Не бывает разных подходов в алгебре. Алгебра построена на аксиомах, а не на теоремах.
Skif_off wrote:

Если найдёте пример программы, которая округляет, например, по десятой доле секунды, отбрасывая сотые и тысячные, тогда можно поговорить о "неправильно".

Я выше выложил калькулятор. Выбирайте там понравившееся значимое число и увидите результат. Он всегда округляется.
И я-бы настаивал на правильном варианте, если-бы файлы ogg и opus не показывали другие значения. То-есть нельзя выбрать один правильный вариант.

#884:  Author: Orion9 PostPosted: Thu Nov 07, 2024 19:36
    —
AkulaBig, теперь понял. Как сейчас модно говорить: для форматов opus и ogg мелко-мягкие использую бодипозитивный таймпозитивный подход Laughing

То, что у них в рамках одной задачи нет единого подхода "что делать с остатком миллисекунд", только добавляет в холивар. Но даже если такой поход и существовал, эталоном он не стал бы. Имхо, все-равно нашлись бы программы, которые по-своему округляли или обрезали этот остаток.

Я сконвертировал вышеуказанный mp3 в ogg и opus - как все программы показывали по-своему, так и показывают. И это не смотря на то, что количество сэмплов изменилось в большую сторону.

mp3 - 8:16.524 (21 896 687 samples)
ogg -8:16.941 (21 915 119 samples)
opus - 8:16.941 (23 853 191 samples)

Что конкретно происходит при конвертации, разбираться не хочется. Но что касается отображения, то, возможно, в списке воспроизведения проигрывателей и есть смысл округлять остаток для удобства пользователей, которым, как правило, не нужна никакая точность. Но такие программы, как MediaInfo, должны уметь раскладывать все по полочкам с максимальным объемом информации - секунды, миллисекунды, сэмплы, фреймы и т.д. - что они и делают. А формат вывода остается за пользователем.

Только выбор, как оказалось, этот не такой простой Laughing

#885:  Author: Loopback PostPosted: Thu Nov 07, 2024 19:38
    —
Добавил опцию TimingRounding, управляющую округлением в TimingFormat. Три варианта, крути-верти Smile

Значения: 0 - метод по умолчанию (округляет до меньшего, как в MediaInfo), 1 - округление до ближайшего, 2 - округление до большего (ну мало ли кому и такое понадобится). Такие же значения можно передавать напрямую в TimingFormat третьим параметром. В общем, всё есть в приложенной или онлайн справке.

Если будет время покопаться в конфиге, через пару недель выложу на wincmd.ru.

Версия от 07.11.24

#886:  Author: AkulaBig PostPosted: Thu Nov 07, 2024 20:03
    —
Orion9 wrote:

Только выбор, как оказалось, этот не такой простой Laughing

Ну ладно я, относительно спокойный человек. Разобрался, что это вопрос не решаемый и успокоился. А на ру.борде как обычно и обзовут и пошлют подальше.

Добавлено спустя 2 минуты:

Loopback wrote:

Если будет время покопаться в конфиге, через пару недель выложу на wincmd.ru.

Спасибо. Ждем официальных изменений.

#887:  Author: Orion9 PostPosted: Thu Nov 07, 2024 20:10
    —
Loopback wrote:
Если будет время покопаться в конфиге, через пару недель выложу на wincmd.ru.

Хотелось бы...) Но можете не торопится, чтоб не стало грузом Smile

#888:  Author: AkulaBig PostPosted: Sat Nov 09, 2024 14:36
    —
Loopback wrote:

будет время покопаться

Посмотрите еще, пожалуйста, поддерживаемые плагином форматы. Ведь midi, трековые-форматы MediaInfo не поддерживает. Может еще какие-то, я пишу про которые увидел в первую очередь. Насколько я понял, поддерживаемые расширения перечислены в файле Preferences.cpp исходников.

#889:  Author: Loopback PostPosted: Sat Nov 09, 2024 23:10
    —
AkulaBig
Ну как не поддерживает. Раз они указаны, значит какую-то базовую информацию библиотека по ним даёт. Для midi не очень полезную (только тип mime). Так же для архивов, документов и некоторых других форматов, которые сейчас закомментированы.

А вот для трекерных - названия треков, BPM, кое-где даже инфо по инструментам, не сказал бы, что это "не поддерживает".

Список форматов я сейчас формирую на основе этого файла.

#890:  Author: AkulaBig PostPosted: Sun Nov 10, 2024 06:57
    —
Loopback wrote:

Список форматов я сейчас формирую на основе этого файла.

Ну этот файл только описание поддерживаемых форматов. А я привел расширения, конкретно регистрируемые MI в системе. Да ладно, пусть так остается. Это совершенно не мешает и легко может быть отредактированно.
У меня ни у одного midi никакой информации не показывает. Хотя bass всю инфу выводит. У трекерных форматов у парочки да, наименование выводит. Еще там что-то. Но не продолжительности, ничего существенного.

#891:  Author: Skif_off PostPosted: Mon Nov 11, 2024 11:32
    —
 Hidden text

#892:  Author: ProgMan13 PostPosted: Thu Nov 14, 2024 01:13
    —
jentoso wrote:
Обновил плагин, но без переименования WDX в WLX кнопка не хочет работать

А что если в параметрах кнопки написать имя плагина с расширением?

#893:  Author: gendalv PostPosted: Fri Mar 28, 2025 19:13
    —
Skif_off wrote:
gendalv
А если добавить в набор колонок ваше поле "Encoded_Library_Settings", ТС там что-нибудь показывает? Не вижу такого источника в дефолтном TCMediaInfo.xml, по идее в <sources></sources> должно быть что-то вроде
Code:
<source name="EncodedSettings" field="Encoded_Library_Settings" context="Video"/>

и в <columns></columns>
Code:
<column name="Encoded Settings">EncodedSettings</column>

(Тип ft_string/ft_stringw, похоже, можно не указывать.)
Имена взял посимпатичнее.
Не любит оно скобки в названиях папок.

#894:  Author: Orion9 PostPosted: Wed May 21, 2025 14:00
    —
Из другой темы:
AkulaBig wrote:
Я выше написал. Там некоторые поля неправильно выводятся. Надо править его файл настройки xml.

Отмотав топик назад:
Quote:
AkulaBig: Еще нашел косячки в последнем TCMediaInfo.xml. Из-за чего не отображались год, наличие обложки и комменты аудио-файлов. Еще там кое-какие обновления. Опять-же, если сочтете нужным, включите эти изменения в новую версию плагина.
Loopback: Посмотрю, но не очень скоро, вижу там много чего.
AkulaBig:Я совершенно случайно заметил, что некоторые поля не отображаются. Посмотрел, у вас оказывается в последних версиях плагина очень изменился алгоритм xml, поэтому и вылез косяк. Я просто эти строки из старого xml взял. Кстати, остальные поля я не проверял. Только те, что заметил.

Могу подтвердить, что проблема есть.

Если с годом ее можно решить, убрав тип поля:
<column name="Recorded Date" coltype="ft_datetime">RecDate</column>
Code:
<column name="Recorded Date">RecDate</column>

А проблему с комментарием, убрав скрипт:
<column name="Comment" type="script">if (StrTrim(Comment) = '') then Output:=LongDescription;</column>
Code:
<column name="Comment">Comment</column>

То проблему с обложкой решить не удалось. Вроде и источник добавил с полем:
Code:
<source name="Cover" field="Cover"/>
<column name="Cover">Cover</column>

Но на выходе почему-то пишет "<empty>".

Ещё вопрос по поводу файла allprops.txt
Quote:
...файл можно обновить на основе актуальных данных с GitHub с помощью отдельно скачиваемого скрипта.

Loopback wrote:
Файл я продолжу обновлять. Если нужно, отдельно выложу скрипт для формирования этого файла на основе данных гитхаба. Просто больше этого функционала не будет во встроенном виде.

Также ещё планирую сделать раздел на сайте с этой информацией, может так кому удобнее будет смотреть.

Этот раздел с информацией?
https://total.darkhost.ru/wiki/doku.php?id=ru:tcmediainfo:tables:general
Как часто он планируется обновляться? А что насчет скрипта тогда, не нужен?
Loopback wrote:
MediaInfo.lng Файл для скриптинга: перевод имен полей MediaInfo, единиц измерения и т.д.

А этот файл как получается, кто следит за обновлениями?

#895:  Author: AkulaBig PostPosted: Thu May 22, 2025 15:09
    —
Можно-ли в стандартном выводе Inform добавить функцию FixCodepage?
Вот так не получается:
Code:

         <view name="">
         <![CDATA[
            FixCodepage('Title', 'Performer', 'Album', 'Track', 'Composer', 'Copyright');
         ]]>
         </view>

Можно-ли сделать, чтобы вместо MediaInfo.lng использовались стандартные языковые файлы MediaInfo?
Orion9 wrote:
Но на выходе почему-то пишет "<empty>".

Вот так у меня работает:
Code:

      <!-- General -->
      <source name="Cover" field="Cover"/>
      <source name="CoverMime" field="Cover_Mime"/>
      <!-- Tag info -->
      <column name="Cover">Cover</column>
      <column name="Cover MIME">CoverMime</column>


Orion9 wrote:
Могу подтвердить, что проблема есть.

Я решил что нет смысла самому формировать CustomFields, а Листер-плагину вообще альтернативы нет. С Листер-плагином разобрался. Достаточно применить стандартный просмотра и отображение становится нормальным. Но надо фикс кодировки применить. О чем задан вопрос выше. А в дефолтном режиме вот эта строка ломает правильный вывод:
Code:

               if StrPos(id, '/') > 0 then Continue;

Не отображаются поля типа Track/Position.
С пользовательскими колонками про которые я написал, я давно вопрос решил. Но сейчас буду комплексно все исправлять, включая перевод. Многие поля нужно добавить. А так альтернативы TCMediaInfo нет. Один раз настрою и потом буду пользоваться.

Добавлено спустя 2 часа 54 минуты:

Совсем забыл написать. Ошибочку нашел. В английской справке режим просмотра называется Raw data. В файле конфигурации Raw info.

#896:  Author: AkulaBig PostPosted: Thu May 22, 2025 23:10
    —
Выявил еще одну ошибку. При отсутствии конфигурационного файла плагин валит ТС х64.

#897:  Author: Orion9 PostPosted: Fri May 23, 2025 00:22
    —
AkulaBig wrote:
Один раз настрою и потом буду пользоваться.

Я так и сделал несколько лет назад - один раз поковырялся и забыл. С тех пор много воды утекло, сейчас мой старый конфинг в 2,5 раза меньше, чем стандартный TCMediaInfo.sample.xml. Вывод напрашивается сам - пора обновляться.
AkulaBig wrote:
Вот так у меня работает:

Пришлось разбираться, почему у меня так не работало, и выяснил, кажется. Всё дело в базе. Я забыл её отключить, когда заменил старый XML на стандартный. В результате, при добавлении новых источников в конфиг, они просто игнорировались, т.к. данные о файле брались из уже существующих записей в base.db. Сейчас все источники, которые я добавлял, работают. Но не работает то, что было выделено красным постом выше.
AkulaBig wrote:
Не отображаются поля типа Track/Position

Да, проверил. У меня тоже в Листере не отображется Track/Position, только в режиме Inform.
AkulaBig wrote:
А так альтернативы TCMediaInfo нет

Согласен. Но что-то в последней версии много косяков каких-то. Жаль. Надеюсь, Loopback всё исправит.

#898:  Author: AkulaBig PostPosted: Fri May 23, 2025 05:39
    —
Orion9 wrote:
Да, проверил. У меня тоже в Листере не отображется Track/Position, только в режиме Inform.

Не отображается из-за приведенной выше строки, которая убивает поля с "/". А в режиме Inform ничего не режется. Только вот мы не можем в Inform применить FixCodepage. Потому что Inform зашит в код плагина. Вот если Loopback сделает изменения режима Inform, тогда все будет отлично.
А пользовательские колонки мы и сами можем сделать нужные. Я имею ввиду, что проблем с настройками контекстной части плагина нет вообще.
Orion9 wrote:
Вывод напрашивается сам - пора обновляться.

Дак и у меня так-же получилось. Причем раньше плагин и работал правильно. Я скачивал все версии плагина и проверял все. Есть какие-то версии, которые работали со старыми версиями MediaInfo. А проблемы возникли именно с последними версиями плагина и MediaInfo.
Orion9 wrote:
Но не работает то, что было выделено красным постом выше.

Я колонку времени записи неправильно у себя назвал "Year", но работает. А с комментом тоже уже разобрался, только не менял у себя. У нас ведь с Loopback была договоренность, что он посмотрит файл конфигурации.
Но сейчас, когда я поглубже копнул, стало ясно, что очень нужны изменения листерной части, а колонки я и сам пропишу.

#899:  Author: Orion9 PostPosted: Fri May 23, 2025 14:00
    —
AkulaBig wrote:
Я колонку времени записи неправильно у себя назвал "Year", но работает.

Работает даже с тем, что я выделил красным выше? У меня нет.

С комментом вроде понятно. Здесь, видимо, просто пропущен "else". Вот так работает:
Code:
<column name="Comment" type="script">if (StrTrim(Comment) = '') then Output:=LongDescription else Output:=Comment;</column>


А с типом данных "ft_datetime" поле "Year" (не важно, как оно называется) не работает. С другим типом, например "ft_numeric_32" без проблем:
Code:
<column name="Year" coltype="ft_numeric_32">RecDate</column>

Вопрос больше в том, есть ли ещё какие-то существенные косяки в стандартной конфигурации. Для этого нужно больше тестов. Сам Loopback не зря же писал:
Loopback wrote:
Посмотрю, но не очень скоро, вижу там много чего.

Времени для таких тестов потребуется действительно много, лично я пока не могу выделить его на это. Для начала бы ещё файлы хорошие для тестов найти и с форматами разобраться, чтобы лучше понимать, что и в какие поля выводится.

#900:  Author: AkulaBig PostPosted: Fri May 23, 2025 15:13
    —
Orion9 wrote:
Работает даже с тем, что я выделил красным выше? У меня нет.

Не с тем, а мои переделанные.
Orion9 wrote:
С комментом вроде понятно.

Я догадался только удалить это условие. Без него работает. Теперь понятно, что просто ошибка в записи. Я еще не дошел до этой колонки в своей переделки.
Orion9 wrote:
А с типом данных "ft_datetime" поле "Year" (не важно, как оно называется) не работает. С другим типом, например "ft_numeric_32" без проблем:

Вот именно. Я поэтому ввел колонку Year без типа данных, а сейчас увидел, что не работает тип данных и в переделках просто у Recorded_Date убрал тип. Тут конечно юзеры виноваты. В файлах, где корректно записана дата:время все работало. Но большинство в эту колонку записывает строку.
Orion9 wrote:
Вопрос больше в том, есть ли ещё какие-то существенные косяки в стандартной конфигурации.

Фифти-фифти.
Orion9 wrote:
Сам Loopback не зря же писал

Раз я разобрался с организацией файла настройки, решил сам переделать его под себя. Надо закрывать тему пользовательских колонок в своей сборке. И так месяц размышлял.
Orion9 wrote:
Времени для таких тестов потребуется действительно много

Зато будет так, как я считаю нужным.
Orion9 wrote:
Для начала бы ещё файлы хорошие для тестов найти

У меня вроде неплохая коллекция для тестов.
Orion9 wrote:
с форматами разобраться, чтобы лучше понимать, что и в какие поля выводится.

Поэтому и хотелось, чтобы Loopback с этим разобрался.
Но ниче. Я смотрю наши безупречные хинты, который соответствует режиму Inform у Loopback и по ним переделываю колонки. Еще ведь и языковый файл переделывать приходится.Раздел General потихоньку переделываю. Потом посмотрите.
Главное, чтобы Loopback поправил листерную часть.

#901:  Author: Orion9 PostPosted: Fri May 23, 2025 20:12
    —
AkulaBig wrote:
В файлах, где корректно записана дата:время все работало. Но большинство в эту колонку записывает строку.

Вот я и говорю, что сначала хорошо было бы разобраться с форматами, чтобы уметь, в первую очередь для себя самого, лучше понимать, что является стандартом, а что не является. Это, конечно, личное дело каждого, плагин этого не требует, но такие знания точно бы не помешали.
AkulaBig wrote:
Фифти-фифти.

Это много ) Но, наверное, только глубокие и объемные тесты смогут сказать точнее.
AkulaBig wrote:
Раз я разобрался с организацией файла настройки, решил сам переделать его под себя.

Конечно, и это правильно. Стандартный файл конфигурации позволяет всё настроить под себя. Поэтому и плагин топовый. Редко можно встретить такую гибкость.
AkulaBig wrote:
У меня вроде неплохая коллекция для тестов.

Файлы безусловно можно собрать. Но проводя серьёзные тесты хотелось бы лучше понимать все поддерживаемые форматы, стандарты, способы хранения и структуру мета-информации в файлах. А это уже совсем другой уровень знаний и понимания, из-за чего плуг, лично для меня, так и остался в подвешенном состоянии. По большому счёту, я юзаю его поля типа "All video as string" и "All audio as string" в подсказке на панелях, ну и листерная часть безусловно крута. Правда хотелось бы побольше режимов просмотра, таких вещей никогда много не бывает.
AkulaBig wrote:
Поэтому и хотелось, чтобы Loopback с этим разобрался.

Я только "за" ) Но как уже написал выше, форматы - личное дело каждого. Хотя, конечно, хотелось бы, чтобы конфиг по умолчанию работал и отображал всё правильно.

#902:  Author: Loopback PostPosted: Fri May 23, 2025 21:49
    —
Orion9 wrote:
Могу подтвердить, что проблема есть.

Тут, оказывается, столько всего написали Shocked

Но чтобы всё это оттестировать времени нужно очень много, а его нет, и пока в приоритете Autorun. Если только что критическое. А так MediaInfo меняется, какие-то решения становятся несовместимыми, какие-то баги всплывают. Тут ничего не поделаешь.

Orion9 wrote:
Как часто он планируется обновляться?

Видимо, в момент выхода новой версии. Надо бы там еще писать, для какой версии MediaInfo сформирован список.

Orion9 wrote:
А что насчет скрипта тогда, не нужен?

Как-то забылось, выложу.

Orion9 wrote:
А этот файл как получается, кто следит за обновлениями?

Обновляется при выходе новой версии.

AkulaBig wrote:
Можно-ли в стандартном выводе Inform добавить функцию FixCodepage?

Нет, в теме Autorun это обсуждали. Это не будет работать на тексте, где смешаны корректные и некорректные куски. Единственный способ - задать определенные поля в шаблоне просмотра.

AkulaBig wrote:
Можно-ли сделать, чтобы вместо MediaInfo.lng использовались стандартные языковые файлы MediaInfo?

Не знаю. Надо смотреть, как они соотносятся между собой, в любом случае это не скоро. В todo как идею закинул.

AkulaBig wrote:
Выявил еще одну ошибку. При отсутствии конфигурационного файла плагин валит ТС х64.

Не могу подтвердить. Если есть TCMediaInfo.sample.xml - то плагин его копирует в TCMediaInfo.xml, если нет, то естественно не работает, но не падает.

AkulaBig wrote:
А в дефолтном режиме вот эта строка ломает правильный вывод:

Да, мой косяк, и еще какой. Можно попробовать заменить эту строку на
Code:
if StrPos(id, '/String') > 0 then Continue;

Тогда Track/Position не должны пострадать.

AkulaBig wrote:
Ошибочку нашел. В английской справке режим просмотра называется Raw data. В файле конфигурации Raw info.

Действительно, поправил.

AkulaBig wrote:
В файлах, где корректно записана дата:время все работало. Но большинство в эту колонку записывает строку.

MediaInfo всегда возвращает строки, другое дело - в каком формате. Предполагаю, что проблемы с ft_datetime связаны с форматом таких строк, но это надо проверять.

Orion9 wrote:
Правда хотелось бы побольше режимов просмотра

Каких, например? У меня тут фантазия буксует Smile

Orion9 wrote:
Хотя, конечно, хотелось бы, чтобы конфиг по умолчанию работал и отображал всё правильно.

Естественно хотелось бы. Но учесть все нюансы при таком огромном количестве информации непросто.

#903:  Author: Orion9 PostPosted: Sat May 24, 2025 00:51
    —
Loopback wrote:
Но чтобы всё это оттестировать времени нужно очень много, а его нет, и пока в приоритете Autorun.

Не берите в голову. По-моему, все это хорошо понимают. Постараемся помочь чем сможем. Тестами, имеется в виду.
Loopback wrote:
Надо бы там еще писать, для какой версии MediaInfo сформирован список.

Да, это важно. Нужно такое видеть.
Loopback wrote:
Обновляется при выходе новой версии.

Версии плагина, или версии DLL? Если первое, то что произойдет если обновить второе? А если плагин долго не будет обновляться, а библиотека далеко уйдет вперед?
Loopback wrote:
Каких, например? У меня тут фантазия буксует

Сложно сказать. В последней версии вы уже максимально выжали все, что нужно простому пользователю ПК, как тут не забуксуешь? От режима "Видео (компактный)" я просто балдею ) Но чтобы придумать новые режимы просмотра тут нужно глубже изучить техническую сторону и области различного, порой очень специфического применения. Например, в тегах иногда хранится информация о нормализации аудио, допустим мне нужно сосредоточится только на этом при быстром просмотре. Сейчас комфортно сделать это не получится, потому что придется мотать вертикальный ползунок, что тормозит весь процесс. Кроме этого, можно разнообразить шаблоны посмотрев примеры в самой MediaInfo. Например, что вроде режима "Кратко" в меню "Вид", там, где "Таблица", "Дерево" и др. У меня, например, в "Выборочно" сейчас вот так:
 Hidden text

Но далеко не оптимально, а просто экперимент. Можно отдельно сделать представления для аудио и титров. Сейчас при просмотре видео-файла, если переключиться на Аудио (компактный) дорожки теряются, остается только одна дорожка. В общем, как это можно разнообразить, можно думать и думать. В конечном счете, главное, чтобы удобно было.

#904:  Author: Loopback PostPosted: Sat May 24, 2025 12:34
    —
Orion9 wrote:
Версии плагина, или версии DLL? Если первое, то что произойдет если обновить второе? А если плагин долго не будет обновляться, а библиотека далеко уйдет вперед?

Плагина.

Ничего ужасного не произойдет, только новые или измененные поля не будет переведены.

Orion9 wrote:
Например, что вроде режима "Кратко" в меню "Вид", там, где "Таблица", "Дерево" и др.

Так по-сути это аналогично "компактным" режимам просмотра.

Orion9 wrote:
В общем, как это можно разнообразить, можно думать и думать. В конечном счете, главное, чтобы удобно было.

Ну ок, когда что-то придумается, тогда можно будет думать дальше Smile

#905:  Author: Orion9 PostPosted: Sat May 24, 2025 13:45
    —
Loopback wrote:
Так по-сути это аналогично "компактным" режимам просмотра.

Аналогично, согласен. Разница может быть в нюансах и расположении полей в определенных местах строки. Иногда удобно, например, видеть название кодека в начале, а иногда в конце. Или нужно видеть полную информацию о воспроизведении - Duration/String1, Duration/String3, Duration/String5, другую специфическую информацию, например StreamSize/String5. Но самый главный критерий - чтобы вся релевантная информация для режима помещалась на экран в противоположной панели, чтобы не возникало необходимости крутить ползунок в сторону или вниз, прерывая тем самым быстрый просмотр по CTRL+Q. А для этого можно даже чем-то пожертвовать, оставить только простой текстовый вывод типа того, что я скинул выше.

Также можно сделать отдельный режим для тэгов. Сейчас вся информация смешивается в общем потоке, что не очень удобно, если нужно посмотреть только тэги без технической информации. По сути, к режимам Аудио (компактный) и Видео (компактный) можно добавить пункт "Только тэги" или что-то в этом роде. Я как раз недавно эксперементировал с шаблоном плагина anytag.wdx и обнаружил то ли баг, то ли это так задумано:
 Hidden text

Последняя строка динамически создаёт поля плагина с именами всех тэгов. На выходе получается очень интересно:
 Hidden text

Правда поле комментария почему-то режется и с этим отдельно нужно разбираться, но сам вывод интересен. Здесь мне нравится то, что есть информация о кодировке тэга, а также информация о том, сколько байт занимают все тэги, в том числе и отдельно те, которые в начале и в конце файла (Prepended и Appended). Минус один. Информация о тэгах отображается только для считанного тэга, а в mp3-файле может быть, например, три тэга: ID3v1, ID3v2.3 и APE. В последнем, как правило, и сохраняется служебная информация сторонними приложениями, например о нормализации или выравнивании громкости. Но anytag читает только один тэг, что в результате отрезает другую информацию:
 Hidden text

MediaInfo читает все тэги, но информация о них перемешивается с другой, технической информацией. Например, данные от тэга APEv2 почему-то попадают в аудио-поток, где их вообще непросто вычленить взглядом:
 Hidden text

Loopback wrote:
Ну ок, когда что-то придумается, тогда можно будет думать дальше

Придумается со временем, куда оно денется. Если будут какие-то идеи, то обязательно поделюсь. Просто я не так активно юзал листерную часть плагина, но сейчас смотрю она очень сильно прибавила. Как я написал выше, вы уже сняли все сливки, возможно, тут и добавить то нечего. Поспешно было мое утверждение, что хотелось бы больше режимов просмотра )
Кстати, на мой взгляд, подменю "Режимы просмотра" замедляет выбор пунктов. Лучше сразу все пункты подменю вынести в основное контекстное меню или сделать в окне просмотра табы, как, например, в плагине decMetaExpert, там очень удобно табы сделаны, да и таблицы тоже удобно сделаны.

P.S.
Loopback wrote:
Нет, в теме Autorun это обсуждали. Это не будет работать на тексте, где смешаны корректные и некорректные куски. Единственный способ - задать определенные поля в шаблоне просмотра.

Знаю, что адресовано не мне, но в теме Autorun вопрос вроде порешали. Разве нельзя только вторую часть строки фиксить?

#906:  Author: AkulaBig PostPosted: Sat May 24, 2025 17:55
    —
Loopback wrote:
Да, мой косяк, и еще какой.

Реально серьезнейший косяк.
Loopback wrote:
if StrPos(id, '/String') > 0 then Continue;

Так лучше. Но теперь все три поля называются "Трек". А должно быть "Трек", "Трек/Расположение", "Трек/Всего". То-есть "/" обязательно надо оставлять. Насколько я понимаю, это можно исправить только в коде.
Loopback wrote:
Единственный способ - задать определенные поля в шаблоне просмотра.

На ру-борде так и решают эту проблему. Я имею ввиду не проблему кодировки, а проблему отсутствующих полей. Но это очень кривое решение. Хотелось-бы, чтобы порядок полей соответствовал MediaInfo. А так прописывают в настройках листер-плагина после цикла:
Code:

            // FIXES: Show Track № and CD №
            TrPos := Get('Track/Position3', 'General');
            if TrPos <> '' then LineAddField('Track/Position', 'General');
            PrPos := Get('Part/Position', 'General');
            if PrPos <> '' then LineAddField('Part/Position', 'General');

И поле Track появляется в конце. Но это-же неправильно. Насколько я понимаю, в коде надо добавить возможность создания конфигурации на основе режима Complete. По другому эту проблему не решить.
Loopback wrote:
В todo как идею закинул.

Да, вдруг найдете когда-нибудь время реализовать эту опцию. Мне кажется вам-же проще будет. Я поля, которые переделываю, обзываю как в MediaInfo. Не знаю, что лучше. Но если помните, я считаю что даже если это не правильно, пусть будет как в оригинале. Раскрою небольшой секрет. Мне не понравился ваш перевод "дорожка". Исправил его на трек. Сижу довольный и листаю оригинальный файл перевода. И волосы встают дыбом. Несколько слов переведено как "трек", несколько как "дорожка". Я выкрутился так. Раз я использую поля, которые в оригинале называются трек, заменил дорожку на трек. А поля, которые в оригинале переведены как дорожка, я не использую. Вроде все честно.
Loopback wrote:
естественно не работает, но не падает.

Хм. Последний TC 11.55 RC3 х64. Четко падает при отсутствии TCMediaInfo.xml. Удаляем TCMediaInfo.xml. Нажимаем Ф3. ТС падает. При следующем запуске все работает. Ведь TCMediaInfo.xml создан. Проверил на ТС 11.51. Тоже падает. На ТС х32 как-то мутно получилось. Сначала не упал. Но и TCMediaInfo.xml не создался. Потом огромная таблица с ошибкой появилась и упал. TCMediaInfo.xml создался.
Уж напишу тогда обо всем, что нашел. Поле Title присутствует только в режиме MediaInfo Full. Получается если мы добавляем Track name по нашему кривому алгоритму, то в выводе листер-плагина присутствуют оба поля. В в контекстном плагине у вас Track name отсутствует. Соответственно не на всех файлах показывает название. Там просто нет поля Title.

Добавлено спустя 14 минут:

Orion9 wrote:
такие знания точно бы не помешали.

Вы-же знаете мой принцип "и так сойдет" Cool
Orion9 wrote:
вы уже сняли все сливки, возможно, тут и добавить то нечего

Вот как-раз с листерной частью большие проблемы. Нет возможности выводить поля с "/".
Мне кажется надо код править, но может Loopback предложит решение через файл конфигурации.

#907:  Author: Loopback PostPosted: Sun May 25, 2025 00:08
    —
Orion9 wrote:
Но самый главный критерий - чтобы вся релевантная информация для режима помещалась на экран в противоположной панели

Это всё замечательно, но у каждого какие-то свои хотелки, для кого-то релевантно одно, для кого-то другое. Всем не угодишь. Написать свой шаблон не так уж и сложно, примеров много, но разумеется, какие-то усилия приложить придётся.

Orion9 wrote:
что не очень удобно, если нужно посмотреть только тэги без технической информации.

Ну имхо, если теги и тех. информация в своих подразделах, не вижу, чем так уж может мешать раздел тех. информации.

Orion9 wrote:
Здесь мне нравится то, что есть информация о кодировке тэга, а также информация о том, сколько байт занимают все тэги, в том числе и отдельно те, которые в начале и в конце файла (Prepended и Appended).

MediaInfo не предоставляет этой информации.

Orion9 wrote:
MediaInfo читает все тэги, но информация о них перемешивается с другой, технической информацией.

Если это так, то это проблема MediaInfo, увы. Конечно, скриптом её можно обойти, но придется писать дополнительный код-исключение для конкретных форматов, что, конечно, очень не радует.

Orion9 wrote:
Лучше сразу все пункты подменю вынести в основное контекстное меню или сделать в окне просмотра табы

Этих режимов может быть и десяток, и два, и всё это вываливать в главное меню? Для быстрого доступа есть горячие клавиши. Табы? Ну, не знаю.

Orion9 wrote:
. Разве нельзя только вторую часть строки фиксить?

Парсить еще и вывод Inform? Ну не знаю. Как-то не понял я его ценности, чтобы за него цепляться. Он же просто выводит все непустые поля, да ещё со спорным форматированием.

AkulaBig wrote:
Но теперь все три поля называются "Трек". А должно быть "Трек", "Трек/Расположение", "Трек/Всего". То-есть "/" обязательно надо оставлять. Насколько я понимаю, это можно исправить только в коде.

Разумеется. В коде поправил, теперь часть после "/" отбрасывается только в случае, если она начинается на String, поскольку такие комбинации - это точно вариации одного и того же поля, только с разным форматом. Вот исправленная версия. Но сразу это не поможет, поскольку в языковом файле для таких комбинаций нет перевода, его надо добавлять.

Возможно, потом сделаю опцию и /String* трактовать как раздельные поля.

AkulaBig wrote:
На ру-борде так и решают эту проблему ... проблему отсутствующих полей.

Вчерашнее исправление скрипта должно решить эту проблему.

AkulaBig wrote:
Хотелось-бы, чтобы порядок полей соответствовал MediaInfo.

А есть какой-то особый смысл в этом порядке расположения? Ну вот завтра MediaInfo добавит новое поле и порядок будет другой. Как по мне, правильнее было бы наоборот - иметь фиксированный порядок информации, хотя это сложнее простого цикла. Но дело хозяйское, конечно.

AkulaBig wrote:
Мне не понравился ваш перевод "дорожка". Исправил его на трек.

Ну, трек - это англицизм, а перевод именно "дорожка". Но это вкусовщина, и конечно, никто не запрещает менять перевод. Я вот, например, в переводе тотала всегда меняю <Папка> и <Ссылка> на более лаконичные <DIR> и <LNK>, мне так удобнее.

AkulaBig wrote:
Мне кажется вам-же проще будет.

Ох не факт. Учитывая "волосы дыбом" Smile Потом набросаю скрипт, чтобы понять, какие поля и как переведены в сравнении с моим языковым файлом.

AkulaBig wrote:
Четко падает при отсутствии TCMediaInfo.xml.

Тестировал на 11.51. Ладно, позже тогда, некритичная проблема.

AkulaBig wrote:
Поле Title присутствует только в режиме MediaInfo Full. Получается если мы добавляем Track name по нашему кривому алгоритму, то в выводе листер-плагина присутствуют оба поля. В в контекстном плагине у вас Track name отсутствует. Соответственно не на всех файлах показывает название. Там просто нет поля Title.

Не уверен, что понял.

#908:  Author: AkulaBig PostPosted: Sun May 25, 2025 06:59
    —
Loopback wrote:
Вот исправленная версия.

Даже не знаю, как вас благодарить. Теперь все работает как нужно! Огромное спасибо.
Loopback wrote:
поскольку в языковом файле для таких комбинаций нет перевода, его надо добавлять.

Все отлично:

Loopback wrote:
Возможно, потом сделаю опцию и /String* трактовать как раздельные поля.

Только, пожалуйста, опционально. Меня полностью устраивает нынешний вывод. который соответствует выводу MediaInfo.
Loopback wrote:
А есть какой-то особый смысл в этом порядке расположения?

Чистая вкусовщина. А для вас упрощение скриптов настройки.
Loopback wrote:
Ну, трек - это англицизм, а перевод именно "дорожка".

У меня со словом дорожка ассоциируется дорожки на ленте. Может я слишком старый, но прям режет слух. Но это ладно, забавно то, что в оригинальном файле русификации применяется и тот и тот перевод. Хотя может быть как раз в этом смысловая нагрузка.
Loopback wrote:
Не уверен, что понял.

Все, все, все. Не заморачивайтесь. Это уже не актуально. Просто выводились два одинаковых названия. Одно в поле Title, другое в поле Track number.

#909:  Author: Orion9 PostPosted: Sun May 25, 2025 14:04
    —
AkulaBig wrote:
Реально серьезнейший косяк.
...
Мне кажется надо код править, но может Loopback предложит решение через файл конфигурации.

Проблема действительно серьезная, однозначно надо было ее решать и заливать новую версию на сайт ради тех пользователей, которые никогда не полезут в конфиг, что Loopback отчасти и сделал. Но он забыл приложить в архив исправленнный файл конфигурации, потому что без замены строк на:
Code:
if StrPos(id, '/String') > 0 then Continue;

обновленные файлы плагина сами по себе ничего не дают.

А что касается сливок, то я имел в виду другое. Там речь шла о режимах вывода информации и об увеличения их числа. Сейчас листерная часть плагина предлагает несколько режимов просмотра, которых большинству пользователей будет просто за глаза, Loopback всё хорошо продумал в этом отношении и "снял", что называется, "все сливки" с режимов просмотра. Если какие-то вопросы и есть, то только в виде мелких нюансов и частных предподчений. Например, в режиме "По умолчанию" в самом верху зачем-то выводится информация об общем количестве аудиоканалов:
Code:
Всего аудиоканалов : 48

Что с этой информацией делать пользователю, не совсем понятно. На мой взгляд, важнее на этом месте видеть информацию о количестве аудиодорожек. Или в режиме "Полный" нет информации о миллисекундах в поле "Продолжительность", хотя не понятно почему, ведь режим называется Полный. В общем, если поковыряться, можно найти где и что улучшить. Но что касается добавления новых режимов просмотра, то придумать их будет теперь не так уж и просто. Кстати, вот еще одна идея для режимов: Режим "Продолжительность", который будет показывать только информацию о продолжительности всех потоков, которая практически всегда отличается в миллисекундах.
Loopback wrote:
Это всё замечательно, но у каждого какие-то свои хотелки, для кого-то релевантно одно, для кого-то другое. Всем не угодишь.

Справедливости ради, речь шла о быстром просмотре: уверен, никому не нравится, когда при быстром просмотре информацию на противоположной панели приходится крутить ползунками, это практически лишает всякого смысла саму операцию быстрого просмотра. И я с вами согласен - всем не угодишь. Но если вы ведёте плагин уже больше 15 лет, на кому ещё расчитывать простому пользователю, если не на вас?
Loopback wrote:
Написать свой шаблон не так уж и сложно, примеров много, но разумеется, какие-то усилия приложить придётся.

Кому? Простому пользователю, который никогда не полезет в конфиг, а если и полезет, то только чтобы ужаснуться от увиденного? )

Чтобы написать шаблон, его для начала надо придумать, что уже не просто, как выяснилось. Но и придуманный шаблон не просто реализовать, кто за это возьмётся? Не каждый прогер захочет этим замотрачиваться, о простых пользователях что говорить?
Loopback wrote:
не вижу, чем так уж может мешать раздел тех. информации.

Он мешает тем, что перемешивается с тэгами, и от этого становится непонятно, вшита ли эта информация в поток, или хранится отдельно в тэгах.
Loopback wrote:
MediaInfo не предоставляет этой информации.

Если это так, то это проблема MediaInfo, увы.

К сожалению, да.
Loopback wrote:
Конечно, скриптом её можно обойти, но придется писать дополнительный код-исключение для конкретных форматов, что, конечно, очень не радует.

На мой взгляд, режим "Только тэги" не помешал бы, но сделать его можно в данных условиях только фильтруя нужные поля. У автора Mp3Tag, конечно, найдутся свои алгоритмы для перечисления тэгов, которые именно на это и направленны, но нам-то от этого не легче.
Loopback wrote:
Этих режимов может быть и десяток, и два, и всё это вываливать в главное меню? Для быстрого доступа есть горячие клавиши. Табы? Ну, не знаю.

Сколько-сколько режимов может быть? Shocked Шутите, наверное ) Мне сначала тоже показалось, что режимов как-то маловато и что есть куда копнуть, поэтому и написал об этом. Но как выясняется, тут 2-3 режима новых придумать будет сложно, что уж о десятке говорить? )

Но мало еще придумать, их сделать нужно. Я, например, за долгое время так и не понял, что именно мне нужно, поэтому и не лез в конфиг. Без чёткого понимания, что нужно, делать в любом случае ничего не получится.

Ну, а на счет меню, не знаю, вы же сами писали, что больше мышист и переключение горячими клавишами добавили относительно недавно. Разве вам удобно было добираться до пунктов подменю?
Loopback wrote:
Парсить еще и вывод Inform? Ну не знаю. Как-то не понял я его ценности, чтобы за него цепляться. Он же просто выводит все непустые поля, да ещё со спорным форматированием.

Согласен. Меня тоже не напрягает вывод с кракозябрами в Infom, до тех пор, пока есть возможность переключения на другой режим, где эти кракозябры фиксятся. Но разве сейчас фиксятся не только отдельные поля? В тэгах могут попасться нестандартные записи, добавляемые пользователями, которые не обработаются функцией:
Code:
FixCodepage('Title', 'Performer', 'Album', 'Track');

AkulaBig приводил примеры таких тэгов.

#910:  Author: AkulaBig PostPosted: Sun May 25, 2025 14:43
    —
Orion9 wrote:
без замены строк на:
Code:

if StrPos(id, '/String') > 0 then Continue;

обновленные файлы плагина сами по себе ничего не дают.

Так и есть. Я специально проверил.
Orion9 wrote:
В тэгах могут попасться нестандартные записи, добавляемые пользователями, которые не обработаются функцией

Навряд-ли с этим можно что-то сделать:

#911:  Author: Orion9 PostPosted: Sun May 25, 2025 20:01
    —
AkulaBig wrote:
Навряд-ли с этим можно что-то сделать:

Что-то не нашел я у себя таких файлов, пришлось сделать свой )
Code:
Формат                                   : MPEG Audio
Размер файла                             : 3,76 Мбайт
Продолжительность                        : 2 мин. 20 с.
Режим общего битрейта                    : Постоянный
Общий битрейт                            : 224 Кбит/сек
Имя трека                                : Òîòàë Êîììàíäåð
Исполнитель                              : Êðèñòèàí Ãèñëåð
Библиотека кодирования                   : LAME3.96.1
Ïëàãèí                 : ÒÑ ÌåäèàÈíôî

Полностью это проблемы не исправит, вы правы, но хотя бы вторая часть строки будет отображаться корректно:
Code:
Формат                                   : MPEG Audio
Размер файла                             : 3,76 Мбайт
Продолжительность                        : 2 мин. 20 с.
Режим общего битрейта                    : Постоянный
Общий битрейт                            : 224 Кбит/сек
Имя трека                                : Тотал Коммандер
Исполнитель                              : Кристиан Гислер
Библиотека кодирования                   : LAME3.96.1
Плагин                 : ТС МедиаИнфо

Кстати, именно в таких случаях и может пригодится свойство плагина anytag.wdx корректно читать ANSI:
Readme.txt wrote:
If the field ansi is set to 1 (instead of 0) anytag.wdx uses the
system codepage for decoding non-unicode ID3v2 tags.

Если сделать, как я писал выше, и добавить к его шаблону "$list($char(10),: ,)", то anytag.wdx будет перечислять все записи в тэге:
Code:
Tag                             : ID3v1 ID3v2.3
Tag Read                        : ID3v2.3
Tag Size                        : 2250
Artist                          : Кристиан Гислер
Title                           : Тотал Коммандер
Bitrate                         : 224
Codec                           : MPEG 1 Layer III
Length                          : 02:21
Length (in seconds)             : 141
Mode                            : Joint Stereo
Samplerate                      : 44100
Extra information               : CBR
Appended                        : 128
Prepended                       : 2122
ID3v2 Encoding                  : ISO-8859-1
Tags                            :
ARTIST: Кристиан Гислер
TITLE: Тотал Коммандер
Плагин: ТС МедиаИнфо

Но правда нет гарантий, что считается именно тот тэг, который нужен. Как я понял, если в mp3-файле есть APE, то приоритет будет отдан именно этому тэгу, а не ID3v2. Можно ли управлять таким выбором, пока не ясно. Возможно и не получится. Тогда только строннее приложение придётся юзать, чтобы посмотреть, что скрывается за кракозябрами. Ну, или в HEX-редакторе напрямую открыть и глянуть.

#912:  Author: AkulaBig PostPosted: Sun May 25, 2025 20:30
    —
Orion9 wrote:
но хотя бы вторая часть строки будет отображаться корректно

Это понятно. Если я этот тег пропишу в настройках, то и у меня вторая часть будет корректно отображаться. Но зачем мне левый тэг, присутствующий только в одном файле?
Orion9 wrote:
именно в таких случаях и может пригодится свойство плагина anytag.wdx корректно читать ANSI

Если-бы это был листер-плагин, можно было-бы потестить. А какой смысл делать это в контекстном плагине?

#913:  Author: Loopback PostPosted: Sun May 25, 2025 21:08
    —
AkulaBig wrote:
Все отлично:

Очень хорошо. Удивляюсь, как такой косяк вообще допустил. Ну и за столько лет никто не обращал внимания.

AkulaBig wrote:
в оригинальном файле русификации применяется и тот и тот перевод. Хотя может быть как раз в этом смысловая нагрузка.

Возможно, просто разные люди переводили. Мне не кажется, что у этих (кстати, идущих подряд) строк разная смысловая нагрузка:

Quote:
Track;Имя трека
Track_Count;Количество треков
TrackFormat;Формат дорожки
TrackIndex;Индекс дорожки


Orion9 wrote:
заливать новую версию на сайт ради тех пользователей, которые никогда не полезут в конфиг, что Loopback отчасти и сделал. Но он забыл приложить в архив исправленнный файл конфигурации

Такие версии чисто тестовые и не предназначаются для широкого круга. Это даже не бета. Проблема существовала годами, ничего страшного не произойдёт за еще какое-то время.

Orion9 wrote:
в самом верху зачем-то выводится информация об общем количестве аудиоканалов

Это да, странная информация, с какой стороны ни посмотри. Лучше отфильтровать.

Orion9 wrote:
На мой взгляд, важнее на этом месте видеть информацию о количестве аудиодорожек.

Шаблон полуавтоматический, выводящий все поля, кроме заданных в списке исключений. На это место принудительно ничего не впихнуть. Чтобы выводить в заданном порядке надо идти от обратного, т.е. делать явный список того, что надо вывести.

Orion9 wrote:
Или в режиме "Полный" нет информации о миллисекундах в поле "Продолжительность", хотя не понятно почему, ведь режим называется Полный.

"Полный" значит лишь то, что в нем не фильтруются "лишние" поля. Форматирование единиц все равно будет зависеть от предпочтений сделавшего шаблон.

Orion9 wrote:
Но если вы ведёте плагин уже больше 15 лет, на кому ещё расчитывать простому пользователю, если не на вас?

На какого-нибудь еще продвинутого пользователя? Smile

Впрочем, не вопрос. Но хотелось бы, чтобы вопрошающий имел уже некое оформленное понимание, чего он хочет. Техническое задание, если угодно.

Orion9 wrote:
Чтобы написать шаблон, его для начала надо придумать, что уже не просто, как выяснилось.

Вот именно, придумать - это самое сложное. А если польза будет больше, чем для пары человек - совсем отлично Very Happy

Orion9 wrote:
Но и придуманный шаблон не просто реализовать, кто за это возьмётся? Не каждый прогер захочет этим замотрачиваться, о простых пользователях что говорить?

При наличии нормального ТЗ это не так сложно, как может показаться. Сплошная копипаста.

Orion9 wrote:
Он мешает тем, что перемешивается с тэгами

Но я-то имел в виду компактные режимы, они с фиксированным набором полей. В них никакого смешивания не происходит.

Orion9 wrote:
На мой взгляд, режим "Только тэги" не помешал бы, но сделать его можно в данных условиях только фильтруя нужные поля.

Я все же не понимаю, чем это принципиально лучше "компактного аудио". Ну убрать из него строку LineAddHeader(GetName('Audio')); и всё что после нее - вот и будет "Только теги".

Orion9 wrote:
вы же сами писали, что больше мышист и переключение горячими клавишами добавили относительно недавно. Разве вам удобно было добираться до пунктов подменю?

Я пользуюсь стандартным и редко их переключаю.

Orion9 wrote:
Но разве сейчас фиксятся не только отдельные поля? В тэгах могут попасться нестандартные записи, добавляемые пользователями, которые не обработаются функцией:

Никто не мешает добавить в неё свои поля, которые надо исправлять. Хотя если будет такое, как в сообщении выше, когда искажено даже само имя поля, что тут сделаешь?

На самом деле, если уж очень надо, FixCodepage можно использовать и в цикле для всех полей, главное её вызвать перед выводом значения поля примерно в таком виде:

Code:
FixCodepage(GetID(i, 'Audio'))
LineAddField(GetID(i, 'Audio'))


Но это, разумеется, не лучшим образом скажется на производительности.

#914:  Author: AkulaBig PostPosted: Sun May 25, 2025 22:17
    —
Loopback wrote:
Ну и за столько лет никто не обращал внимания.

Скорей всего потому что для этого надо изучить MediaInfo более-менее. Ведь только после этого я смог разобраться в ваших скриптах хоть немножко. А до этого не получалось.
Loopback wrote:
Но это, разумеется, не лучшим образом скажется на производительности.

В хинтах вроде не тормозит. Хотя конечно это понятие относительное. На слабом железе может и будет заметно.

Добавлено спустя 52 минуты:

Loopback wrote:
FixCodepage можно использовать и в цикле для всех полей

А можете поконкретнее подсказать, куда что прописывать?
В дефолтном режиме у нас есть id:=GetID(i, 'General', 0); Пишу id:=FixCodepage(GetID(i, 'General', 0)); Значения показываются правильно, но исчезают сами названия полей. А строки LineAddField(GetID(i, 'General')) нет вообще. Если ее просто после id написать, названия полей не появляются.

#915:  Author: Loopback PostPosted: Mon May 26, 2025 00:01
    —
AkulaBig wrote:
А можете поконкретнее подсказать, куда что прописывать?
В дефолтном режиме у нас есть id:=GetID(i, 'General', 0); Пишу id:=FixCodepage(GetID(i, 'General', 0));


FixCodepage не возвращает значение, она формирует список полей для "исправления". Если поле есть в этом списке, функции Get и LineAddField производят исправление сразу после чтения значения поля. Надо это в справке уточнить.

Каждый вызов FixCodepage формирует список полей заново. Так что если вызывать ее с одним параметром и следом получать значение поля, то оно будет проходить процедуру "исправления".

Вот кусок из стандартного режима.
Code:
// get field ID by index
id:=GetID(i, 'General', 0);
// skip formatted values (Value/String etc)
if StrPos(id, '/String') > 0 then Continue;
// skip values that we defined for skipping
if StrPos(SkipGeneral, id+',') > 0 then Continue;
// ---- вызываем где-то здесь ----
FixCodepage(id);
// get field value
v:=Get(i, 'General', 0);
// skip empty values
if (v = '') then Continue;

#916:  Author: Orion9 PostPosted: Mon May 26, 2025 00:34
    —
Loopback wrote:
Удивляюсь, как такой косяк вообще допустил.

Косяки бывают разные, они неизбежны. Не бывают косяков, кто ничего не делает.
Loopback wrote:
Ну и за столько лет никто не обращал внимания.

Даже вы сами? )

Если серьезно, AkulaBig целый фрагмент кода притащил с руборда, где люди пытались с этим бороться. Но рельность - тётка суровая. Лишь 0,01% пользователей побежит репортить баги, и это нужно понимать. Остальные примут данность и будут искать другие решения, будучи, кстати, не до конца уверенными, баг ли это. Примерно так со мной и было, когда только познакомился с TCMediaInfo много лет назад.
Loopback wrote:
Шаблон полуавтоматический, выводящий все поля, кроме заданных в списке исключений. На это место принудительно ничего не впихнуть.

И это плохо. Я еще не изучал детально конфиг, но понял, что тут много автоматики. Возможно, нужно другое что-то думать, чтобы была возможность более удобно выводить данные. Посмотрите, например, как устроены шаблоны в самом MediaInfo. Вот буквально за 10 минут на коленке создал шаблон, о котором говорилось выше, т.е. режим "Продолжительность":
 duration.txt

 Кнопка

 Вывод

Как видите, шаблон весьма полезный - сразу видно, как отличаются дорожки друг от друга по длинне. И если чаще всего это вопрос миллисекунд, то могут ведь попасться и секундные отличия, что иногда важно видеть.
Loopback wrote:
Впрочем, не вопрос. Но хотелось бы, чтобы вопрошающий имел уже некое оформленное понимание, чего он хочет. Техническое задание, если угодно.

Пожалуй, я не до конца развил свою мысль, говоря о том, что вы ведёте плагин уже почти 16 лет. Не будут простые пользователи придумывать шаблоны и писать ТЗ. В этом отношении они полностью полагаются на вас как на автора - ваше знание, уменение, понимание и видение того, как всё должно быть устроено. Поэтому я даже не шутил, когда писал, что "я только за", т.е. за то, чтобы вы всё порешали, а мы бы только пользовались ) Все этого хотят, разве нет? Зато честно )
Loopback wrote:
Вот именно, придумать - это самое сложное. А если польза будет больше, чем для пары человек - совсем отлично

На этот счет я уже писал. Будут идеи - буду стараться сообщать.
Loopback wrote:
Я все же не понимаю, чем это принципиально лучше "компактного аудио"

А вот теперь я не совсем понимаю. Аудио - это аудио. А тэги - это тэги. Задача - вывести только тэги. Но судя по всему, в MI это не просто будет сделать, не разобравшись сначала, какие поля за что отвечают.
Loopback wrote:
когда искажено даже само имя поля, что тут сделаешь?

Это и есть те самые нестандартные записи. Но тэг ID3v2 позволяет пользователям создавать такие поля и называть их как угодно, это нормально. Плохо только, что такая информация сохраняется не в юникод, отсюда все и проблемы, как вы знаете.
AkulaBig wrote:
Но зачем мне левый тэг, присутствующий только в одном файле?

Мне раньше много таких файлов попадалось. Странно, что в этот раз я не нашел ни одного у себя в коллекции. Но полей там может быть куда больше, чем просто одна запись.
AkulaBig wrote:
А какой смысл делать это в контекстном плагине?

anytag.wdx может пригодиться как альтернатива, если нужно посмотреть все кракозабнутые поля. Но их можно увидеть, даже если просто открыть файл в Листере с единичкой "1", т.е. Вид -> Только текст. Может кому пригодится.

#917:  Author: AkulaBig PostPosted: Mon May 26, 2025 04:47
    —
Loopback wrote:
Вот кусок из стандартного режима.

Спасибо, так работает.
Loopback wrote:
На самом деле, если уж очень надо, FixCodepage можно использовать и в цикле для всех полей

Вспомнил, какой режим просмотра хотелось-бы иметь, который мы не можем создать сами. Выше я об этом писал, но в длинном посте это затерялась.
Это стандартный у вас режим Inform, но с FixCodepage.
Постараюсь пояснить. Если я правильно понимаю, сейчас у вас за основу взят вывод MediaInfo в режиме Full. Поэтому в вашем режиме Default приходится писать код для пропуска некоторых полей. Например, SkipGeneral:= При этом мы можем потерять и нужные поля? Я правильно понимаю? Но если убрать skip мы получаем вывод большого множества ненужных полей, соответствующих Full. А в MediaInfo есть прекрасный режим Complete, который не выводит повторяющиеся поля и соответствует вашему режиму Inform. Но в режиме Inform мы не можем писать скрипт для FixCodepage. Потому что этот режим полностью описывается в коде. Вот и хотелось-бы иметь режим Inform FixCP.
Понятно-ли я объяснил и возможно-ли создать этот режим?

#918:  Author: Orion9 PostPosted: Mon May 26, 2025 13:41
    —
AkulaBig wrote:
Понятно-ли я объяснил и возможно-ли создать этот режим?

Думаю, Loopback и в прошлый раз хорошо понял и даже ответил на это. Но вообще-то странно, что автор MediaInfo.dll не сделал возможности преобразования кодовых страниц, как и странно, что не предусмотрел дополнительной группировки по тэгам. Процитирую себя, уж извините:
Quote:
Аудио - это аудио. А тэги - это тэги. Задача - вывести только тэги.

И с этой задачей хорошо справляется ExifTool. Вот пара примеров:

 Hidden text

 Hidden text

 Кнопка

Как я понимаю, из MediaInfo.dll так вывести не получится, если только автор библиотеки сам тому поспособствует. Ну и ладно.

#919:  Author: Loopback PostPosted: Mon May 26, 2025 14:09
    —
Orion9 wrote:
Даже вы сами?

Я в первую очередь.

Orion9 wrote:
Возможно, нужно другое что-то думать, чтобы была возможность более удобно выводить данные.

Не, других вариантов шаблонов делать не планируется.

Orion9 wrote:
шаблон весьма полезный

Здесь должен быть смайл *пожимаю плечами*. Ну кому-то полезный, если кто занимается созданием релизов. А вот зачем мне, как пользователю, эта информация? Я знаю, что дорожки могут отличаться, но если автор релиза в контейнере правильно расставил смещения, все озвучки будут синхронизированы, и мне совершенно фиолетово, на сколько миллисекунд они там различаются...

Orion9 wrote:
Пожалуй, я не до конца развил свою мысль, говоря о том, что вы ведёте плагин уже почти 16 лет. Не будут простые пользователи придумывать шаблоны и писать ТЗ. В этом отношении они полностью полагаются на вас как на автора - ваше знание, уменение, понимание и видение того, как всё должно быть устроено. Поэтому я даже не шутил, когда писал, что "я только за", т.е. за то, чтобы вы всё порешали, а мы бы только пользовались ) Все этого хотят, разве нет? Зато честно )

Ну так о чём тут спорить-то? Любой автор делает всё согласно своему видению, разве нет? Кого устраивает - тот просто пользуется. Кого нет - или разбирается и делает сам, или просит что-то сделать. Ну и самый сложный и тернистый путь - пытается убедить меня в правильности своей точки зрения Smile Последнее, разумеется, не относится к очевидным багам.

AkulaBig wrote:
Это стандартный у вас режим Inform, но с FixCodepage.

Ну и опять же пришли к тому же... Не могу понять этой зацикленности на Inform. Что в нём такого особенного, без чего нельзя жить с другими шаблонами? Ну ок, сделаю опцию, при включении которой все значения в выводе "Стандартный Inform" будут подвергаться "исправлению". Отдельного Inform, конечно, не будет.

Вот только я тут понял, что этот способ "исправления" вообще ущербный, потому что "исправление" портит другие корректные теги. Например, вместо корректного немецкого "Lügen" получаем кривое "Lьgen". Т.е. исправляя редкие некорректные теги MP3 (и только MP3) теряем возможность видеть правильно теги в отличной от дефолтной в системе кодировки везде. А ведь это всё безобразие, по сути баг нехилого масштаба, много лет включенный по умолчанию.

Поэтому использование в шаблоне FixCodepage и работу "fix_cp" в следующей версии сделаю зависимым от глобальной опции. И она должна быть отключённой по умолчанию.

Orion9 wrote:
Но вообще-то странно, что автор MediaInfo.dll не сделал возможности преобразования кодовых страниц

Я сам когда-то запрашивал у него опцию декодирования в системную кодировку и получил отказ. Впрочем, сейчас я с его подходом даже соглашусь. Стандарт есть стандарт. Костыли (а такая опция была бы ничем иным как костылем) приемлемы для прикладной программы, но не совсем уместны в библиотеке.

#920:  Author: AkulaBig PostPosted: Mon May 26, 2025 14:29
    —
Orion9 wrote:
Но вообще-то странно, что автор MediaInfo.dll не сделал возможности преобразования кодовых страниц

Мир не совершенен. У кого-то это скелеты в шкафу, как у Гислера из-за того, что в свое время выбрал не очень удачный инструмент, который не прошел испытание временем. А вообще зарубежные програмеры просто не придают значение разной кодировке. У них-то всегда все хорошо.
Loopback wrote:
вместо корректного немецкого "Lügen" получаем кривое "Lьgen".

Ну даже в моем скрине видно, что и сами поля могут быть не читаемые. Понятно, что все проблемы кривых юзеров мы не решим. Но хоть можно прочитать что там написано.
Loopback wrote:
Поэтому использование в шаблоне FixCodepage и работу "fix_cp" в следующей версии сделаю зависимым от глобальной опции. И она должна быть отключённой по умолчанию.

Я согласен на любой вариант, лишь-бы возможность имелась.
Loopback wrote:
Не могу понять этой зацикленности на Inform.

Объяснение простое. Этот режим позволяет вывести все не пустые поля без многократного повторения однотипной информации.
Loopback wrote:
Отдельного Inform, конечно, не будет.

И не надо. Я сейчас создал режим Default FixCP и его ковыряю. Я-то вообще за то, чтобы вы Inform скриптом сделали, но, насколько понимаю, эта работа займет много времени. В коде вам намного проще будет решить этот вопрос.
Ну и все. Я пропишу в настройках включить FixCP, использовать Inform и все меня полностью устраивает.

#921:  Author: Orion9 PostPosted: Mon May 26, 2025 19:50
    —
Loopback wrote:
А вот зачем мне, как пользователю, эта информация?

Как я писал ранее, для простого пользователя вы всё максимально выжали. Теперь, чтобы добавить новые режимы просмотра, придётся изучать техническую часть вопроса и искать применения с узкой спецификой.

Не знаю, что вам не понравилось. На мой взгляд, предложенный шаблон полностью квалифицируется как режим просмотра и выполняет главную свою задачу - наглядно отображает определённый аспект медиа-файла и предоставляет пользователю быстрый доступ к технической информации о продолжительности дорожек.
Loopback wrote:
Любой автор делает всё согласно своему видению, разве нет?

До тех пор, пока пользователи не убедят его в обратном )
Loopback wrote:
Ну так о чём тут спорить-то? ... Кого устраивает - тот просто пользуется. Кого нет - или разбирается и делает сам, или просит что-то сделать.

Я лишь хотел напомнить, что режимы просмотра, различные удобства и новшества - ваша прерогатива. Простым пользователям не на кого больше расчитывать, да и непростым тоже. Плагин, конечно, гибок, даже излишне гибок, и это вводит в заблуждение - создает иллюзию, что пользователи самостоятельно будут решать свои проблемы и изобретать новые хотелки, но по факту это далеко не так. Мало кто вообще будет открывать конфиг и что-то в нём делать. Имеется в виду той его части, где расположен код.
Loopback wrote:
Впрочем, сейчас я с его подходом даже соглашусь. Стандарт есть стандарт.

А вот я не соглашусь. Стандарт есть стандарт, но опция есть опция. Второе у пользователей ценится выше, потому что даёт хоть какой-то контроль и выбор. Вот вам, к примеру, хочется, чтобы режимы просмотра были в подменю, а мне хочется, чтобы они были в главном меню. Ну так о чём тут спорить: о стандартах, о предпочтениях? Сделайте опцию, и все будут счастливы. Кстати, это был не намёк, лишь пример )
AkulaBig wrote:
У кого-то это скелеты в шкафу, как у Гислера из-за того, что в свое время выбрал не очень удачный инструмент, который не прошел испытание временем.

Не знаю насколько это имеет отношение к делу, но может быть в этом что-то и есть. Иной раз читаешь и диву даёшься. Тут, понимаете, ждёшь, надеешься, веришь... А оказывается всё давно решили, в целях моей же безопасности )
AkulaBig wrote:
А вообще зарубежные програмеры просто не придают значение разной кодировке. У них-то всегда все хорошо.

Ну, по крайней мере, Loopback сделал всё, что мог. Возможно, автор MediaInfo просто недооценил масштаба проблемы и подумал, что это мелкая, личная хотелка. Хотя такие файлы встречаются довольно часто и время от времени приходится иметь с ними дело.

#922:  Author: AkulaBig PostPosted: Mon May 26, 2025 22:50
    —
Loopback
Сегодня нашел прикладное применение режима просмотра листер-плагина. Режим Raw info помог определиться с проблемой. Удобно, когда выводятся все поля, даже пустые.
А проблема вот какая.
В настройках контекстной части TCMediaInfo.sample.xml есть такой код:
Code:
      <!-- <source name="AudioFormatSettings" field="Format_Settings" context="Audio"/> -->
      <source name="AudioFormatSettingsMode" field="Format_Settings_Mode" context="Audio"/>
      <source name="AudioFormatSettingsModeExt" field="Format_Settings_ModeExtension" context="Audio"/>

Как-бы сразу вызывает вопрос, почему закомменчен AudioFormatSettings? Оказалось потому что это поле почему-то не выводится. А AudioFormatSettingsMode и AudioFormatSettingsModeExt совершенно не заменяют данные из этого поля. В хинтах через Autorun я вижу значение этого поля. В TCMediaInfo по Ф3 я вижу значение этого поля. В пользовательской колонке я не вижу значение этого поля. Конечно колонку я прописал. То-есть вот такая запись:
Code:
      <source name="AudioFormatSettings" field="Format_Settings"/>
      <column name="Audio Format">AudioFormat</column>

Посмотрите, если не трудно, что за проблема. В этом поле данные могут (или всегда) быть записаны через "/". Например: Joint stereo / MS Stereo.

#923:  Author: Loopback PostPosted: Mon May 26, 2025 23:43
    —
Orion9 wrote:
Ну, по крайней мере, Loopback сделал всё, что мог.

Мало что тут можно сделать. Да еще и фикс, оказывается, другое ломает, нельзя его было делать по умолчанию. Всё равно правильнее один раз исправить некорректные теги в своей библиотеке и забыть об этой проблеме. А кракозябры - как раз сигнал, что файл нуждается в исправлении.

AkulaBig wrote:
Режим Raw info помог определиться с проблемой.

Да, он в основном для отладки и сделан.

AkulaBig wrote:
Как-бы сразу вызывает вопрос, почему закомменчен AudioFormatSettings? Оказалось потому что это поле почему-то не выводится.

Точно не поэтому. Видимо, просто Format_Settings_Mode лучше подошел.

AkulaBig wrote:
То-есть вот такая запись:

Тут две ошибки:
В настройках источника контекст "Audio" не указан.
Колонка относится к другому полю.

Должно быть:
Code:

<source name="AudioFormatSettings" field="Format_Settings" context="Audio"/>

<column name="Audio Format Settings">AudioFormatSettings</column>

#924:  Author: AkulaBig PostPosted: Tue May 27, 2025 00:01
    —
Loopback wrote:
Должно быть:

А, это просто меня подглючило к вечеру. Вот так было записано.
Code:
      <source name="AudioFormatSettings" field="Format_Settings"/>

      <source name="AudioFormat" field="Format" context="Audio"/>
      <source name="AudioFormatVersion" field="Format_Version" context="Audio"/>
      <source name="AudioFormatProfile" field="Format_Profile" context="Audio"/>
      <source name="AudioFormatSettings" field="Format_Settings" context="Audio"/>
      <!-- <source name="AudioFormatSettingsMode" field="Format_Settings_Mode" context="Audio"/> -->
      <!-- <source name="AudioFormatSettingsModeExt" field="Format_Settings_ModeExtension" context="Audio"/> -->

А название колонки не то скопировал.
Это из серии мастер только посмотрел на компьютер и он заработал Embarassed

#925:  Author: Orion9 PostPosted: Tue May 27, 2025 20:23
    —
Loopback wrote:
Всё равно правильнее один раз исправить некорректные теги в своей библиотеке и забыть об этой проблеме. А кракозябры - как раз сигнал, что файл нуждается в исправлении.

Полностью согласен. Правда есть одно "но", о котором я тоже не сразу подумал. Иногда файлы нельзя пересохранить с исправленными тегами, если, например, они стоят на торрент-раздаче. Т.ч. такая функция, как FixCodePage всё-таки нужна, если нужен только просмотр.

#926:  Author: AkulaBig PostPosted: Tue May 27, 2025 21:58
    —
Интересно, есть-ли какой-нибудь способ узнать все реальные расширения, поддерживаемые MediaInfo? Поднял я посты, где мы обсуждали в каких файлах хранится описание поддерживаемых расширений. И там перечислены не все, которые поддерживаются в реале. Например 669 нигде не описано. IT, XM. Понятно, что это трековые форматы. Но они у меня есть в наличии. Обнаружил я это через хинты, которые сделаны у меня через Autorun.
Чего хочется в идеале я боюсь написать. А ладно, трясясь от страха напишу, хотя это и так понятно. Можно-ли сделать чтобы TCMediaIndo не зависел от прописываемых расширений? Идеальный вариант был-бы.

#927:  Author: Loopback PostPosted: Tue May 27, 2025 23:42
    —
AkulaBig wrote:
Можно-ли сделать чтобы TCMediaIndo не зависел от прописываемых расширений?

Если бы это было можно, то было бы сделано изначально. Более того, в библиотеке даже предусмотрен метод для получения этих данных, вот только самих данных в бинарнике нет - опять же в целях экономии размера библиотеки... Так что увы.

PS: но 669 действительно нет в базе.

#928:  Author: AkulaBig PostPosted: Wed May 28, 2025 00:14
    —
Loopback wrote:
метод для получения этих данных

Конечно я там смотрел. Мы с вами обсуждали вопрос трековых форматов и как-раз тогда я утверждал, что про них нет инфы. А вот поди ж ты, есть для некоторых.
Loopback wrote:
вот только самих данных в бинарнике нет - опять же в целях экономии размера библиотеки...

Значит зря я трясся от страха. Жаль конечно. Интересно. Через Autorun работает-же без указания расширений.
Loopback wrote:
PS: но 669 действительно нет в базе.

Да. Вот нашел три расширения о которых MI показывает информацию. О других трековых расширений не показывает. Ну или ее нет в них.

#929:  Author: Loopback PostPosted: Wed May 28, 2025 01:06
    —
AkulaBig wrote:
Через Autorun работает-же без указания расширений.

Здесь же wdx-плагин, без ограничений нельзя, иначе каждый файл будет открываться через MediaInfo.

#930:  Author: AkulaBig PostPosted: Wed May 28, 2025 05:39
    —
Loopback wrote:
Здесь же wdx-плагин, без ограничений нельзя

Наверняка не так много таких расширений. Идеала все равно не будет.

#931:  Author: Orion9 PostPosted: Wed May 28, 2025 13:38
    —
AkulaBig
А разве в файле форматов не перечислены все (все ли?) поддерживаемые расширения в седьмой колонке? Как я понял, если седьмая колонка пустая, значит она соответствует первой колонке. В четвёртой колонке, судя по всему, указан тип формата (T - text, A - audio, V - видео, I - image, M - multiple?, C - compressed). Поправьте меня кто-нибудь, если не прав.
Loopback wrote:
вот только самих данных в бинарнике нет - опять же в целях экономии размера библиотеки...

Если файл имеет неправильное расширение, то MediaInfo сообщяет об этом в поле FileExtension_Invalid. Например, если переименовать файл .ogg в .tmp и открыть его в GUI библиотеки или подсказке Autorun, то появляется:
Code:
Формат                                   : Ogg
...
FileExtension_Invalid                    : oga ogg ogm ogv ogx opus spx

А если неправильное расширение у .mkv файла:
Code:
Формат                                   : Matroska
...
FileExtension_Invalid                    : mkv mk3d mka mks

Выходит, эта информация куда-то вшита в бинарник, иначе откуда она берётся?

#932:  Author: AkulaBig PostPosted: Wed May 28, 2025 16:12
    —
Loopback
Можно вас попросить в двух словах объяснить, для чего это нужно? Я понял, что должен быть файл Codecs.cfg в которых в секциях перечислены названия кодеков. Далее не понял.
Code:
      <separator/>
      <!-- Almost demo purpose, retrieve custom values from lists -->
      <column name="Video codec custom" type="list" list="VideoCodecs">VideoCodecID</column>
      <column name="Audio codec custom" type="script">Output:=GetListValue('AudioCodecs', Format('%4.4d', AudioCodecID), AudioCodecID);</column>
   <lists>
      <list name="VideoCodecs" type="ini" file="Codecs.cfg" section="VIDEO"/>
      <list name="AudioCodecs" type="ini" file="Codecs.cfg" section="AUDIO"/>
      <list name="MainList">
         <line name="VBR">Variable</line>
         <line name="CBR">Constant</line>
      </list>
   </lists>

Еще один момент. Я вам ранее жаловался, что при отсутствии файла TCMediaInfo.xml ТС падает. А у вас не падает. У меня файлы MediaInfo не в папке плагина лежат и к ним путь я прописываю. Похоже в этом дело. Проверил. Так и есть.

Добавлено спустя 1 час 29 минут:

Orion9 wrote:
все ли?

Ну сами видите, что не все перечислены. Я пример привел расширений, для которых в хинтах выводится куча инфы.

#933:  Author: Orion9 PostPosted: Wed May 28, 2025 18:48
    —
AkulaBig
То есть вы хотите, чтобы Loopback сделал возможность отключения секции <Formats> ? Сейчас такой опции нет, как я понимаю. Но если её сделать, wdx будет очень медленно работать, хотя хозяин - барин )

#934:  Author: AkulaBig PostPosted: Wed May 28, 2025 19:35
    —
Orion9 wrote:
wdx будет очень медленно работать

Чтобы в этом убедиться надо это потестить. Хинты-же работают быстро, почему wdx будет работать медленно?

#935:  Author: Loopback PostPosted: Wed May 28, 2025 23:16
    —
Orion9 wrote:
M - multiple?

M - Menu.

Orion9 wrote:
Выходит, эта информация куда-то вшита в бинарник, иначе откуда она берётся?

Да, ошибся, эти данные всё же присутствуют в бинарнике, а в исходниках находятся в файле MediaInfo_Config_Automatic.cpp. Примерно в том же виде, как formats.csv. Но нам это ничем не поможет, поскольку в dll для их получения никаких способов нет.

AkulaBig wrote:
Можно вас попросить в двух словах объяснить, для чего это нужно? Я понял, что должен быть файл Codecs.cfg в которых в секциях перечислены названия кодеков. Далее не понял.

Старая тема. Кому-то не нравилось, как называются кодеки в MediaInfo, зато нравились имена из Codecs.cfg, который из другого плагина (Media, кажется). Вот и было сделано.

В принципе механизм универсальный, просто позволяет заменять одни строки на другие с помощью GetListValue.

На самом деле при релизе эти строки надо было бы выкинуть вообще. В принципе еще не поздно.

AkulaBig wrote:
У меня файлы MediaInfo не в папке плагина лежат и к ним путь я прописываю.

Попробовал убрать библиотеки MediaInfo и конфиги из каталога плагина, не повторяется.

AkulaBig wrote:
почему wdx будет работать медленно

Один файл по запросу или сотни - разница есть, тем более что это будет происходить на каждом файле. По сети вообще стоять всё будет.

#936:  Author: AkulaBig PostPosted: Wed May 28, 2025 23:40
    —
Loopback wrote:
На самом деле при релизе эти строки надо было бы выкинуть вообще. В принципе еще не поздно.

Я сам Smile Так-то да, сомнительная опция для всеобщего пользования.
Loopback wrote:
Попробовал убрать библиотеки MediaInfo и конфиги из каталога плагина, не повторяется.

А пользовательские колонки-то, где MI используется, запускаете? Я про это не писал, так как вроде само собой разумеющееся.
Loopback wrote:
По сети вообще стоять всё будет.

Ну и сделать это опционально. Зачем мне терять инфу из-за того, что кто-то по сети будет пользоваться вашим плагином? Пользовательские колонки сами по себе напрямую зависят от их количества и количества файлов. Не думаю, что поиск сотни, двух расширений займет какое-то время.

#937:  Author: Orion9 PostPosted: Wed May 28, 2025 23:52
    —
AkulaBig wrote:
Хинты-же работают быстро, почему wdx будет работать медленно?

Имелось в виду, что пользовательские колонки будут медленно работать, так как в таком случае все файлы на панели будут открываться и обрабатываться плагином. Поиск тоже будет медленнее работать, но при поиске можно другие критерии задать, чтобы его ускорить. А также могут быть проблемы с базой, если она включена: в базу будет попадать всё, в том числе и то, что хранить в ней совершенно не нужно.

Мое мнение. Опция нужна Mr. Green

Я серьезно. Если кто-то хочет, пусть ей пользуется, осознавая самостоятельно все риски и недостатки такого использования. Но ведь есть и свои плюсы.

Loopback wrote:
M - Menu.

Oh boy...)

#938:  Author: AkulaBig PostPosted: Thu May 29, 2025 04:56
    —
Orion9 wrote:
в таком случае все файлы на панели будут открываться и обрабатываться плагином

Это понятно. Но мало у кого аудио хранится среди экзешников и архивов. То-есть практически всегда я включаю колонки в правильных директориях.
Orion9 wrote:
А также могут быть проблемы с базой, если она включена

Согласен, но она у меня отключена.
Orion9 wrote:
Мое мнение. Опция нужна

Мне кажется весьма разумная идея.

#939:  Author: Loopback PostPosted: Thu May 29, 2025 12:49
    —
Orion9 wrote:
Мое мнение. Опция нужна

AkulaBig wrote:
Мне кажется весьма разумная идея.

Мне кажется, достаточно спорная идея. Попробовал отключить контроль расширений, как и ожидалось при скролле изрядно подлагивает. По сети тихий ужас. Если и использовать в таком сценарии, то только в отдельном наборе колонок, не для постоянного использования.

#940:  Author: Orion9 PostPosted: Thu May 29, 2025 12:57
    —
Loopback
Если будете делать опцию, то как вариант реализации могу предложить сделать переменную окружения, из которой можно будет управлять поведением на лету, меняя ее значение через тот же Autorun. Простой пользователь точно накосячить так ничего не сможет, потому что переменную ещё нужно изменить, а для этого код прописывать надо, или как-то по-другому ее менять. Но в любом из этих случаев нужно понимать, что делаешь и зачем.

#941:  Author: AkulaBig PostPosted: Thu May 29, 2025 13:48
    —
Loopback wrote:
Попробовал отключить контроль расширений, как и ожидалось при скролле изрядно подлагивает.

А вы это проверяли в папке какого-нибудь альбома или на свалке файлов?

#942:  Author: Loopback PostPosted: Thu May 29, 2025 22:30
    —
AkulaBig wrote:
на свалке файлов

Разумеется.

#943:  Author: AkulaBig PostPosted: Thu May 29, 2025 22:37
    —
Loopback wrote:
Разумеется.

Ну это-же нестандартная ситуация. Все-таки в основном файлы размещены по тематике.
Вопрос возник.
Code:
      <column name="All audio as string" type="script">
      <![CDATA[
         Output:='';
         if (A_Format <> '') then Output:=Output+GetLang('A_Fmt')+': '+A_Format+', ';
         if (A_FormatSettings <> '') then Output:=Output+GetLang('Format_Settings')+': '+A_FormatSettings+', ';
      ]]>


Как видите, GetLang('A_Fmt') не переводит из TCMediaInfo.lng. Из MediaInfo.lng все отлично. Может какую-нибудь опцию включить надо?

#944:  Author: Loopback PostPosted: Thu May 29, 2025 23:26
    —
AkulaBig
В коде вижу, что для wdx загрузка TCMediaInfo.lng закомментирована. Видимо был какой-то резон так сделать, но какой именно не помню. Либо что-то связано с перекрытием строк с одинаковым идентификатором, либо просто решил, что он там не нужен и отключил в целях оптимизации.

#945:  Author: AkulaBig PostPosted: Thu May 29, 2025 23:41
    —
Понятно. А в справке написано, что читает оба языковых файла. Я просто хотел сделать сокращенные наименования для режима "Аудио одной строкой". Ладно, оставлю полные.

#946:  Author: Loopback PostPosted: Thu May 29, 2025 23:43
    —
Для wlx так и есть. Посмотрим, если там никаких подводных камней нет, можно будет и для wdx включить обратно.

#947:  Author: Orion9 PostPosted: Fri May 30, 2025 00:03
    —
Loopback
От идеи с переменной окружения вижу только плюсы. Во-первых, не нужно будет делать никаких опций в файле конфигурации. Во-вторых, фильтрацией можно будет легко и красиво управлять нажатием кнопки или выполнением команды. Допустим, переменная будет называться TC_MEDIAINFO_FORMATS и по умолчанию она будет включена. Тогда пользователю можно и даже нужно будет управлять ее состоянием через Autorun:
Code:
If TC_MEDIAINFO_FORMATS = 1 Then
   SetEnv TC_MEDIAINFO_FORMATS 0
   MsgBox("Фильтрация форматов отключена")
Else
   SetEnv TC_MEDIAINFO_FORMATS 1
   MsgBox("Фильтрация форматов включена")   
EndIf

Или искать другие пути воздействия на неё.

#948:  Author: Loopback PostPosted: Fri May 30, 2025 01:08
    —
Значит переменную придется дёргать на каждом файле. Нет, такого здесь я не хочу, равно как горячих клавиш, нажатых Ctrl и чего-то подобного. Я вообще не уверен, что стоит делать такую откровенно вредную опцию, чтобы под нее еще какую-то специальную обработку через переменные окружения вводить...

#949:  Author: AkulaBig PostPosted: Fri May 30, 2025 04:11
    —
Loopback wrote:
Посмотрим, если там никаких подводных камней нет, можно будет и для wdx включить обратно.

Посмотрите, если не трудно. Хотелось-бы возможность и из TCMediaInfo перевод брать. В соответствии со справкой.
Orion9 wrote:
От идеи с переменной окружения вижу только плюсы.

Мне уже при смене языка пришлось решать вопрос бесконечного подергивания меню, которое не позволяло его открыть из-за постоянной проверки переменной. Опция самое то.

#950:  Author: Orion9 PostPosted: Fri May 30, 2025 13:51
    —
Loopback wrote:
Значит переменную придется дёргать на каждом файле.

И что произойдёт, камень перегреется? ) Можно подумать, это мы дергать будем. Пусть об этом позаботится наш многоядерный друг и его кэш второго уровня.

В скорости, конечно, будет небольшое падение, но это вопрос миллисекунд, что, кстати, проверить можно. Вот мне и загорелось проверить и заодно и потестировать вашу новую функцию FileFind в Autorun:
 Hidden text

 Hidden text

Кнопка ищет все ".exe" в каталоге Program Files, размер которых от 1Мб до 2Мб, и выводит сообщение в MsgBox. CTRL - включает проверку переменной окружения %COMMANDER_EXE%, SHIFT - меняет каталог на Program Files (x86).

P.S. Важное уточнение. Делал, не для того, чтобы что-то доказать, а потому что стало интересно и пока появилась такая возможность.

#951:  Author: AkulaBig PostPosted: Sat May 31, 2025 18:01
    —
Наделал составных полей. Но вот V_AllDisplAspRt не удается создать, так как поля можно прописывать только из источника. А название колонки V_Orient можно прописать?
Code:
      <column name="V_DisplAspRtStr">V_DisplayAspectRatioStr</column>
      <column name="V_Orient" type="script">
      <![CDATA[
         Output:='';
         if V_DisplayAspectRatio <> '' then
         begin
            case V_DisplayAspectRatio of
               '0'..'0.999': Output:=GetLang('Portrait');
               '1.000':          Output:=GetLang('Square');
               else          Output:=GetLang('Landscape');
            end;
         end;
      ]]>
      </column>
      <column name="V_AllDisplAspRt" type="script">
      <![CDATA[
         Output:='';
         if (V_DisplayAspectRatioStr <> '') then Output:=Output+V_DisplayAspectRatioStr;
         if (V_Orient <> '') then Output:=Output+'/'+V_Orient;
      ]]>
      </column>

#952:  Author: Loopback PostPosted: Mon Jun 02, 2025 10:43
    —
Нет, использование колонки в качестве источника не предусмотрено.

Видимо, будет проще всего добавить вспомогательную функцию в пользовательскую библиотеку (или создать свою библиотеку), тогда её можно будет использовать в разных колонках без повторения кода. Примерно так:

Code:

      <column name="V_DisplAspRtStr">V_DisplayAspectRatioStr</column>
      <column name="V_Orient" type="script">
      <![CDATA[
        uses 'UserFunc';
        Output := GetOrientation(V_DisplayAspectRatio);
      ]]>
      </column>
      <column name="V_AllDisplAspRt" type="script">
      <![CDATA[
        uses 'UserFunc';
         Output:='';
         if (V_DisplayAspectRatioStr <> '') then Output:=Output+V_DisplayAspectRatioStr;
         if (V_Orient <> '') then Output:=Output+'/'+GetOrientation(V_DisplayAspectRatio);
      ]]>
      </column>

    ...

    <funclib name="UserFunc">
   <![CDATA[
        function GetOrientation(nDisplayAspectRatio);
        begin
            if nDisplayAspectRatio<> '' then
            begin
                case nDisplayAspectRatio of
                   '0'..'0.999': Output:=GetLang('Portrait');
                   '1.000':          Output:=GetLang('Square');
                   else          Output:=GetLang('Landscape');
                end;
             end
             else
              Output:='';
        end;
     
   ]]>
    </funclib>   

#953:  Author: AkulaBig PostPosted: Mon Jun 02, 2025 10:54
    —
Спасибо за подсказку. Попробую так сделать и позже выложу переделанный TCMediaInfo.xml для контекстной части.

#954:  Author: AkulaBig PostPosted: Mon Jun 02, 2025 14:36
    —
Уф, голову сломал, но заработало. Вместо Output в функции надо писать Result. Ну а остальное по мелочи, быстро догадался Smile

Добавлено спустя 2 часа 25 минут:

Переделал полностью контекстную часть файла настроек TCMediaInfo.xml. Главной целью было сделать отображение пользовательских колонок в соответствии с форматом вывода MediaInfo. Поэтому порядок колонок, их название полностью переделаны. Конечно большие исправлении и в составе колонок. Так как количество пользовательских колонок Гислером ограничено до 32 и длина данных тоже ограничена пришлось и это учесть при переделке. Поэтому все названия полей у меня новые. И много составных полей. Так что привожу все измененные файлы.
 TCMediaInfo.xml

В языковый файл я просто добавил свои данные.
 TCMediaInfo.lng

 CustomFields.ini

Обновил файлы 08.06.2025. Исправил ошибки. Добавил новые поля. В переводе из-за выявленной в ТС ошибки с локализацией файлов, перевод закомментирован. Если не будете менять данные, можно использовать перевод. Глючит только при редактировании. В информации по картинкам добавлены поля из других плагинов.


Last edited by AkulaBig on Sun Jun 08, 2025 16:21; edited 7 times in total

#955:  Author: AkulaBig PostPosted: Mon Jun 02, 2025 17:47
    —
Думал на этом закончились мои разборки с TCMediaInfo, если не считать ожидания изменений в листерной части. Но теперь понял, что Image тоже надо делать через TCMediaInfo. Конечно придется дополнять инфу из других плагинов, как у меня в хинтах сделано. Но за основу надо брать MI.

#956:  Author: AkulaBig PostPosted: Tue Jun 03, 2025 18:24
    —
Loopback
Вот так можно было-бы записывать: <separator>Image<separator/>. Сложно такое сделать?

#957:  Author: Loopback PostPosted: Tue Jun 03, 2025 22:50
    —
AkulaBig wrote:
Вот так можно было-бы записывать: <separator>Image<separator/>. Сложно такое сделать?

Если имеется в виду использовать картинку в качестве разделителя - да, сложно.

#958:  Author: AkulaBig PostPosted: Tue Jun 03, 2025 23:38
    —
Loopback wrote:
Если имеется в виду использовать картинку в качестве разделителя - да, сложно.

Ни в коем случае. Вставил просто слово, над которым сейчас работаю. Я имею ввиду текст вставить. Сейчас у нас при выборе полей из TCMediaInfo появляется список, разделенный -------- Это определяет <separator/> Я конечно в первом поле хотя-бы обозначаю Аудиоформат, Видеоформат, Общий формат. Но хотелось-бы оставить просто Формат. А секции разделять -----Общее---- -----Аудио---- ----Видео---- -------Картинка----- Так как названия многих полей одинаковы, без такой конкретики есть некоторые проблемы с ориентацией, из какого раздела поле вставить в колонку.

#959:  Author: Loopback PostPosted: Wed Jun 04, 2025 12:12
    —
AkulaBig
Теперь ясно. Технически это несложно, но не сработает.

Сейчас тотал формирует разделители, когда плагин возвращает поле с именем "-". Хотя это, кажется, не совсем документированная фича, во всяком случае в справке по плагинам про неё ни слова.

Так что разделитель легко сымитировать обычным объявлением колонки, и оно будет работать:

Code:
<column name="-"></column>


При добавлении любых других символов специальное значение имени теряется и получается обычное поле:

Code:
<column name="-Image"></column>

#960:  Author: Orion9 PostPosted: Wed Jun 04, 2025 17:35
    —
AkulaBig
Скачал сборку, посмотреть, что получилось.

Не уверен, что мне понравились названия полей формата G_*, V_* и A_*. Не могу сказать, что они хорошо смотрятся. Почему был сделан такой выбор и почему нельзя было оставить длинные названия полей? Например, название "Display aspect ratio" вместо V_DisplAspRtStr. По-моему, первый вариант смотрится лучше второго.

Есть составные поля, подводящие некий итог - V_AllDispl, A_AllBitRt или A_AllCh - но нет привычных полей All video as string и All audio as string, где раньше подводился итог по всему видео и аудио. При этом в ваших полях зачем-то используется слэш - 4:3/Ландшафтная/0.000; Constant/128 kb/s, когда, на мой взгляд, лучше было оставить запятую, как это было изначально сделано, т.е. AVC, 2.6 Мбит/с, 1440x1080, 50.000 к/с; CBR@127 kbps, 44100 Гц, 2 канала.

И кстати, добавьте в сборку WDX Guide, пользователям он тоже будет нужен, даже тем, кто им не пользуется.

#961:  Author: AkulaBig PostPosted: Thu Jun 05, 2025 16:41
    —
Loopback wrote:
разделитель легко сымитировать обычным объявлением колонки, и оно будет работать:

Loopback wrote:
При добавлении любых других символов специальное значение имени теряется и получается обычное поле

Проверил. Так и есть. То-есть для этого оператора вы используете функционал ТС и изменить это нельзя.
Orion9 wrote:
Не уверен, что мне понравились названия полей формата G_*, V_* и A_*.

У меня вообще половина полей нет из стандартного файла настройки Smile
А между тем я все объяснил в посте. Катастрофически не хватает длины, предоставленной Гислером. Поэтому пришлось сокращать названия полей. Хотя-бы удалось сохранить перевод в стиле MI. Так-то и перевод желательно сократить.
Orion9 wrote:
нет привычных полей All video as string и All audio as string

По той-же причине. Катастрофически не хватает 32 полей. Из-за этого и составные поля появились. Не везде они красиво смотрятся. Где инфа короткая, а названия полей длинные, не очень. Но по другому никак.
Orion9 wrote:
При этом в ваших полях зачем-то используется слэш - 4:3/

В действительности это самый визуально заметный разделитель. Попробую запятые. Это не принципиальный вопрос. Главное чтобы хорошо было видно, что инфа разделена. Поймут-ли это с запятыми, надо смотреть.
Orion9 wrote:
И кстати, добавьте в сборку WDX Guide, пользователям он тоже будет нужен, даже тем, кто им не пользуется.

Да, да. Как и редактор конфигурации. Вещь отличная, но никто им пользоваться не будет. А там и до пяти браузеров совсем близко Laughing Я позиционирую свою сборку как сборка для новичков и никто не будет пользоваться этими прожками. Хотя сами по себе они очень круты.
Добавил инфу по картинкам. Пользовательские поля по картинкам пока не доделаны, так как там еще из других плагинов инфа нужна. По картинкам MI не всю инфу выдает. В принципе доп информацию в хинтах видно.

#962:  Author: AkulaBig PostPosted: Fri Jun 06, 2025 07:23
    —
Loopback
Понятно, что названия колонок в файле настройки все разные. Сама логика заставляет так сделать. Но в языковом файле TCMediaImage полей с одинаковым названиями масса. В языковом файле самой MI названия одинаковы и только сгруппированы по разделам.
Создаем пользовательские колонки с одинаковым переводом. Например:
G_CodecID=Идентификатор кодека
V_CodecID=Идентификатор кодека
Добавляем в этот набор любое поле из любого плагина. Либо просто удаляем строку. Главное выполнить какое-нибудь действие. Теперь комментим перевод в языковом файле. И что мы видим?
Вместо V_CodecID написано G_CodecID. То-есть первый по порядку одинаковый перевод.
Если настроить колонки без перевода, а потом перевод раскомментить, все нормально работает.
Долго я над этим глюком бился. Думал ТС чудит из-за длинны данных. Но нет, локализовал ошибку.

#963:  Author: Loopback PostPosted: Fri Jun 06, 2025 22:06
    —
AkulaBig
Что-то до конца так и не понял что к чему. Полагаю, речь идет о пользовательских колонках в тотале с использованием двух разных полей плагина, имеющих одинаковый перевод. Вот только отображением и обработкой локализованных названий wdx-полей занимается исключительно сам тотал. Возможно, проблема возникает, когда он преобразовывает локализованное имя обратно в фактическое имя поля.

#964:  Author: AkulaBig PostPosted: Sat Jun 07, 2025 05:25
    —
Да, вы все поняли. Ответ ясен. Буду Гислеру писать.

#965:  Author: AkulaBig PostPosted: Mon Jun 09, 2025 14:21
    —
Переписка с Гислером всегда радует. Кому хочется поржать, можете почитать https://www.ghisler.ch/board/viewtopic.php?t=85974&sid=c842f79ca6c4ef03bc0e1b7cb42f7f52

#966:  Author: Loopback PostPosted: Mon Jun 09, 2025 21:37
    —
Я не нашел, где смеяться. Это же очевидно, что невозможно сделать поддержку такого сценария для колонок, редактируемых в виде простого текста. Переведённые строки должны хоть чем-то отличаться, чтобы их можно было преобразовать обратно в правильные английские имена полей. Я бы не назвал это багом, скорее "by design". Да и сценарий крайне редкий и специфичный.

#967:  Author: AkulaBig PostPosted: Mon Jun 09, 2025 21:59
    —
Loopback wrote:
Переведённые строки должны хоть чем-то отличаться, чтобы их можно было преобразовать обратно в правильные английские имена полей.

А зачем их преобразовывать? Работать с английскими названиями полей, а перевод просто подставлять. Объясните тогда какое преобразование происходит у плагинов без перевода? Вот именно из-за этого какой-то странный дизайн. Если-бы перевод был обязателен, тогда нет вопросов. При этом никакой ошибки не выдается. Фича нигде не описана. Просто автоматом подставляется левое значение и все. Поэтому и смешно.

#968:  Author: Loopback PostPosted: Mon Jun 09, 2025 23:35
    —
AkulaBig wrote:
а перевод просто подставлять

Подставлять куда? Very Happy

AkulaBig wrote:
автоматом подставляется левое значение

Не левое, а первое попавшееся. Ну вот представим перевод:

Filed1=Поле
Filed2=Поле

Допустим, добавляем сначала Filed2, потом Filed1. Но в переведенном виде они будут одинаковы. Вот тотал начинает парсить строку, которую сваял пользователь:

[=plug.Поле] бла бла [=plug.Поле]

Как он должен понять, что "Поле" и "Поле" - исходно были разные поля? Если перебор при поиске соответствия идёт от начала списка, то он, естественно, в обоих случаях подставит Filed1. Вроде это вполне очевидно.

AkulaBig wrote:
Если-бы перевод был обязателен

Перевод не обязателен, можно просто отказаться вообще от локализации полей (удалить их из локализации). Я серьёзно: ведь по сути кроме как в редакторе они нигде больше не используются, и сделаны исключительно для удобства редактирующего. А если согласно вашему предложению использовать в тексте английские поля, то теряется сам смысл локализации, да и вообще глупо получается - в списке выбирается локализованное имя, а в редактор вставляется английское.

Впрочем, дело хозяйское, плагина это всё не касается, пусть с этим разбирается Гислер. Хотя более чем уверен, что тема уйдет в раздел "никогда не будет реализовано", ибо вряд ли он захочет ломать работающий механизм.

#969:  Author: AkulaBig PostPosted: Tue Jun 10, 2025 06:00
    —
Loopback wrote:
вряд ли он захочет ломать работающий механизм

Я понял, что вы хотите мне объяснить. Понятно, что при данном алгоритме парсинг происходит просто по названию поля. И то, о чем пишу я, не реализуемо. Но я имею ввиду, что надо именно сам алгоритм менять.

#970:  Author: Orion9 PostPosted: Tue Jun 10, 2025 18:12
    —
AkulaBig wrote:
Катастрофически не хватает 32 полей.

Почему вы попутно не попросили Гислера добавить побольше полей?

AkulaBig wrote:
Работать с английскими названиями полей, а перевод просто подставлять.

С этим соглашусь. Обратное выглядит как недоработка, которая, кстати, мне тоже не нравится. И которая очень похожа на проблемы с меню "Запуск" и многоязычностью.

Loopback wrote:
А если согласно вашему предложению использовать в тексте английские поля, то теряется сам смысл локализации

Может смысл в локализации и есть, но что она не до конца продумана - это факт. Ну на кой мне при выборе полей из плагинов видить вперемешку русские и английские поля из разных плагинов? Смахивает на проблему с меню "Запуск", как я уже написал выше. Стоит только переключиться на английский, как всё меню сразу перемешается - часть на английском, часть на русском. Шляпа.
Loopback wrote:
Хотя более чем уверен, что тема уйдет в раздел "никогда не будет реализовано", ибо вряд ли он захочет ломать работающий механизм.

Маэстро на старости лет ломать точно ничего не будет, и это факт. Нужно с ним смириться и юзать Autorun, где возможно. Это моё кредо и стиль жизни )

#971:  Author: AkulaBig PostPosted: Tue Jun 10, 2025 19:08
    —
Orion9 wrote:
Почему вы попутно не попросили Гислера добавить побольше полей?

Дак просили уже. Ответ-то я читал.
Orion9 wrote:
Может смысл в локализации и есть, но что она не до конца продумана - это факт.

Основной смысл локализации, что в название поля автоматом ставится имя на русском. Но посмотрим данный случай. Я все-же сейчас локализацию привел в соответствие с требованиями Гислера. И получился вот такой перевод:
было - V_CodecID=Идентификатор кодека
стало - V_CodecID=КодекIDВидео
Кому нужны такие названия полей? Мне не нужны. Думаю никому не нужны. А значит локализация не нужна. Названия полей приходится писать вручную.

#972:  Author: AkulaBig PostPosted: Tue Jun 24, 2025 05:38
    —
Loopback
Я конечно понимаю, что ваши силы сейчас брошены на Autorun. Но не могли-бы доделать TCMediaInfo? Ведь навряд-ли его в дальнейшем надо будет сильно переделывать. Если только какие-то мелкие ошибки возникнут.
Сейчас существенным является только ключ FixCP. Чтобы можно было вывод Inform делать без крякозябр. Без этого плагин получается недоделанным. А распознавание расширений. И что там еще, я уже подзабыл Smile не так существенно. У меня сейчас wdx-часть меня полностью устраивает. xml полностью рабочий. А работа wlx не устраивает. Хочется выставить показ Inform, а не могу из-за крякозябр.

#973:  Author: Loopback PostPosted: Tue Jun 24, 2025 13:28
    —
AkulaBig
Да он в какой-то степени сделан, могу дать предварительную версию, вот .

Добавлена опция FixTagEncoding (в главном узле опций), по умолчанию и при отсутствии будет = 0 (всё выключено). Может содержать сумму значений:
1 — включение модуля постпроцессинга «fix_cp» для wdx;
2 — включение исправления в функциях Get и LineAddField для wlx;
4 — включение исправления для режима «Стандартный Inform» для wlx.

Так что если нужно включить "исправления" (буду их в кавычках указывать, т.к. это такое себе исправление) везде, то нужно использовать <FixTagEncoding>7</FixTagEncoding>.

Добавлена опция IgnoreExtensions (будет только в справке), по умолчанию false, если true - проверка по списку расширений будет отключена.

#974:  Author: AkulaBig PostPosted: Tue Jun 24, 2025 18:53
    —
Loopback
<FixTagEncoding>7</FixTagEncoding> работает отлично. Прошу уточнить. Как это работает для wdx? Удалил в колонках process="fix_cp", появились крякозябры.
IgnoreExtensions тоже работает прекрасно. И тоже вопрос. Я правильно понимаю, что при <IgnoreExtensions>True</IgnoreExtensions> список расширений комментить не надо? Он не будет влиять на работу?
А в общем огромное спасибо за проделанную работу. Теперь я спокоен. Полностью законченный плагин.
Конечно хотелось-бы релиза. Но это уже ваше дело. Для меня главное, что все работает как надо.

#975:  Author: Loopback PostPosted: Tue Jun 24, 2025 23:27
    —
AkulaBig wrote:
Как это работает для wdx?

В смысле - как? Примерно так же, как для wlx, только здесь если есть fix_cp - к тексту источника применяется исправление.

AkulaBig wrote:
Я правильно понимаю, что при <IgnoreExtensions>True</IgnoreExtensions> список расширений комментить не надо?

Верно.

AkulaBig wrote:
Конечно хотелось-бы релиза

Да может и доделаю, в принципе хватает для релиза. Два бага - со слешем в именах полей и включённым по умолчанию "исправлением" вполне значимы. Только нужно пройтись по ветке на предмет исправлений в конфиге, еще что-то там с ft_numeric_floating было, и перевод добавить для новых полей со слешем.

#976:  Author: AkulaBig PostPosted: Tue Jun 24, 2025 23:42
    —
Loopback wrote:
если есть fix_cp - к тексту источника применяется исправление

Исправил <FixTagEncoding>7</FixTagEncoding> на 6 и все понял.
Loopback wrote:
ft_numeric_floating

Мне тоже кажется, что только это и не исправлено. Но лучше прочитать. Здесь не романы многотомные написаны, как в Autorun Smile

#977:  Author: Loopback PostPosted: Wed Jun 25, 2025 13:00
    —
Orion9 wrote:
Если с годом ее можно решить, убрав тип поля:
<column name="Recorded Date" coltype="ft_datetime">RecDate</column>

Orion9 wrote:
А с типом данных "ft_datetime" поле "Year" (не важно, как оно называется) не работает.

В общем эта проблема мне непонятна, так и не смог найти у себя проблемные файлы. У меня Recorded_Data возвращает данные только на AVI, на других файлах пусто. А на mp4, mkv дату возвращает поле Encoded_Data. Но и в том и другом случае установка coltype="ft_datetime" работает без проблем. Т.е. для набора колонок

Code:

<column name="Recorded Date" coltype="ft_datetime">RecDate</column>
<column name="Recorded Date 2">RecDate</column>      
<column name="Encoded Date" coltype="ft_datetime">EncDate</column>
<column name="Encoded Date 2">EncDate</column>   


нигде нет такого, чтобы в колонках без ft_datetime была правильная дата, а в соответствующих полях с ft_datetime её не было или она была неправильная.

Так что было бы неплохо взглянуть на примеры файлов, у которых есть проблема с ft_datetime.

#978:  Author: AkulaBig PostPosted: Wed Jun 25, 2025 15:08
    —
Loopback wrote:
В общем эта проблема мне непонятна

Забудьте про это. Там была проблема в том, что это поле заполняемое вручную в тэгах. И оно простое текстовое. То-есть пользователи писали туда что в голову взбредет. У себя я убрал на этом поле форматирование и теперь все правильно показывает.
Loopback wrote:
было бы неплохо взглянуть на примеры файлов, у которых есть проблема с ft_datetime.

Их есть у меня:

Посмотрите, в каком формате пользователи записывают в эти поля данные. Формат ft_datetime такое воспроизвести не может.

#979:  Author: Loopback PostPosted: Wed Jun 25, 2025 23:18
    —
AkulaBig wrote:
Там была проблема в том, что это поле заполняемое вручную в тэгах. И оно простое текстовое. То-есть пользователи писали туда что в голову взбредет.

А, ясно. Получается, библиотека пихает в поле Recorded_Date и корректно прописанную в контейнере дату, и дату из тега, которая может быть записана как душе угодно... не очень правильный подход, как по мне.

Тут надо подумать, видимо будет иметь смысл, если дата не преобразовывается, возвращать её тоталу в виде строки, меняя тип поля на ft_stringw. Тогда и преобразование должно работать при корректном формате, и корявые даты тоже будут выводиться как есть. Собственно, к остальным преобразуемым типам тоже применимо.

#980:  Author: AkulaBig PostPosted: Thu Jun 26, 2025 15:29
    —
Loopback wrote:
не очень правильный подход, как по мне

Да. Но этом нам не подвластно. Поэтому проглатываем и приспосабливаемся.
Loopback wrote:
меняя тип поля на ft_stringw

Ну вообще стесняюсь вам предложить все-же посмотреть выше мой xml, да и все остальное. Я там просто никакого формата не ставил. Но, наверное, вам не захочется вникать. Я там очень сильно изменил xml. Но это все рабочее.

#981:  Author: Loopback PostPosted: Thu Jun 26, 2025 22:48
    —
AkulaBig wrote:
Но этом нам не подвластно. Поэтому проглатываем и приспосабливаемся.

Ну почему же, с изменённым подходом к выводу данных проблем быть не должно. Для AVI поле будет с форматом даты, для данных из тегов просто строка. Я просто к тому, что для точной даты записи и тега произвольного формата логичнее были бы разные поля. Можно и разделить, но это пришлось бы делать разную обработку в зависимости от формата.

AkulaBig wrote:
Ну вообще стесняюсь вам предложить все-же посмотреть выше мой xml, да и все остальное. Я там просто никакого формата не ставил.

Всё во власти пользователя. Мне всё же представляется удобным иметь возможность форматировать значения по своему усмотрению. Когда данные корректно отформатированы, их удобно использовать в ИГП и для установки атрибутов.

А так я смотрел, не сильно вникая, конечно. Но из-за наименования полей конфиг слишком уж специфичен.

#982:  Author: AkulaBig PostPosted: Thu Jun 26, 2025 23:02
    —
Loopback wrote:
Но из-за наименования полей конфиг слишком уж специфичен.

Хотел сделать один в один, как в MI, но ТС не позволяет. Ну и количество строк всего 99, не позволяет сделать необходимое количество полей. Поэтому пришлось делать составные поля. Но некоторые из прям удачненько получились. Сокращенные названия полей из-за ограничения длины. Но названия столбцов удалось оставить полными. Еще и для картинок поля сделал.

#983:  Author: Loopback PostPosted: Fri Jun 27, 2025 13:38
    —
AkulaBig
Возможно, нашёл причину падения x64 без конфигурации, хотя у меня всё равно не повторяется. Если не сложно, проверьте у себя.

Версия от 27.06.2025

Также тут изменена логика вывода полей, теперь при невозможности преобразования в дату или другие числовые типы плагин возвращает их исходное представление как строку. При необходимости можно вернуть старое поведение опцией FieldEmptyOnFail.

#984:  Author: AkulaBig PostPosted: Mon Jun 30, 2025 14:17
    —
Loopback wrote:
Если не сложно, проверьте у себя.

Извиняюсь за отсутствие. Были дела.
Да, теперь все отрабатывает отлично. ТС не крашит.
А я совсем забыл про этот баг. Спасибо, что исправили.
Loopback wrote:
Также тут изменена логика вывода полей

Круто. Проверю и отпишусь.

Добавлено спустя 2 часа 11 минут:

С типом колонки почему-то ничего не получилось. Вывод только как на скрине выше. Вот так я прописал:
Code:

      <!--
      <column name="G_RecDate">G_RecDate</column>
      <column name="G_EncDate">G_EncDate</column>
      <column name="G_RelDate">G_RelDate</column>
      -->
      <column name="G_RecDate" coltype="ft_date">G_RecDate</column>
      <column name="G_EncDate" coltype="ft_date">G_EncDate</column>
      <column name="G_RelDate" coltype="ft_date">G_RelDate</column>
      <column name="G_AllDate" type="script">
      <![CDATA[
         Output:='';
         if (G_RecDate <> '' AND GetLang() = 'RUS') then Output:=Output+' записано '+G_RecDate;
         if (G_EncDate <> '' AND GetLang() = 'RUS') then Output:=Output+' кодировано '+G_EncDate;
         if (G_RelDate <> '' AND GetLang() = 'RUS') then Output:=Output+' выпущено '+G_RelDate;
         if (G_RecDate <> '' AND GetLang() = 'ENG') then Output:=Output+' recorded '+G_RecDate;
         if (G_EncDate <> '' AND GetLang() = 'ENG') then Output:=Output+' encoded '+G_EncDate;
         if (G_RelDate <> '' AND GetLang() = 'ENG') then Output:=Output+' released '+G_RelDate;
      ]]>

В комментах видно старую запись, которую я использую сейчас. А в новой записи я попробовал использовать ft_date, то-есть местную дату. Кстати, получается чтобы использовать местную дату и время надо две колонки делать? Неудобно конечно. ft_datetime удобнее, но она в UTC выдает.
Опцию <FieldEmptyOnFail>False</FieldEmptyOnFail> пробовал и с True.
Проверил не только на тестовых файлах, но и своей медиа-коллекции на 65 Гб. Нигде не показывает дату в местном формате.

#985:  Author: Loopback PostPosted: Tue Jul 01, 2025 00:05
    —
AkulaBig wrote:
Вывод только как на скрине выше.

Ээ, а какой он должен быть? Кривые значения не преобразуются в дату и выводятся как есть - строкой. Просто теперь можно ставить тип на поля, где может выводиться смешанное содержимое - и оно будет выведено в любом случае.

AkulaBig wrote:
А в новой записи я попробовал использовать ft_date, то-есть местную дату.

Это не "местная дата".

Нужно понимать, что сам по себе тип не делает дату локальной или UTC, всё определяется исходной датой. Для поля типа ft_datetime исходная дата должна быть в UTC. Поля даты в MediaInfo возвращают ее в UTC, т.е. надо использовать для них этот тип.

А для типа ft_date/ft_time исходная дата должна быть локальной. В MediaInfo такой вывод даже не встречается. Сделаны они были для обхода проблемы с неправильным часовым поясом, прописанным в файлах с некоторых видеокамер, причем UTC-дата представлена в виде local_datetime±bias. Использование ft_date/ft_time позволяет трактовать такое время как локальное. Это очень специфическая задача, использовать эти типы для чего-то еще вряд ли имеет смысл.

Полученное время тотал интерпретирует в зависимости от типа. Время из поля типа ft_datetime он сам преобразует в локальное, а из полей ft_date/ft_time - не трогает, т.к. они предполагают местное время. Если как у вас поставить ft_date для исходных полей с датой в UTC - дата в ТС всегда будет неправильной, со смещением на величину временного пояса.

#986:  Author: AkulaBig PostPosted: Tue Jul 01, 2025 04:26
    —
Loopback wrote:
Нужно понимать, что сам по себе тип не делает дату локальной или UTC, всё определяется исходной датой.

Понятно. Я думал даты типа первой и последней на скрине преобразуются в виндовый тип. Пробовал я и ft_datetime и ft_date. А других дат ни в одном файле из 65 Гб нет. Получается пользователи ВСЕГДА забивают дату неправильно.
Ладно, закроем этот вопрос.

#987:  Author: Loopback PostPosted: Tue Jul 01, 2025 14:24
    —
AkulaBig wrote:
Я думал даты типа первой и последней на скрине преобразуются в виндовый тип. Пробовал я и ft_datetime и ft_date.

Первая на скрине - это тот вид, что плагин ожидает, она как раз подходит для типа ft_datetime.

Последняя - в принципе можно было бы доработать функцию преобразования даты из текста для поддержки такого "укороченного" вида, но тут две проблемы:

- как интерпретировать эту дату - как UTC или локальную?
- при отсутствии времени придется принять какое-то время по умолчанию (например, 0:00 или 12:00).

Так-то хоть сейчас скриптом при желании можно сконструировать правильный формат (как первый на скрине) из любой даты. Но в любом случае придется определиться с решением, что подставлять вместо отсутствующих частей.

#988:  Author: AkulaBig PostPosted: Tue Jul 01, 2025 15:16
    —
Loopback wrote:
Так-то хоть сейчас скриптом при желании можно сконструировать правильный формат (как первый на скрине) из любой даты.

Я думаю кому это важно, пусть и пишет скрипт. Меня и так устраивает.
Loopback wrote:
Первая на скрине - это тот вид, что плагин ожидает, она как раз подходит для типа ft_datetime.

Я и думал, что это будет показано в формате установленной в винде даты.
Loopback wrote:
как интерпретировать эту дату - как UTC или локальную?

В формате, установленном в винде. Раз времени нет, то его и переводить не надо.
И для всех функций, раз UTC не указан, значит и не надо учитывать разницу.
То-есть я думал, что предназначение этих функций - переводить дату в формат, установленный на винде. А оказывает их предназначение - перевод строковых параметров в дату UTC.

#989:  Author: Loopback PostPosted: Wed Jul 02, 2025 00:39
    —
Выложил релиз на wincmd.ru. Полный список изменений:

Code:
* ВАЖНО: "исправление кодировки" теперь зависит от значения опции FixTagEncoding и по умолчанию отключено
* обновлён русский перевод для новых полей MediaInfo
* обновлена библиотека MediaInfo до версии 25.04
* унифицированы сообщения об ошибках для wdx/wlx
- исправлено падение версии x64 в некоторых случаях при отсутствующем файле конфигурации
+ CFG: в шаблоне "по умолчанию" добавлены пустые строки перед заголовками (управляется опцией HeaderExtraSpace)
+ добавлены опции FixTagEncoding, IgnoreExtensions, FieldEmptyOnFail
+ для колонок с типом (ft_datetime и т. д.) данные возвращаются в исходном виде при ошибке преобразования
* CFG: закомментированы Video codec custom, Audio codec custom
+ в компактный шаблон аудио добавлены поля текущего трека и общего числа треков
- в шаблонах не выводились поля вида "Track/Position"
- Ctrl+I не работала, если строка обложки была не первая
+ добавлены скриптовые функции GetOption, Floor, Ceil
+ добавлена опция TimingRounding (для функции TimingFormat)
+ CFG: добавлена колонка "Глубина цвета", "Обложка"
* CFG: убрана установка цвета подзаголовка из специальных режимов просмотра



AkulaBig wrote:
Я думаю кому это важно, пусть и пишет скрипт.

Да, думаю это правильно.

AkulaBig wrote:
Я и думал, что это будет показано в формате установленной в винде даты.

Нет, конечно, при чем тут формат винды? Это же плагин для TC, у которого есть своё форматирование даты.

AkulaBig wrote:
Раз времени нет, то его и переводить не надо.

Не всё так просто, ft_datetime подразумевает наличие времени.

#990:  Author: AkulaBig PostPosted: Wed Jul 02, 2025 04:13
    —
Loopback wrote:
Выложил релиз

Поздравляю с релизом Razz
Смотрю есть и незнакомые новые опции. Будем тестировать.
Loopback wrote:
ft_datetime подразумевает наличие времени

Но есть отдельные опции для даты и времени. Только я так и не понял, можно-ли их в одной колонке записывать.
Loopback wrote:
Это же плагин для TC, у которого есть своё форматирование даты.

Ну да. Это правильно. Просто ТС тоже ведь из Винды берет установки.

#991:  Author: AkulaBig PostPosted: Wed Jul 02, 2025 13:56
    —
Loopback
Подумал, наверное здорово, если-бы была функции Date(), Time(), конвертирующие даты и время в локальный формат. Ведь дата часто используется для сортировки.
Проверил. Да не, отлично все сортируется и по текстовому полю:

Так что даже в далеких to do считаю нет смысла думать об этом. Конечно это чисто мое мнение

#992:  Author: Loopback PostPosted: Wed Jul 02, 2025 23:31
    —
AkulaBig wrote:
Подумал, наверное здорово, если-бы была функции Date(), Time(), конвертирующие даты и время в локальный формат. Ведь дата часто используется для сортировки.
Проверил. Да не, отлично все сортируется и по текстовому полю:

Если сортировать именно по тексту, то формат MediaInfo явно более предпочтителен для лексиграфического сравнения, чем наш локальный, сомневаюсь, что получится правильная сортировка по строкам вида "2 июля 2025"...

Преобразование дат в пользовательское представление возможно, но потенциальную пользу от них вижу только для wlx.

#993:  Author: AkulaBig PostPosted: Wed Jul 02, 2025 23:50
    —
Loopback wrote:
Если сортировать именно по тексту, то формат MediaInfo явно более предпочтителен для лексиграфического сравнения

Согласен. Поэтому и решил, что не надо ничего делать для преобразования дат.
Loopback wrote:
потенциальную пользу от них вижу только для wlx

Да и то сомнительная польза.

#994:  Author: Destiny PostPosted: Thu Jul 03, 2025 15:09
    —
Loopback wrote:
Выложил релиз

Насчет файла all_props.txt. Я вот для себя делал так же автовыгрузку этих полей.
И вот, сравнив свою текущую версию с вашей, нашел отличие:
https://github.com/MediaArea/MediaInfoLib/blob/master/Source/Resource/Text/Stream/General.csv
У вас:
Code:
Movie/Country                                   : Country where the movie was produced

А по факту в файле на гитхабе:
Code:
Movie/Country;;;N YTY;;;Deprecated, use Country;;Title

А значит в all_props.txt должно быть:
Code:
Movie/Country                                    : Deprecated, use Country


https://github.com/MediaArea/MediaInfoLib/blob/master/Source/Resource/Text/Stream/Image.csv
Добавлено:
Code:
Type;;;N YTY;;;Type
Type/String;;;Y NT;;;Type

А значит в all_props.txt должно быть:
Code:
Type                                             : Type
Type/String                                      : Type

а у вас этого просто нет.


Last edited by Destiny on Fri Jul 04, 2025 11:46; edited 1 time in total

#995:  Author: Loopback PostPosted: Thu Jul 03, 2025 22:55
    —
Destiny
Во-первых, непонятно, что за "Generic.csv". Такого контекста нет, есть General, и я беру данные, соответственно, из "General.csv", потому что именно там находятся описания полей.

Во вторых, я загружаю данные для последней релизной версии библиотеки (обратите внимание, что номер версии теперь прописывается в начале allprops.txt). Коммит с изменением на "deprecated" был сделан две недели назад. Коммит, добавляющий поля в Image.csv в мае. А релиз MediaInfo 25.04 - в апреле. Зачем же я буду брать данные по ещё не выпущенной версии?

Ну и в третьих, не заморачивайтесь сильно по поводу этого файла. Я же писал, что для работы плагина он не нужен, это чисто для справки Smile

#996:  Author: Destiny PostPosted: Fri Jul 04, 2025 11:47
    —
Да, конечно же General. Подписывал название файла по памяти Sad ошибся чутка. Rolling Eyes
Но всегда полезно знать, что справка соответствует набору используемых данных)))))))))

#997:  Author: jentoso PostPosted: Mon Jul 07, 2025 20:52
    —
Обновил плагин до версии 1.2.0 и при открытии в Lister получаю такую строку с ошибкой скрипта.
Quote:
Unknown function: GETOPTION (( GETOPTION ( 'HeaderExtraSpace' ) ) )

#998:  Author: Loopback PostPosted: Mon Jul 07, 2025 22:57
    —
jentoso
Видимо плагин всё же не обновился, других вариантов не вижу.

#999:  Author: jentoso PostPosted: Tue Jul 08, 2025 18:03
    —
Loopback
Плагин обновился, а вот wdx в wlx переименовать забыл. Laughing

#1000:  Author: AkulaBig PostPosted: Tue Jul 08, 2025 18:21
    —
jentoso wrote:
wdx в wlx переименовать забыл

А для чего вы его переименовываете? Он и так прекрасно как Листер-плагин ставится.

#1001:  Author: jentoso PostPosted: Tue Jul 08, 2025 22:18
    —
AkulaBig
А я уже и не помню, давно так было.

Вроде для того, чтобы работала кнопка с командой cm_List /Ptcmediainfo, т.к. по другому она не хочет работать.

#1002:  Author: Loopback PostPosted: Tue Jul 08, 2025 22:56
    —
jentoso
А ведь я совершенно забыл про wlx-враппер, который обсуждался ранее в теме. Он давно фактически сделан. Можно потестировать.

#1003:  Author: jentoso PostPosted: Tue Jul 08, 2025 23:18
    —
Loopback
Вот теперь все отлично Exclamation
Меньше места и работает wlx.

#1004:  Author: AkulaBig PostPosted: Wed Jul 09, 2025 05:50
    —
jentoso wrote:
чтобы работала кнопка с командой cm_List /Ptcmediainfo

А зачем она нужна? Прописываете:
Code:

[ListerModes]
; проигрывать внутренним плеером,
; по "4" переключать на TCMediaInfo
3exts=>{Аудио} Звуковые файлы
3fields=4i
4exts=>{Аудио} Lossless
4fields=4i
5exts=>{Аудио} Lossy
5fields=4i

И по '4' переключаетесь на TCMediaInfo.

#1005:  Author: jentoso PostPosted: Wed Jul 09, 2025 06:26
    —
AkulaBig
Мне так удобнее, нажал кнопку и сразу чисто плагином открыть.

#1006:  Author: Destiny PostPosted: Thu Jul 10, 2025 17:43
    —
Loopback
А меня глючит или при заявленной поддержке показа данных по HEIF формату
файлы по ссылке https://www.filesampleshub.com/format/image/heif в плагине
никак не отображаются. Они "соскальзывают" на следующий в списке настроенных
в самом Тотале, но ничего не пишут, мол, не тот формат - не готов показать инфу...

#1007:  Author: jentoso PostPosted: Thu Jul 10, 2025 19:46
    —
Destiny
Загрузил sample1.heif и вот что показывает
 Hidden text

#1008:  Author: Destiny PostPosted: Thu Jul 10, 2025 20:49
    —
Прикольно. и как это сработало?
У меня плагин висит в секции [ContentPlugins]
1=%COMMANDER_PATH%\Plugins\WDX\TCMediaInfo\TCMediaInfo.wdx
1_detect=
1_date=1422301606
1_flags=0

В поставке плагина файл %COMMANDER_PATH%\Plugins\WDX\TCMediaInfo\TCMediaInfo.xml
умолчательный - из коробки - содержит в себе поддержку форматов:
Quote:
<Formats>
AAF,AIFF,AIFC,AIF,AMV,AVI,M2TS,MTS,SSIF,CLPI,BDMV,BDM,MPLS,CDA,DAT,MPD,DV,DIF,DIVX,DPG,IFO,FLV,GXF,F4M,
HEIF,AVCI,AVCS,HEIC,HEICS,AVIF,AVIS,M3U8,GVI,ISM,IVF,LXF,MKV,MK3D,MKA,MKS,MPEG,MPG,M2P,VOB,VRO,PSS,EVO,TS,
M2T,M2S,M4T,M4S,TMF,TP,TRP,TY,BRAW,MOV,MP4,M4V,M4A,M4B,M4P,M4R,3GA,3GPA,3GPP,3GP,3GPP2,3G2,K3G,JPM,
JPX,MQV,ISMV,ISMA,ISMT,F4A,F4B,F4V,MTV,MXF,NSV,NUT,OGA,OGG,OGM,OGV,OGX,OPUS,SPX,PMP,PTX,QT,RM,RMVB,
RA,SWF,SKM,WEBM,ASF,DVR-MS,WMA,WMV,WTV,
AVC,H264,264,VIDEO,PART,DRC,FLI,FLC,H261,H263,HEVC,H265,265,MPGV,MPV,MP1V,M1V,MP2V,M2V,M4V,MP4V,VC1,Y4M,VVC,
H266,266,
AC3,AC4,AAC,AACP,ADTS,ALS,AMR,AUD,AUE,AU,CAF,DDE,DFF,DSF,DTS,DTSHD,DTSHDMA,DTSX,DD+,EC3,EAC3,XM,FLA,FLAC,
IT,LA,MIDI,MID,KAR,MOD,APE,MAC,M1A,MPA,MPA1,MP1,M2A,MPA2,MP2,MP3,OMA,OMG,AA3,AT3,MPC,MP+,QCP,RKA,
S3M,SHN,SLS,SPDIF,SPX,TAK,MLP,THD,VR,VQF,ACT,AT9,WAV,W64,WV,WVC,
AQT,SSA,ASC,STL,SMI,SAMI,SCC,SC2,SRT,DFXP,TTML,VTT
</Formats>


Ну при попытке даже принудительно просмотреть любой из тих трех файлов - плагин даже на миллисекунду видимо не вызывается,
т.е. как-то там он явно опрашивается Тоталом - но его ответ не подходит - и Тотал просто подставляет для просмотра другой плагин.

#1009:  Author: jentoso PostPosted: Thu Jul 10, 2025 20:55
    —
Destiny
А у меня плагин установлен в WDX и WLX
Code:
[ContentPlugins]
17=%COMMANDER_PATH%\plugins\WDX\TCMediaInfo\TCMediaInfo.wdx
17_detect=

Code:
[ListerPlugins]
12=%COMMANDER_PATH%\plugins\WDX\TCMediaInfo\TCMediaInfo.wlx
12_detect="MULTIMEDIA & FORCE"

TCMediaInfo.xml по умолчанию тоже.

#1010:  Author: Destiny PostPosted: Thu Jul 10, 2025 21:17
    —
Даже если добавлю - толку или точнее различий - нет.
Т.е. неважно ГДЕ хотя бы раз упомянут плагин - он будет везде работать.
Если это поддерживаемый формат.
А тут явно просто какой-то глюк. НО т.к. никаких логов нет - то непонятно
а кто и как отказался работать. Плагин? что-то не понравилось?
Тотал? Что-то не так включено?
AVIF же без проблем перемалывает!

#1011:  Author: Loopback PostPosted: Fri Jul 11, 2025 00:06
    —
Тоже никаких проблем, скачал сэмплы, конфиг по дефолту, всё открывается.

Какая версия библиотек MediaInfo? Поддержка HEIF появилась в 19.04. Как вариант, попробуйте отключить контроль расширений опцией IgnoreExtensions.

Destiny wrote:
но ничего не пишут, мол, не тот формат - не готов показать инфу...

Никакой информации и не должно быть, если формат неподдерживаемый (или по какой-то причине был сочтён таким), управление передается следующему плагину. Ну вот представьте себе картину, если бы каждый плагин в цепочке начал ругаться, что он что-то не поддерживает...

#1012:  Author: Destiny PostPosted: Fri Jul 11, 2025 02:09
    —
Loopback wrote:
Какая версия библиотек MediaInfo?

Последняя версия вашего плагина. Полный его состав. по дефолту.

Добавлено спустя 4 минуты:

Loopback wrote:
Никакой информации и не должно быть, если формат неподдерживаемый

А отлаживать вы как будете этот формат?
Вот у меня файл поддерживаемого формата. Но плагин его не открывает.
Сломался? А где? Может хоть какой-то лог по включенной опции он мог бы писать?
Плагин же даже при принудительном вызове не срабатывает!
Значит что-то очень-очень ему запрещает это делать.

P.S.
Опция <IgnoreExtensions>True</IgnoreExtensions>
nьфу, блин, три ошибки сделал в одном предложении пока написал....
ПОМОГАЕТ опция. ЧТО дальше проверяем?

#1013:  Author: Loopback PostPosted: Fri Jul 11, 2025 12:44
    —
Destiny wrote:
А отлаживать вы как будете этот формат?
Вот у меня файл поддерживаемого формата. Но плагин его не открывает.
Сломался? А где? Может хоть какой-то лог по включенной опции он мог бы писать?
Плагин же даже при принудительном вызове не срабатывает!
Значит что-то очень-очень ему запрещает это делать.

Баги бывают, баги обычно исправимы, ни к чему из-за этого нервничать и переживать.

Плагин пишет логи при включении DebugMode, правда это было сделано только для wdx-части, для wlx до сих пор не требовалось. Добавил отладку для wlx, тестовая версия. Предварительно нужно отключить IgnoreExtensions и включить <DebugMode>1</DebugMode>. В каталоге плагина будет создан файл debug.log. Интересует строка расширений, которая будет туда выведена.

Destiny wrote:
ПОМОГАЕТ опция

Ну вот уже ясно, раз IgnoreExtensions помогает, значит проблема в проверке расширений. И раз у меня и других не проявляется, какие-то отличия от дефолтного конфига у вас есть. Кажется, я уже понял в чём проблема, но лучше убедиться.

#1014:  Author: Destiny PostPosted: Fri Jul 11, 2025 13:20
    —
Code:
2025-07-11 12:18:09:296 [8236] WLX: Initializing...
2025-07-11 12:18:09:296 [8236] WLX: File extension: ".HEIF"
2025-07-11 12:18:09:297 [8236] WLX: Extensions: .AAF|.AIFF|.AIFC|.AIF|.AMV|.AVI|.M2TS|.MTS|.SSIF|.CLPI|.BDMV|.BDM|.MPLS|.CDA|.DAT|.MPD|.DV|.DIF|.DIVX|.DPG|.IFO|.FLV|.GXF|.F4M|.         HEIF|.AVCI|.AVCS|.HEIC|.HEICS|.AVIF|.AVIS|.M3U8|.GVI|.ISM|.IVF|.LXF|.MKV|.MK3D|.MKA|.MKS|.MPEG|.MPG|.M2P|.VOB|.VRO|.PSS|.EVO|.TS|.         M2T|.M2S|.M4T|.M4S|.TMF|.TP|.TRP|.TY|.BRAW|.MOV|.MP4|.M4V|.M4A|.M4B|.M4P|.M4R|.3GA|.3GPA|.3GPP|.3GP|.3GPP2|.3G2|.K3G|.JPM|.         JPX|.MQV|.ISMV|.ISMA|.ISMT|.F4A|.F4B|.F4V|.MTV|.MXF|.NSV|.NUT|.OGA|.OGG|.OGM|.OGV|.OGX|.OPUS|.SPX|.PMP|.PTX|.QT|.RM|.RMVB|.         RA|.SWF|.SKM|.WEBM|.ASF|.DVR-MS|.WMA|.WMV|.WTV|.         AVC|.H264|.264|.VIDEO|.PART|.DRC|.FLI|.FLC|.H261|.H263|.HEVC|.H265|.265|.MPGV|.MPV|.MP1V|.M1V|.MP2V|.M2V|.M4V|.MP4V|.VC1|.Y4M|.VVC|.         H266|.266|.         AC3|.AC4|.AAC|.AACP|.ADTS|.ALS|.AMR|.AUD|.AUE|.AU|.CAF|.DDE|.DFF|.DSF|.DTS|.DTSHD|.DTSHDMA|.DTSX|.DD+|.EC3|.EAC3|.XM|.FLA|.FLAC|.         IT|.LA|.MIDI|.MID|.KAR|.MOD|.APE|.MAC|.M1A|.MPA|.MPA1|.MP1|.M2A|.MPA2|.MP2|.MP3|.OMA|.OMG|.AA3|.AT3|.MPC|.MP+|.QCP|.RKA|.         S3M|.SHN|.SLS|.SPDIF|.SPX|.TAK|.MLP|.THD|.VR|.VQF|.ACT|.AT9|.WAV|.W64|.WV|.WVC|.         AQT|.SSA|.ASC|.STL|.SMI|.SAMI|.SCC|.SC2|.SRT|.DFXP|.TTML|.VTT|
2025-07-11 12:18:09:298 [8236] Extension not in list. Exiting.


Проблемой стали ведущие пробелы в формате вывода <Formats> в дефолтном XML файле
настроек плагина. Для читаемости это хорошо, а для парсинга и использования - облом-с...

#1015:  Author: jentoso PostPosted: Fri Jul 11, 2025 14:01
    —
Destiny
В TCMediaInfo.sample.xml нет пробелов, сами точно не добавляли?

#1016:  Author: Destiny PostPosted: Fri Jul 11, 2025 15:12
    —

#1017:  Author: Loopback PostPosted: Fri Jul 11, 2025 19:14
    —
Destiny wrote:
Проблемой стали ведущие пробелы в формате вывода

Пробел пробелу рознь. В дефолтной конфигурации не пробелы, а табы. В узле форматов любые пробельные символы должны убираться, но из-за небольшой ошибки не убирались, собственно, пробелы (символ с кодом 32), при этом остальное (табы, переносы строк) убиралось нормально.

Поэтому я и хотел убедиться, что в строке, в которой ищется расширение, остаются пробелы. Видимо, ваш редактор автоматически заменяет табы на пробелы, иначе откуда им там взяться.

Исправленная версия по той же ссылке.



Total Commander -> Плагины Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group