MPC-BE forum

MPC-BE => Баг Репорт / The bug report => Архив / Archive => Тема начата: Evgeniy1990 от 12 ноября 2020, 22:32:08

Название: OSD: Local Time - за пределами окна плеера на Windows 7 [Исправлено]
Отправлено: Evgeniy1990 от 12 ноября 2020, 22:32:08
Алгоритм воспроизведения:

1. Открыть плеер
2. Открыть любой файл
3. Нажать на горячую клавишу "I" во время воспроизведения файла
4. Свернуть и сразу же развернуть плеер
5. Закрыть воспроизводимый файл
6. Свернуть и сразу же развернуть плеер

Фактический результат:

После выполнения данных действий, "OSD: Local Time" уйдет за пределы основного окна плеера.

Ожидаемый результат:

После выполнения данных действий, "OSD: Local Time" вообще не должно отображаться, так как воспроизводимый файл был уже закрыт.
Название: Re: OSD: Local Time - за пределами окна плеера на Windows 7
Отправлено: V0lt от 13 ноября 2020, 11:08:14
Подтверждаю. OSD вновь появляется при развороте окна пустого плеера, и при этом остается на месте при перемещении окна плеера.
Название: Re: OSD: Local Time - за пределами окна плеера на Windows 7
Отправлено: Aleksoid1978 от 13 ноября 2020, 14:33:58
Ну у тебя есть 7 - так что дерзай :)
Название: Re: OSD: Local Time - за пределами окна плеера на Windows 7
Отправлено: Aleksoid1978 от 15 ноября 2020, 15:53:46
А если так - https://yadi.sk/d/mbWv4SyUHn03FA
Название: Re: OSD: Local Time - за пределами окна плеера на Windows 7
Отправлено: Evgeniy1990 от 15 ноября 2020, 16:13:51
Aleksoid1978,
ЦитироватьА если так - https://yadi.sk/d/mbWv4SyUHn03FA
Проверил тестовый билд. Теперь, вместо "OSD: Local Time", отображается просто OSD "Stop" за пределами основного окна плеера.
Вы движетесь в верном направлении, только по идее (по логике), никаких OSD повторно отображаться не должно, тем более за пределами основного окна плеера. У вас практически получилось исправить проблему. Еще подкорректируйте, пожалуйста.
Название: Re: OSD: Local Time - за пределами окна плеера на Windows 7
Отправлено: Aleksoid1978 от 15 ноября 2020, 16:27:43
Можно записать видео всего процесса.
Название: Re: OSD: Local Time - за пределами окна плеера на Windows 7
Отправлено: Evgeniy1990 от 15 ноября 2020, 17:12:22
Aleksoid1978,
ЦитироватьМожно записать видео всего процесса.
Пожалуйста (https://yadi.sk/i/tlJqZyvPEE-9QQ).

Сделал для вас краткую видеозапись всего процесса. Все строго по алгоритму, описанному в первом посте.
Чтобы у вас не возникло лишних вопросов, я скажу вам сразу, что на данной видеозаписи у меня уже было включено "OSD: Local Time".
Название: Re: OSD: Local Time - за пределами окна плеера на Windows 7
Отправлено: Aleksoid1978 от 16 ноября 2020, 02:20:26
А если после такого сдвинуть окно - восстановиться положение OSD ?
Название: Re: OSD: Local Time - за пределами окна плеера на Windows 7
Отправлено: Aleksoid1978 от 16 ноября 2020, 03:03:55
Вот еще пробуем - https://yadi.sk/d/ihYp6FyRw43BFg
Название: Re: OSD: Local Time - за пределами окна плеера на Windows 7
Отправлено: Evgeniy1990 от 16 ноября 2020, 09:50:44
Aleksoid1978,
ЦитироватьА если после такого сдвинуть окно - восстановиться положение OSD ?
Нет. Положение OSD не восстановится (https://yadi.sk/i/NXa8sGu3EeFGiA).

Aleksoid1978,
ЦитироватьВот еще пробуем - https://yadi.sk/d/ihYp6FyRw43BFg
Проверил второй тестовый билд. Теперь полный порядок (https://yadi.sk/i/rVKrqj2cP8qoUw).
Проблема устранена (https://yadi.sk/i/zpGOSR_K4Y1b7g). :)
Название: Re: OSD: Local Time - за пределами окна плеера на Windows 7
Отправлено: Aleksoid1978 от 16 ноября 2020, 10:20:50
Ну погоняй его ещё немного по всякому, все ли будет корректно с ОСД. Помню ещё были какие то случаи когда за окно уезжало.
Название: Re: OSD: Local Time - за пределами окна плеера на Windows 7
Отправлено: Evgeniy1990 от 16 ноября 2020, 11:29:43
Aleksoid1978,
ЦитироватьНу погоняй его ещё немного по всякому, все ли будет корректно с ОСД. Помню ещё были какие то случаи когда за окно уезжало.
Прогнал немного второй тестовый билд. Проверил всевозможные имеющиеся OSD. Все они отрабатывают корректно, не выходят за пределы основного окна плеера, при данном алгоритме воспроизведения.

При сравнении с SVN-билдом, заметил, что в вашем тестовом билде, при ПКМ на долю секунды выскакивает OSD: Stop, хотя по логике должно быть OSD: Closed и оно не должно отображаться долю секунды, а должно отображаться несколько подольше, чтобы его можно было успеть прочитать, но это уже совсем другая история и об этом далее...

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

Что значит взаимодействия различных OSD друг с другом?
Дело в том, что сейчас различные OSD "конфликтуют" друг с другом. Если выразиться иначе, то одно OSD мешает отображению другого OSD, при определенных условиях.

И вот вам пример - допустим, у нас включено "OSD: Local Time" и во время воспроизведения произвольного видео файла мы перематываем его несколько раз. Во время перемотки, по логике, "OSD: Local Time" должно переключаться на "OSD: Show seek time", а после перемотки должно обратно возвращаться на "OSD: Local Time". Но, по факту, этого не происходит.
Получается, что "OSD: Local Time" не дает возможности отобразиться "OSD: Show seek time". Или можно предположить, что оно ("OSD: Local Time") перекрывает отображение "OSD: Show seek time", так как является приоритетным.

И это только один из всевозможных примеров "конфликтов" различных OSD. А их далеко не один...

Другим примером может служить время отображения различных OSD. Например, возьмем все то же "OSD: Local Time".
Во время воспроизведения мы меняем громкость, неважно выше, или ниже, главное что OSD с уровнем громкости, при "OSD: Local Time", присутствует лишь доли секунды и лишь едва удается его рассмотреть и прочитать. И это еще одна проблема.
То есть, при взаимодействии различных OSD между собой, при определенных условиях, необходимо продлить время их показа, т.е. их отображения.

Как вы уже поняли, подобных различных примеров предостаточно. Хватит на "целую поэму".

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

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

Теперь то, надеюсь, вы окончательно поняли суть проблемы взаимодействия различных OSD друг с другом. А ведь это довольно обширная тема, которая в свое время даже не была рассмотрена, проверена и учтена, при глобальной переделке OSD.
Название: Re: OSD: Local Time - за пределами окна плеера на Windows 7
Отправлено: Aleksoid1978 от 16 ноября 2020, 11:49:52
По поводу "OSD: Stop" - ну сперва же срабатывает команда стоп, а потом закрытие файла(при этом OSD "обнуляется") - поэтому оно и мелькает. Если оно будет "лишнее" - можно будет со временем и убрать.

По поводу "перекрытия" сообщений в OSD все проще - те что показываются все время, они просто выводят свою информацию по таймеру, вот и получается что когда срабатывает таймер, эти сообщения выводятся "опять", ессно текущие сообщения в OSD затираются. Чтобы этого избежать - надо "думать" :). Но такое поведение было всегда - т.к. сам принцип формирования/вывода сообщений не менялся.