Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 7
1

Что за баг может быть такой в VLC Player 2.1.2?

13.09.2014, 16:32. Показов 942. Ответов 4
Метки нет (Все метки)

Здравствуйте! Много говорить не буду - только по сути. Создаю окно через WinAPI. Его клиентскую область использую для вывода видео через OpenGL в VLC Player, звук этот плеер выводит через DirectSound. Всё нормально работает. Но! Если количество пикселей, которое занимает эта самая клиентская область окна полностью совпадает с разрешением экрана, то видео не видно вообще, звук идет нормально и если повторно нажимать на Play, то всё равно видео не будет видно, окно не перерисовывается.

Но я вскоре заметил, что если создать WS_POPUP окно (без всяких рамок и заголовков) для полноэкранного режима при разрешении экрана скажем в 1024х768 пикселей, но окно сделать на один пиксель больше/меньше (по ширине, по высоте - это вообещ без разницы, главное, чтобы размер окна не совпадал с разрешением экрана: хоть 1025х768, хоть 1024х769), то и видео видно, и звук слышен, и полноэкранный режим сохраняется.

Но всё таки неправильно это, инкрементировать габарит окна только для того, чтобы видео было видно. Кто что может посоветовать? Этот баг наблюдается в VLC Player начиная с самых ранних версий и вот в 2.1.2 он до сих пор присутствует.
Заранее спасибо.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.09.2014, 16:32
Ответы с готовыми решениями:

DVD player не читает диск. что это может быть?
dvd player не читает диск. что это может быть? (на компе идёт без проблем)

Может быть ли в Delphi 7 баг с системой Quick reports?
Добрый день. По ходу компиляции программы возник такой вопрос. Обнаружил этот сбой совершенно...

Почему не может быть такой функции?
ofstream input_file(str1) ; такой строкой кода я открываю файл. ofstream - тип обекта ...

Как вообще такое может быть, это просто супер баг какой-то
Есть программа, результат выполнения отладочных строк procedure spervogo; var counter1,...

4
2491 / 1300 / 217
Регистрация: 26.02.2009
Сообщений: 5,696
Записей в блоге: 5
16.09.2014, 12:55 2
Может как-то неправильно инициализация проходит с идентичными разрешениями? Кто делает инициализацию окна OpenGL и Есть ли код?

Добавлено через 2 минуты
Может как-нить "оптимизация в драйверах"?
0
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 7
16.09.2014, 13:38  [ТС] 3
Проблема как раз в том, что исходного кода этой DLL (libglwin32_plugin.dll - так она именуется в комплекте VLC) нет. Я пробовал дисассемблировать ее, то вроде там стандартная инициализация (типа вначале ChoosePixelFormat с флагами PFD_DOUBLEBUFFER + PFD_DRAW_TO_WINDOW + PFD_SUPPORT_OPENGL, потом SetPixelFormat, затем wglCreateContext, wglMakeCurrent). Я у себя в движке точно такую же инициализацию провожу, вроде тут ошибки не должно быть.

Но меня наводит на подозрение тот факт, что эта DLL использует 2 WinAPI-функции работы с монитором (это MonitorFromWindow и следом за ней сразу вызов идет GetMinotorInfoW) и вот в них, мне кажется где-то и лежит этот баг. Читал про них в MSDN, то там упонимается о том, захватывает ли экран полностью окно или нет. Я попробовал поменять параметры, но видео все равно ни в какую не хочет показываться.

Главное, если поставить фокус на какое-то другое окно и обратно перейти на это, то видео может появится! Магия!
0
2491 / 1300 / 217
Регистрация: 26.02.2009
Сообщений: 5,696
Записей в блоге: 5
16.09.2014, 14:27 4
Цитата Сообщение от vnovikov89 Посмотреть сообщение
Но меня наводит на подозрение тот факт, что эта DLL использует 2 WinAPI-функции работы с монитором (это MonitorFromWindow и следом за ней сразу вызов идет GetMinotorInfoW) и вот в них, мне кажется где-то и лежит этот баг.
MonitorFromWindow достаёт HMONITOR
GetMinotorInfo достаёт инфу о мониторе через HMONITOR
По-моему нормальная последовательность.
0
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 7
16.09.2014, 14:42  [ТС] 5
Верно, но зачем возникает вопрос? Вроде как VLC Player может вопроизводить одно видео на нескольких смежных мониторах, но ведь это по умолчанию не используется. Все, что ему нужно, это дескриптор окна, который передается без проблем, имея его, он через GetWindowLong/SetWinfowLong достает информацию о размерах, положении окна для того, чтобы настроить и вывести видеопоток.

Кстати, видимо потому что функции MonitorFromWindow и GetMinotorInfo не используются, поэтому я и не засёк изменений, когда менял их параметры. Значить, ошибка где-то в другом труднодоступном месте.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2014, 14:42

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Сколько вариантов может быть такой посадки деревьев?
Садоводу надо посадить 7 груш, 8 яблонь и 4 вишни в двух садах. Сколько вариантов может быть такой...

Подскажите как может быть устроен такой датчик...
http://www.ebay.som/itm/POLE-TANK-SENDER-Fuel-wotir-Level-Liquid-Sensor-Gauge-Meter-250mm-length-/36...

Нужен такой калькулятор, самый простой код, который только может быть

VLC Player bat
Добрий день! Очень нужна помощь. Кто знает, как сделать автоматический перезапуск VLC Player или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.