View previous topic :: View next topic |
Author |
Message |
Orion9

Joined: 01 Jan 2024 Posts: 762
|
(Separately) Posted: Fri May 23, 2025 20:12 Post subject: |
|
|
AkulaBig wrote: | В файлах, где корректно записана дата:время все работало. Но большинство в эту колонку записывает строку. |
Вот я и говорю, что сначала хорошо было бы разобраться с форматами, чтобы уметь, в первую очередь для себя самого, лучше понимать, что является стандартом, а что не является. Это, конечно, личное дело каждого, плагин этого не требует, но такие знания точно бы не помешали.
AkulaBig wrote: | Фифти-фифти. |
Это много ) Но, наверное, только глубокие и объемные тесты смогут сказать точнее.
AkulaBig wrote: | Раз я разобрался с организацией файла настройки, решил сам переделать его под себя. |
Конечно, и это правильно. Стандартный файл конфигурации позволяет всё настроить под себя. Поэтому и плагин топовый. Редко можно встретить такую гибкость.
AkulaBig wrote: | У меня вроде неплохая коллекция для тестов. |
Файлы безусловно можно собрать. Но проводя серьёзные тесты хотелось бы лучше понимать все поддерживаемые форматы, стандарты, способы хранения и структуру мета-информации в файлах. А это уже совсем другой уровень знаний и понимания, из-за чего плуг, лично для меня, так и остался в подвешенном состоянии. По большому счёту, я юзаю его поля типа "All video as string" и "All audio as string" в подсказке на панелях, ну и листерная часть безусловно крута. Правда хотелось бы побольше режимов просмотра, таких вещей никогда много не бывает.
AkulaBig wrote: | Поэтому и хотелось, чтобы Loopback с этим разобрался. |
Я только "за" ) Но как уже написал выше, форматы - личное дело каждого. Хотя, конечно, хотелось бы, чтобы конфиг по умолчанию работал и отображал всё правильно. |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1511
|
(Separately) Posted: Fri May 23, 2025 21:49 Post subject: |
|
|
Orion9 wrote: | Могу подтвердить, что проблема есть. |
Тут, оказывается, столько всего написали
Но чтобы всё это оттестировать времени нужно очень много, а его нет, и пока в приоритете 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: | Правда хотелось бы побольше режимов просмотра |
Каких, например? У меня тут фантазия буксует
Orion9 wrote: | Хотя, конечно, хотелось бы, чтобы конфиг по умолчанию работал и отображал всё правильно. |
Естественно хотелось бы. Но учесть все нюансы при таком огромном количестве информации непросто. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 762
|
(Separately) Posted: Sat May 24, 2025 00:51 Post subject: |
|
|
Loopback wrote: | Но чтобы всё это оттестировать времени нужно очень много, а его нет, и пока в приоритете Autorun. |
Не берите в голову. По-моему, все это хорошо понимают. Постараемся помочь чем сможем. Тестами, имеется в виду.
Loopback wrote: | Надо бы там еще писать, для какой версии MediaInfo сформирован список. |
Да, это важно. Нужно такое видеть.
Loopback wrote: | Обновляется при выходе новой версии. |
Версии плагина, или версии DLL? Если первое, то что произойдет если обновить второе? А если плагин долго не будет обновляться, а библиотека далеко уйдет вперед?
Loopback wrote: | Каких, например? У меня тут фантазия буксует |
Сложно сказать. В последней версии вы уже максимально выжали все, что нужно простому пользователю ПК, как тут не забуксуешь? От режима "Видео (компактный)" я просто балдею ) Но чтобы придумать новые режимы просмотра тут нужно глубже изучить техническую сторону и области различного, порой очень специфического применения. Например, в тегах иногда хранится информация о нормализации аудио, допустим мне нужно сосредоточится только на этом при быстром просмотре. Сейчас комфортно сделать это не получится, потому что придется мотать вертикальный ползунок, что тормозит весь процесс. Кроме этого, можно разнообразить шаблоны посмотрев примеры в самой MediaInfo. Например, что вроде режима "Кратко" в меню "Вид", там, где "Таблица", "Дерево" и др. У меня, например, в "Выборочно" сейчас вот так:
 Hidden text Имя: Predators.2010.BDRip-HEVC.1080p.mkv
Размер: 12,63 Гбайт
Общее: , 16,9 Мбит/сек, Matroska, Cover, 23,976 кадра/сек
Видео #0: 1920x816pix, AR:2.353=~2,35:1, 23,976 (24000/1001) кадра/сек, 12,4 Мбит/сек, 0.331bpf, HEVC, en
Аудио #0: 6ch, 48,0 КГц, 448 Кбит/сек(CBR), AC-3, ru, 31,250 кадров/сек (1536 SPF)
Аудио #1: 6ch, 48,0 КГц, 640 Кбит/сек(CBR), AC-3, ru, 31,250 кадров/сек (1536 SPF)
Аудио #2: 6ch, 48,0 КГц, 640 Кбит/сек(CBR), AC-3, ru, 31,250 кадров/сек (1536 SPF)
Аудио #3: 6ch, 48,0 КГц, 448 Кбит/сек(CBR), AC-3, ru, 31,250 кадров/сек (1536 SPF)
Аудио #4: 6ch, 48,0 КГц, 640 Кбит/сек(CBR), AC-3, ru, 31,250 кадров/сек (1536 SPF)
Аудио #5: 6ch, 48,0 КГц, 640 Кбит/сек(CBR), AC-3, ru, 31,250 кадров/сек (1536 SPF)
Аудио #6: 6ch, 48,0 КГц, 384 Кбит/сек(CBR), AC-3, uk, 31,250 кадров/сек (1536 SPF)
Аудио #7: 6ch, 48,0 КГц, 640 Кбит/сек(CBR), AC-3, en, 31,250 кадров/сек (1536 SPF)
Текст #0: UTF-8@ru, 23,12 КиБ, 29 бит/сек, 0,113 кадр/сек
Текст #1: UTF-8@ru, 21,03 КиБ, 28 бит/сек, 0,093 кадр/сек
Текст #2: UTF-8@ru, 26,86 КиБ, 37 бит/сек, 0,130 кадр/сек
Текст #3: UTF-8@uk, 22,45 КиБ, 29 бит/сек, 0,113 кадр/сек
Текст #4: UTF-8@en, 21,09 КиБ, 27 бит/сек, 0,157 кадр/сек
Меню #0:
Но далеко не оптимально, а просто экперимент. Можно отдельно сделать представления для аудио и титров. Сейчас при просмотре видео-файла, если переключиться на Аудио (компактный) дорожки теряются, остается только одна дорожка. В общем, как это можно разнообразить, можно думать и думать. В конечном счете, главное, чтобы удобно было. |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1511
|
(Separately) Posted: Sat May 24, 2025 12:34 Post subject: |
|
|
Orion9 wrote: | Версии плагина, или версии DLL? Если первое, то что произойдет если обновить второе? А если плагин долго не будет обновляться, а библиотека далеко уйдет вперед? |
Плагина.
Ничего ужасного не произойдет, только новые или измененные поля не будет переведены.
Orion9 wrote: | Например, что вроде режима "Кратко" в меню "Вид", там, где "Таблица", "Дерево" и др. |
Так по-сути это аналогично "компактным" режимам просмотра.
Orion9 wrote: | В общем, как это можно разнообразить, можно думать и думать. В конечном счете, главное, чтобы удобно было. |
Ну ок, когда что-то придумается, тогда можно будет думать дальше  |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 762
|
(Separately) Posted: Sat May 24, 2025 13:45 Post subject: |
|
|
Loopback wrote: | Так по-сути это аналогично "компактным" режимам просмотра. |
Аналогично, согласен. Разница может быть в нюансах и расположении полей в определенных местах строки. Иногда удобно, например, видеть название кодека в начале, а иногда в конце. Или нужно видеть полную информацию о воспроизведении - Duration/String1, Duration/String3, Duration/String5, другую специфическую информацию, например StreamSize/String5. Но самый главный критерий - чтобы вся релевантная информация для режима помещалась на экран в противоположной панели, чтобы не возникало необходимости крутить ползунок в сторону или вниз, прерывая тем самым быстрый просмотр по CTRL+Q. А для этого можно даже чем-то пожертвовать, оставить только простой текстовый вывод типа того, что я скинул выше.
Также можно сделать отдельный режим для тэгов. Сейчас вся информация смешивается в общем потоке, что не очень удобно, если нужно посмотреть только тэги без технической информации. По сути, к режимам Аудио (компактный) и Видео (компактный) можно добавить пункт "Только тэги" или что-то в этом роде. Я как раз недавно эксперементировал с шаблоном плагина anytag.wdx и обнаружил то ли баг, то ли это так задумано:
 Hidden text 0=8|Tag|%_tag%
1=8|Tag Read|%_tag_read%
2=8|Tag Size|%_tag_size%
3=8|Album|%album%
4=8|Artist|%artist%
5=8|Album Artist|%albumartist%
6=8|Comment|%comment%
7=8|Genre|%genre%
8=8|Title|%title%
9=8|Track|%track%
9=8|Track (leading zeros)|[$num(%track%,2)]
10=8|Year|%year%
11=8|Composer|%composer%
12=8|Covers|%_covers%
13=8|Bitrate|%_bitrate%
14=8|Codec|%_codec%
15=8|Length|%_length%
16=8|Length (in seconds)|%_length_seconds%
17=8|Mode|%_mode%
18=8|Samplerate|%_samplerate%
19=8|Extra information|%_extra%
20=8|Appended|%_tag_size_appended%
21=8|Prepended|%_tag_size_prepended%
22=8|ID3v2 Encoding|%_id3v2_character_encoding%
23=8|ID3v2 Unknown|%_id3v2_unknown_frames%
24=8|Tags|$list($char(10),: ,)
Последняя строка динамически создаёт поля плагина с именами всех тэгов. На выходе получается очень интересно:
 Hidden text Tag : ID3v1 ID3v2.3
Tag Read : ID3v2.3
Tag Size : 4736
Album : Zoolook
Artist : Jean Michel Jarre
Album Artist : Jean Michel Jarre
Comment : USC©2007/Remastered (Epic, 1
Genre : New Age
Title : Ethnicolor
Track : 1
Year : 1984
Composer : Jean Michel Jarre
Bitrate : 320
Codec : MPEG 1 Layer III
Length : 11:47
Length (in seconds) : 707
Mode : Joint Stereo
Samplerate : 44100
Extra information : CBR
Appended : 128
Prepended : 4608
ID3v2 Encoding : ISO-8859-1
Tags :
COMMENT: USC©2007/Remastered (Epic, 1
TITLE: Ethnicolor
YEAR: 1984
PUBLISHER: Dreyfus Records
GENRE: New Age
ALBUM: Zoolook
TRACK: 1
ALBUMARTIST: Jean Michel Jarre
COMPOSER: Jean Michel Jarre
ARTIST: Jean Michel Jarre
Tag : FLAC
Tag Read : FLAC
Tag Size : 8232
Album : Bach - Complete Works for Organ - CD05
Artist : Marie-Claire Alain
Comment : ExactAudioCopy v1.0b3
Genre : Classical
Title : BWV565 Toccata and Fugue in D minor
Bitrate : 731
Codec : Free Lossless Audio Codec
Length : 08:34
Length (in seconds) : 514
Mode : Stereo
Samplerate : 44100
Appended : 7906
Prepended : 326
Tags :
album: Bach - Complete Works for Organ - CD05
artist: Marie-Claire Alain
catalog: 0825646990283
COMMENT: ExactAudioCopy v1.0b3
DATE: 2007
DISCID: 9911080A
GENRE: Classical
isrc: FRZ207901400
title: BWV565 Toccata and Fugue in D minor
TRACKTOTAL: 10
tracknumber: 2
Правда поле комментария почему-то режется и с этим отдельно нужно разбираться, но сам вывод интересен. Здесь мне нравится то, что есть информация о кодировке тэга, а также информация о том, сколько байт занимают все тэги, в том числе и отдельно те, которые в начале и в конце файла (Prepended и Appended). Минус один. Информация о тэгах отображается только для считанного тэга, а в mp3-файле может быть, например, три тэга: ID3v1, ID3v2.3 и APE. В последнем, как правило, и сохраняется служебная информация сторонними приложениями, например о нормализации или выравнивании громкости. Но anytag читает только один тэг, что в результате отрезает другую информацию:
 Hidden text Tag : ID3v1 ID3v2.3 APEv2
Tag Read : APEv2
Tag Size : 2480
Bitrate : 320
Codec : MPEG 1 Layer III
Length : 02:35
Length (in seconds) : 155
Mode : Stereo
Samplerate : 44100
Extra information : CBR
Appended : 334
Prepended : 2146
ID3v2 Encoding : UTF-16
Tags :
MP3GAIN_MINMAX: 060,208
MP3GAIN_UNDO: +002,+002,N
REPLAYGAIN_TRACK_GAIN: -5.480000 dB
REPLAYGAIN_TRACK_PEAK: 0.714724
MediaInfo читает все тэги, но информация о них перемешивается с другой, технической информацией. Например, данные от тэга APEv2 почему-то попадают в аудио-поток, где их вообще непросто вычленить взглядом:
 Hidden text Общее
Полное имя : 3 Of A Kind - Baby Cakes.mp3
Формат : MPEG Audio
Размер файла : 5,91 Мбайт
Продолжительность : 2 мин. 34 с.
Режим общего битрейта : Постоянный
Общий битрейт : 320 Кбит/сек
Имя трека : Baby Cakes
Исполнитель : 3 Of A Kind
Дата записи : 2004
Библиотека кодирования : LAME3.82
Аудио
Формат : MPEG Audio
Версия формата : Version 1
Профиль формата : Layer 3
Продолжительность : 2 мин. 34 с.
Вид битрейта : Постоянный
Битрейт : 320 Кбит/сек
Канал(-ы) : 2 канала
Частота дискретизации : 44,1 КГц
Частота кадров : 38,281 кадров/сек (1152 SPF)
Метод сжатия : С потерями
Нормализатор звука : -5,48 дБ
Пик нормализатора звука : 0.714724
Размер потока : 5,91 Мбайт (100%)
Библиотека кодирования : LAME3.82
MP3Gain, Min/Max : 060,208
Undo : +002,+002,N
Loopback wrote: | Ну ок, когда что-то придумается, тогда можно будет думать дальше |
Придумается со временем, куда оно денется. Если будут какие-то идеи, то обязательно поделюсь. Просто я не так активно юзал листерную часть плагина, но сейчас смотрю она очень сильно прибавила. Как я написал выше, вы уже сняли все сливки, возможно, тут и добавить то нечего. Поспешно было мое утверждение, что хотелось бы больше режимов просмотра )
Кстати, на мой взгляд, подменю "Режимы просмотра" замедляет выбор пунктов. Лучше сразу все пункты подменю вынести в основное контекстное меню или сделать в окне просмотра табы, как, например, в плагине decMetaExpert, там очень удобно табы сделаны, да и таблицы тоже удобно сделаны.
P.S.
Loopback wrote: | Нет, в теме Autorun это обсуждали. Это не будет работать на тексте, где смешаны корректные и некорректные куски. Единственный способ - задать определенные поля в шаблоне просмотра. |
Знаю, что адресовано не мне, но в теме Autorun вопрос вроде порешали. Разве нельзя только вторую часть строки фиксить? |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 307
|
(Separately) Posted: Sat May 24, 2025 17:55 Post subject: |
|
|
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: | такие знания точно бы не помешали. |
Вы-же знаете мой принцип "и так сойдет"
Orion9 wrote: | вы уже сняли все сливки, возможно, тут и добавить то нечего |
Вот как-раз с листерной частью большие проблемы. Нет возможности выводить поля с "/".
Мне кажется надо код править, но может Loopback предложит решение через файл конфигурации. |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1511
|
(Separately) Posted: Sun May 25, 2025 00:08 Post subject: |
|
|
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: | Мне кажется вам-же проще будет. |
Ох не факт. Учитывая "волосы дыбом" Потом набросаю скрипт, чтобы понять, какие поля и как переведены в сравнении с моим языковым файлом.
AkulaBig wrote: | Четко падает при отсутствии TCMediaInfo.xml. |
Тестировал на 11.51. Ладно, позже тогда, некритичная проблема.
AkulaBig wrote: | Поле Title присутствует только в режиме MediaInfo Full. Получается если мы добавляем Track name по нашему кривому алгоритму, то в выводе листер-плагина присутствуют оба поля. В в контекстном плагине у вас Track name отсутствует. Соответственно не на всех файлах показывает название. Там просто нет поля Title. |
Не уверен, что понял. |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 307
|
(Separately) Posted: Sun May 25, 2025 06:59 Post subject: |
|
|
Loopback wrote: | Вот исправленная версия. |
Даже не знаю, как вас благодарить. Теперь все работает как нужно! Огромное спасибо.
Loopback wrote: | поскольку в языковом файле для таких комбинаций нет перевода, его надо добавлять. |
Все отлично:
Loopback wrote: | Возможно, потом сделаю опцию и /String* трактовать как раздельные поля. |
Только, пожалуйста, опционально. Меня полностью устраивает нынешний вывод. который соответствует выводу MediaInfo.
Loopback wrote: | А есть какой-то особый смысл в этом порядке расположения? |
Чистая вкусовщина. А для вас упрощение скриптов настройки.
Loopback wrote: | Ну, трек - это англицизм, а перевод именно "дорожка". |
У меня со словом дорожка ассоциируется дорожки на ленте. Может я слишком старый, но прям режет слух. Но это ладно, забавно то, что в оригинальном файле русификации применяется и тот и тот перевод. Хотя может быть как раз в этом смысловая нагрузка.
Loopback wrote: | Не уверен, что понял. |
Все, все, все. Не заморачивайтесь. Это уже не актуально. Просто выводились два одинаковых названия. Одно в поле Title, другое в поле Track number. |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 762
|
(Separately) Posted: Sun May 25, 2025 14:04 Post subject: |
|
|
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: | Этих режимов может быть и десяток, и два, и всё это вываливать в главное меню? Для быстрого доступа есть горячие клавиши. Табы? Ну, не знаю. |
Сколько-сколько режимов может быть? Шутите, наверное ) Мне сначала тоже показалось, что режимов как-то маловато и что есть куда копнуть, поэтому и написал об этом. Но как выясняется, тут 2-3 режима новых придумать будет сложно, что уж о десятке говорить? )
Но мало еще придумать, их сделать нужно. Я, например, за долгое время так и не понял, что именно мне нужно, поэтому и не лез в конфиг. Без чёткого понимания, что нужно, делать в любом случае ничего не получится.
Ну, а на счет меню, не знаю, вы же сами писали, что больше мышист и переключение горячими клавишами добавили относительно недавно. Разве вам удобно было добираться до пунктов подменю?
Loopback wrote: | Парсить еще и вывод Inform? Ну не знаю. Как-то не понял я его ценности, чтобы за него цепляться. Он же просто выводит все непустые поля, да ещё со спорным форматированием. |
Согласен. Меня тоже не напрягает вывод с кракозябрами в Infom, до тех пор, пока есть возможность переключения на другой режим, где эти кракозябры фиксятся. Но разве сейчас фиксятся не только отдельные поля? В тэгах могут попасться нестандартные записи, добавляемые пользователями, которые не обработаются функцией:
Code: | FixCodepage('Title', 'Performer', 'Album', 'Track'); |
AkulaBig приводил примеры таких тэгов. |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 307
|
(Separately) Posted: Sun May 25, 2025 14:43 Post subject: |
|
|
Orion9 wrote: | без замены строк на:
Code: |
if StrPos(id, '/String') > 0 then Continue;
|
обновленные файлы плагина сами по себе ничего не дают. |
Так и есть. Я специально проверил.
Orion9 wrote: | В тэгах могут попасться нестандартные записи, добавляемые пользователями, которые не обработаются функцией |
Навряд-ли с этим можно что-то сделать:
 |
|
Back to top |
|
 |
Orion9

Joined: 01 Jan 2024 Posts: 762
|
(Separately) Posted: Sun May 25, 2025 20:01 Post subject: |
|
|
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-редакторе напрямую открыть и глянуть. |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 307
|
(Separately) Posted: Sun May 25, 2025 20:30 Post subject: |
|
|
Orion9 wrote: | но хотя бы вторая часть строки будет отображаться корректно |
Это понятно. Если я этот тег пропишу в настройках, то и у меня вторая часть будет корректно отображаться. Но зачем мне левый тэг, присутствующий только в одном файле?
Orion9 wrote: | именно в таких случаях и может пригодится свойство плагина anytag.wdx корректно читать ANSI |
Если-бы это был листер-плагин, можно было-бы потестить. А какой смысл делать это в контекстном плагине? |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1511
|
(Separately) Posted: Sun May 25, 2025 21:08 Post subject: |
|
|
AkulaBig wrote: | Все отлично: |
Очень хорошо. Удивляюсь, как такой косяк вообще допустил. Ну и за столько лет никто не обращал внимания.
AkulaBig wrote: | в оригинальном файле русификации применяется и тот и тот перевод. Хотя может быть как раз в этом смысловая нагрузка. |
Возможно, просто разные люди переводили. Мне не кажется, что у этих (кстати, идущих подряд) строк разная смысловая нагрузка:
Quote: | Track;Имя трека
Track_Count;Количество треков
TrackFormat;Формат дорожки
TrackIndex;Индекс дорожки |
Orion9 wrote: | заливать новую версию на сайт ради тех пользователей, которые никогда не полезут в конфиг, что Loopback отчасти и сделал. Но он забыл приложить в архив исправленнный файл конфигурации |
Такие версии чисто тестовые и не предназначаются для широкого круга. Это даже не бета. Проблема существовала годами, ничего страшного не произойдёт за еще какое-то время.
Orion9 wrote: | в самом верху зачем-то выводится информация об общем количестве аудиоканалов |
Это да, странная информация, с какой стороны ни посмотри. Лучше отфильтровать.
Orion9 wrote: | На мой взгляд, важнее на этом месте видеть информацию о количестве аудиодорожек. |
Шаблон полуавтоматический, выводящий все поля, кроме заданных в списке исключений. На это место принудительно ничего не впихнуть. Чтобы выводить в заданном порядке надо идти от обратного, т.е. делать явный список того, что надо вывести.
Orion9 wrote: | Или в режиме "Полный" нет информации о миллисекундах в поле "Продолжительность", хотя не понятно почему, ведь режим называется Полный. |
"Полный" значит лишь то, что в нем не фильтруются "лишние" поля. Форматирование единиц все равно будет зависеть от предпочтений сделавшего шаблон.
Orion9 wrote: | Но если вы ведёте плагин уже больше 15 лет, на кому ещё расчитывать простому пользователю, если не на вас? |
На какого-нибудь еще продвинутого пользователя?
Впрочем, не вопрос. Но хотелось бы, чтобы вопрошающий имел уже некое оформленное понимание, чего он хочет. Техническое задание, если угодно.
Orion9 wrote: | Чтобы написать шаблон, его для начала надо придумать, что уже не просто, как выяснилось. |
Вот именно, придумать - это самое сложное. А если польза будет больше, чем для пары человек - совсем отлично
Orion9 wrote: | Но и придуманный шаблон не просто реализовать, кто за это возьмётся? Не каждый прогер захочет этим замотрачиваться, о простых пользователях что говорить? |
При наличии нормального ТЗ это не так сложно, как может показаться. Сплошная копипаста.
Orion9 wrote: | Он мешает тем, что перемешивается с тэгами |
Но я-то имел в виду компактные режимы, они с фиксированным набором полей. В них никакого смешивания не происходит.
Orion9 wrote: | На мой взгляд, режим "Только тэги" не помешал бы, но сделать его можно в данных условиях только фильтруя нужные поля. |
Я все же не понимаю, чем это принципиально лучше "компактного аудио". Ну убрать из него строку LineAddHeader(GetName('Audio')); и всё что после нее - вот и будет "Только теги".
Orion9 wrote: | вы же сами писали, что больше мышист и переключение горячими клавишами добавили относительно недавно. Разве вам удобно было добираться до пунктов подменю? |
Я пользуюсь стандартным и редко их переключаю.
Orion9 wrote: | Но разве сейчас фиксятся не только отдельные поля? В тэгах могут попасться нестандартные записи, добавляемые пользователями, которые не обработаются функцией: |
Никто не мешает добавить в неё свои поля, которые надо исправлять. Хотя если будет такое, как в сообщении выше, когда искажено даже само имя поля, что тут сделаешь?
На самом деле, если уж очень надо, FixCodepage можно использовать и в цикле для всех полей, главное её вызвать перед выводом значения поля примерно в таком виде:
Code: | FixCodepage(GetID(i, 'Audio'))
LineAddField(GetID(i, 'Audio'))
|
Но это, разумеется, не лучшим образом скажется на производительности. |
|
Back to top |
|
 |
AkulaBig
Joined: 03 Dec 2008 Posts: 307
|
(Separately) Posted: Sun May 25, 2025 22:17 Post subject: |
|
|
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 написать, названия полей не появляются. |
|
Back to top |
|
 |
Loopback
Joined: 07 Sep 2009 Posts: 1511
|
(Separately) Posted: Mon May 26, 2025 00:01 Post subject: |
|
|
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; |
|
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|