OSD - "Крыша снос"

Автор Evgeniy1990, 25 января 2016, 20:13:23

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Evgeniy1990

При взаимодействии с опцией "Приостанавливать воспроизведение видео при сворачивании окна", OSD начинает вести себя очень нестабильно.

! Данный баг наблюдается только на системах Windows 7 и Windows XP.

Симптомы:

1. Проявление, когда вздумается.
2. Прилипание навечно, пока не закрою видео файл, или сам плеер.
3. Разделение от основного окна самого плеера.
4. Команды в зависимости, или наоборот - независимости от определенных действий.

Алгоритм воспроизведения бага - поломки:

1. Включить OSD
2. Включить опцию "Приостанавливать воспроизведение видео, при сворачивании окна"
3. Открыть видео файл
4. Изменить "Громкость" и сразу же свернуть плеер на панель задач
5. В эту же секунду, развернуть его обратно

Фактический результат:
на Windows 7 OSD появляется раньше, чем основное окно самого плеера.
Ожидаемый результат: на Windows 7 OSD должно появляться только после того, когда развернется окно самого плеера.

6. Зайти в настройки, выключить опцию " Показать OSD"
7. Свернуть плеер и развернуть его обратно сразу же

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

1. OSD появится само по себе, несмотря на тот факт, что я его выключил вообще.
2. При этом, если сдвинуть окно плеера в любую сторону, оно оторвется от окна самого плеера.
3. Причем, вдобавок еще и не исчезнет до тех пор, пока я не закрою сам воспроизводимый файл, или сам плеер.
4. В самом OSD будет показан уровень громкости, или просто надпись "Воспроизведение", в зависимости от того, какое действие мы выполнили, сразу после того, как выключили опцию "Показать OSD", свернули плеер, а затем развернули его обратно.

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

Если мы выключили опцию "Показать OSD", свернули плеер, а потом опять его развернули обратно, то OSD в любом случае вообще быть не должно, поскольку мы его уже итак выключили, прежде чем свернули плеер и развернули его обратно.

P.S. Ссылка на видеозапись: https://yadi.sk/i/gwS1vmVUnkfDB
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

V0lt

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

Evgeniy1990

Цитата: V0ltЧто-то похожее было, только для ручного сворачивания.
Алгоритм воспроизведения бага какой-то совсем надуманный.
Да, уже было такое раньше, в обычной ситуации, т.е. когда просто сворачивали плеер и OSD отсоедиинялось от окна плеера, при обратном разворачивании. теперь ситуация (случай) аналогичная.

Что значит - надуманный?

Это стабильный алгоритм воспроизведения данного бага.
Именно по такому алгоритму воспроизводится этот баг.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

Повторить не могу.

P.S. Причем я специально в коде сделал "поведение" OSD одинаковое на всех системах, т.е. как на WinXP(сейчас для Win8 и выше работа с OSD отличается). И все равно не могу воспроизвести.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Цитата: Aleksoid1978Повторить не могу.

P.S. Причем я специально в коде сделал "поведение" OSD одинаковое на всех системах, т.е. как на WinXP(сейчас для Win8 и выше работа с OSD отличается). И все равно не могу воспроизвести.

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

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

И, кстати, я вам напомню, что она также есть и на выпендрежной Windows 7, а не только на нормальной Windows XP.
Ошибка полностью стабильная, воспроизводится нетрудно, согласно данному алгоритму воспроизведения.
[merge_posts_bbcode]Добавлено: 2016-01-26 15:21:40[/merge_posts_bbcode]

Обновил баг-репорт, добавил ссылку на видеозапись для наглядности самого бага.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

V0lt

Для оконного режима окно OSD для разных систем разное. Для 8 и 10 - дочернее, а для XP и 7-ки - pop-up. Отсюда и разница на разных системах. Почему так сделано, непонятно.

Aleksoid1978

Только с 8 поддерживается дочернее - поэтому на 8 и выше бага с "отрывом" OSD от основного окна в принципе не может быть :)
[merge_posts_bbcode]Добавлено: 2016-01-29 12:03:37[/merge_posts_bbcode]

По поводу появления OSD раньше основного окна - подтверждаю, смог таки воспроизвести. Проблема из-за того что при разворачивании даже пока само окно еще не развернулось - все функции для получения его размера и координат сообщают именно положение и размер такой, какой будет после разворачивания. Как такое побороть - не имею понятия :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

Цитата: Aleksoid1978Только с 8 поддерживается дочернее
Ага, щас.
ЦитироватьWindow Styles
...
WS_CHILD
...
Minimum supported client :   Windows 2000 Professional [desktop apps only]

Aleksoid1978

Ты смотри связку с другими флагами. Я не помню с каким точно,  может на прозрачность.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

Aleksoid1978
В общем прозрачность для дочерних окон нормально работает только начиная с 8-ки. До этого все через костыли пытались реализовывать.
https://habrahabr.ru/post/247397/
http://rsdn.ru/forum/winapi/4228837.all

Aleksoid1978

Ну как я и говорил. А т.к. окно не дочернее а Popup - вот и проблемы с ним :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215