Ru-Board.club
← Вернуться в раздел «Программы»

» Media Player Classic - Home Cinema (MPC-HC)

Автор: judelaw
Дата сообщения: 19.10.2011 10:01
Contru

Цитата:
падает при воспроизведении видео VC-1

Ну а раньше - черный экран. Не в лоб так по лбу.

Добавлено:
MILES

Цитата:
Это я про линковку

Ну вроде линковка работает с AV, автор прикрутил и допиливает сейчас. Я не в курсе, не особо нужно, а вернее вообще не нужно лично мне. Так что проверь.
Автор: Contru
Дата сообщения: 19.10.2011 11:53
judelaw

Цитата:
Ну а раньше - черный экран.

Есть такое, но редко. А сейчас со всеми блюриками и ремуксами падает (вся трилогия Борна, Игры разума, Зеленая Миля, Мертвый штиль, Ураган, Меняющие реальность, BBC. Планета Земля (все четыре части) и т. д...
Автор: judelaw
Дата сообщения: 19.10.2011 12:17
Contru
да, кое что поломано. Но я к тому, что и раньше смысла особого юзать мрс декодер или ффдшой для вц1 не было, теперь и подавно.
Подключать нужно то, с чем хорошо идет. У меня из встроенных фильтров - может один два использую. Остальные, как не печально, отключены, до лучших времен, которые вряд ли когда то настанут.
Автор: Nichron
Дата сообщения: 19.10.2011 12:27
judelaw
А чем VC1 рекомендуете декодировать?
Автор: judelaw
Дата сообщения: 19.10.2011 13:05
Nichron
меня Cyberlink не подводил. Его и подключаю. Аппаратно ес-но.
Автор: Aleksoid1978
Дата сообщения: 19.10.2011 13:21
У кого Nvidia - юзайте LAVVideo, включите CUVID - поддерживает DXVA для H264, VC1 и MPEG2.
Автор: vitsat
Дата сообщения: 20.10.2011 02:29
judelaw

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

Проверяем, материмся....


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

У меня, как вы догадались, включены две галки : "Альтернативный режим" и "Разрешить в окне"
Восстановление режима, бывшего до запуска при выходе из программы ПРОИСХОДИТ при СНЯТЫХ обеих галках "Default/Other" и "Установить по-умолчанию при выходе из программы", но НЕ происходит только при ВКЛЮЧЕННОЙ "Default/Other".
Логичнее возвращать режим, бывший до запуска при включенной "Установить по-умолчанию при выходе из программы" и выключенной "Default/Other", а не возвращать (оставлять тот, что применялся последний раз к видео) при снятых обеих этих галках. Ведь одновременное включение галок "Default/Other" и "Установить по-умолчанию при выходе из программы" отрабатывает логически правильно - в любом случае восстанавливается режим, указанный в нулевой строке "Default/Other".
Автор: SamLab
Дата сообщения: 20.10.2011 06:51
Media Player Classic HomeCinema+ BE+ 1.5.3.3785 (x86/x64) от Exodus
http://mpc-build.googlecode.com/svn/trunk/mpc-hc/mpc-hc_rev3785/

Цитата:
Media Player Classic HomeCinema+:
Updated LibMp3Lame to latest revision
Автор: judelaw
Дата сообщения: 20.10.2011 08:02
vitsat

Цитата:
Восстановление режима, бывшего до запуска при выходе из программы ПРОИСХОДИТ при СНЯТЫХ обеих галках "Default/Other" и "Установить по-умолчанию при выходе из программы", но НЕ происходит только при ВКЛЮЧЕННОЙ "Default/Other".

восстановление режима должно происходить в любом случае с галкой "Установить режим при выходе из программы", но в зависимости от галки на строке "Default/Other" режим будет применятся либо дефолтный, что был до запуска, либо тот что указали в этой нулевой строке "Default/Other".
Без галки на "Установить режим при выходе из программы" - режим возвращаться не должен.

Добавлено:
как проверить....

для начала выставь везде различные режимы: в драйвере один, для правила видео - другой, а для нулевой строки - третий. Я например выставил: 59Гц-в системе, для 23,976 видео - 75Гц, a на Default\other - 60Гц.
Запускаем видео - режим должен поменяться на 75Гц (срабатывает правило для диапазона 23,500-23,981). Закрываем плеер - режим должен поменяться на 60Гц, так как стоит галка на "Restore DM on exit from...Program" и в то же время мы принудительно указали в нулевой строке (галка), что нужно не возвращать режим какой был, а установить какой укажем. А указали мы 60Гц. Если галку с нулевой строки убрать - должен будет применяться режим 59Гц (что был).
При следующем запуске плеере, дефолтный режим уже будет 60Гц, а не 59Гц. Но если у нас что-то в драйвере слетит и режим поменяется сам по себе, то нулевая строка опять принудительно выставит по дефолту 60, как и указано.
Вроде то что ты хотел.
Автор: judelaw
Дата сообщения: 20.10.2011 10:42
vitsat
да, нашел косяк - исправлю
Автор: vitsat
Дата сообщения: 20.10.2011 10:52
judelaw, я и указал, что с двумя галками или с только одной на "Установить по-умолчанию при выходе из программы" отрабатывает правильно.
Не понимаю логику возврата в режим драйвера при снятых обеих галках "Default/Other" и "Установить по-умолчанию при выходе из программы" ...


Цитата:
Вроде то что ты хотел.

Я только этот режим и хотел. Совершенно не понимаю, зачем возвращаться в какой-то мифический режим, бывший до запуска плеера... Для чего плодить кучу вариаций, а вместе с ними разгребать "косяки" ?
Если уж куда-то возвращаться, то только в режим по-умолчанию - и точка. И этот режим должен всегда совпадать с тем, который запомнен в свойствах экрана (в драйвере). Как константа. Это сильно упростит разработку.
Приведу пример из жизни. Есть три режима : 1080p50 - константа по-умолчанию для спутникового ТВ , режимы 1080p24 и 1080p60 для соответствующих фильмов. Какой смысл в возврате в мифический предыдущий режим, к примеру, в 1080p24 , если в этом режиме даже курсор тормозит ? А вот железный (надёжный) возврат к режиму по-умолчанию 1080p50 при закрытии MPC-HC гарантирует плавный просмотр HDTV на DVBViewer, скорость курсора также остаётся приемлемой.

Автор: judelaw
Дата сообщения: 20.10.2011 10:55

Цитата:
Не понимаю логику возврата в режим драйвера при снятых обеих галках "Default/Other" и "Установить по-умолчанию при выходе из программы" ...

Это косяк, баг. исправлю.

Добавлено:

Цитата:
Если уж куда-то возвращаться, то в режим по-умолчанию - и точка. И этот режим должен всегда совпадать с тем, который запомнен в свойствах экрана (в драйвере).

так и было всегда. Это ты захотел принудительно выставлять свой режим, якобы потому что в драйвере слетает режим.
Могу вообще убрать нулевую строку из логики выхода из программы. Как было изначально и так должно быть в принципе.
Автор: vitsat
Дата сообщения: 20.10.2011 11:12

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

Согласен. Но поверь - были косяки с невозвратом в драйверный умолчательный режим. То ли от мёртвых зависонов плеера, то ли от ошибочного срабатывания неправильной частоты (до внедрения диапазонов + проверки по MI это нередко случалось). Поэтому достаточно было добавить "принудиловку" в виде этой галки на нулевой строке "Default/Other" . Получается что-то вроде двойной подстраховки.
Автор: judelaw
Дата сообщения: 20.10.2011 11:37
vitsat

Цитата:
Поэтому достаточно было добавить "принудиловку" в виде этой галки на нулевой строке "Default/Other"

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

Раньше, с галкой на "Установить по-умолчанию при выходе из программы" применялся "Временный" метод, а без галки - "Динамический".
Теперь же, из-за этой гребанной нулевой строки - ес-но и вся логика поменялась и нужен жесткий контроль в коде OnClose. C нулевой строкой мы можем использовать функцию только в варианте "Динамический". Ибо для винды возврат по-дефолту - это то что было ДО смены режима.

Добавлено:

Цитата:
Какой смысл в возврате в мифический предыдущий режим, к примеру, в 1080p24 , если в этом режиме даже курсор тормозит ?

Это имеет смысл, когда мы смотрим кучу фильмов с 23,976, закрывая/открывая постоянно плеер. И не хотим лишний раз дергать частоту экрана туда/сюда. Галку снял и все дела.

Все это конечно лишь ради "угодить всем". Имхо, достаточно одного правила: запустил файл - поменяли режим - вышли из проги - винда вернула на место. ВСЕ. Не нужны ни оция выхода из программы, ни выхода из полноэкранного режима, ни опция нулевой строки Default/Other. Бестолковщина все это.
Автор: Bhgvd
Дата сообщения: 20.10.2011 16:58
Разработчикам

При использовании режима "/slave" программа перестаёт принимать сообщения 0x6ABE51. Так реализована OnCopyData в MainFrm.cpp. Нельзя ли это поправить?

Спасибо.
Автор: V0lt
Дата сообщения: 20.10.2011 17:35
Bhgvd
Я без понятия для чего сообщение 0x6ABE51, но в коде CMainFrame::OnCopyData явно указан запрет. Это никак не может быть ошибкой.
Автор: vitsat
Дата сообщения: 20.10.2011 17:44

Цитата:
Все это конечно лишь ради "угодить всем". Имхо, достаточно одного правила: запустил файл - поменяли режим - вышли из проги - винда вернула на место. ВСЕ. Не нужны ни оция выхода из программы, ни выхода из полноэкранного режима, ни опция нулевой строки Default/Other. Бестолковщина все это.


Цитата:
ты не понимаешь. Есть два варианта послать команду сменить режим - функция ChangeDisplaySettingsEx в режиме смены "Динамически" и "Временно".

Хорошо. Сделаем вывод, что из-за моего непонимания принципа возврата в режим по-умолчанию, пришлось слишком усложнить интерфейс лишними опциями. Я конечно, быстро врубился и приспособился, но народ не осилит такое положение вещей. Давай остановимся на двух базовых опциях : "Переключать режим монитора в полноэкранном / оконном режиме" и "Установить режим по-умолчанию при выходе из программы" / "Не возвращаться из текущего режима в режим по-умолчанию при выходе из программы". И не важно, как будет называться вторая опция, лишь бы работала так же надёжно, как в AutoFrequency при снятой галке "Do not return to the original frequency at the end of the reading". Я перед внедрением усовершенствованной "автопереключалки" в MPC-HC плотно сидел на AutoFrequency и был невероятно доволен её супер-стабильностью (хотя бы относительно последнего билда). Она и сейчас у народа прекрасно возвращает режим по-умолчанию без малейшего сбоя. По какому принципу там организован этот возврат to the original frequency , я не знаю - вам это лучше виднее.
Короче, вам решать : или подкорректировать текущее положение дел, или ограничиться двумя упомянутыми базовыми опциями, подрезав кучу лишнего.
P.S. Поймите только одно, что я не со зла вам нервы трепал с этим возвратом в режим по-умолчанию, заданный пользователем в свойствах экрана. Согласитесь, что до вашего "перетрахивания" опции автопереключения, плеер частенько намертво зависал во время срабатывания, на некоторых видеороликах неправильно определялась частота и т.д., и т.п. Буквально у всех моих знакомых - пользователей HTPC послетал режим по-умолчанию, ранее заданный мной в свойствах экрана. Поэтому нарекания скопились очень серьёзные. Но в последних ваших тестовых билдах у меня прекратились мёртвые зависоны и падения плеера, частота стала определяться на 100% верно, благодаря проверке fps по данным MI . Давайте спокойненько и длительно погоняем пару тестовых билдов : ваш текущий после правки мелких логических недочётов и предложенный мной упрощённый вариант. В упрощённом нужно альтернативный режим с MI сделать основным - в чём его альтернативность, если он единственно правильный ? ; "Переключать режим экрана в полноэкранном / оконном режиме " разместить рядом. В качестве кандидата на упрощённый билд возьмём тестовый 1.5.3.3758 , галку "Use MI" убираем, т.к. делаем этот режим основным ; внизу оставляем только "Восстанавливать режим по-умолчанию при выходе из программы" , а никчемную "...при переходе в оконную форму" перемещаем чуть выше таблицы режимов и переназначаем на "Переключать режим монитора в оконном режиме", где она мирно уживётся с уже существующей "Переключать режим монитора в полноэкранном режиме". Если переключение в полноэкранном / в оконном режимах как-то можно организовать в одной строке, то нижнюю опцию "...при переходе в оконную форму" тогда можно оставить.
Автор: MiholBeaR
Дата сообщения: 20.10.2011 18:33
judelaw
vitsat
Только оставьте, плиз, возможность возврата к дефолтным фпс при выходе из полноэкранного режима в оконный при окончании воспроизведения.

Эм... может это излишество... Нельзя ли куда-нить в меню (или контекстное меню) втыкнуть ту самую опцию "Запускать файлы в полноэкранном режиме" ? Посмотрел че-нить рабочее в окне, потом тыкнул в меню и следующее кино уже в полноэкране открывается со всеми прибамбасами. Кончилось кино, плеер перешел в окно, фпс вернулась к дефолту, галочку в меню снял и снова можно рабочие файлы запускать в окне. Не надо в настройки лезть поставить/снять эту галку. Просто приходится часто лазить (мне, не знаю как другим) в настройки именно за этим.
СПС
Автор: vitsat
Дата сообщения: 20.10.2011 19:00
MiholBeaR, твои пожелания легко решаются при совместном использовании MPC-HC и AutoFrequency Можно таких делов наворотить - под любой каприз.
Автор: judelaw
Дата сообщения: 20.10.2011 19:22
vitsat

Цитата:
при совместном использовании MPC-HC и AutoFrequency Можно таких делов наворотить - под любой каприз

каких дел, если даже второй файл через AF не открыть?
Автор: vitsat
Дата сообщения: 20.10.2011 19:53

Цитата:
каких дел, если даже второй файл через AF не открыть?

Имеете в виду не срабатывает автопереключение на файлах с разным fps из одной папки при автоматическом переходе по очереди ? Это да... срабатывает только на первом файле и не меняется на остальных... Для какой-нибудь сборки видеоклипов с различными fps срабатывание на каждом файле не повредило бы. Здесь ваше детище держит марочку. Но для контекстного меню и пофайлового (один за сессию) просмотра AutoFrequency вполне сгодится. А ещё можно профилей насоздавать для кучи произвольных плееров и запускать через контекстное.
Но у меня лично сейчас в приоритете MPC-HC, т.к. балдею от автопереключения через его внутренний проводник и посредством контекстного по папке с DVD-содержанием.
Автор: MiholBeaR
Дата сообщения: 20.10.2011 21:44
vitsat
Вот нафига еще AutoFrequency, если можно в МРС-НС просто предусмотреть нормальную пользовательскую возможность настроек логики автопереключалки? Поставить кучу сплиттеров-кодеков и приблуд и потом все это пытаться заставить работать без глюков? Или наставить знакомым, чтобы потом по телефону на пальцах пытаться что-то объяснить как его куда тыкать? Ну не знаю... может мазохистам это и нравится.
Нужен новый механизм переключалки с логикой работы как у старой. Это все. Ничего наворачивать сверху не надобно. А если и наворачивать, то опционально, с галочками для этих "фич".

judelaw
Было бы оптимально для начала просто поменять механизм автопереключалки. Перво-наперво надобно чтобы его одобрили и включили в основной код. Может даже совсем заменили им старый код переключалки.
А потом уже добавлять к нему различные галочки с возможностями изменения логики переключений.
А то сейчас ты стараешься сделать сразу все и много, и главнюкам проекта может не понравится какая-нить мелочь, из-за которой всю твою работу откинут.
Автор: MILES
Дата сообщения: 20.10.2011 22:02
Прошу , посмотреть работу опции " Всегда использовать внешние субтитры как основные" , со встроенными в плеер сплиттерами. В официальной , стабильной версии , 1.5.2.3456 она отрабатывает правильно. В текущей рекомендуемой 1.5.3.3760 , эффекта от нее нет , плеер использует встроенные субтитры. Со внешним же сплиттером (AV , Нally ) , она отрабатывает правильно. Более точно , где сломали я попробую найти позже.

Нашел , в 1.5.3.3509 , еще работает нормально , а в 1.5.3.3514 , уже поломано.

Изменения / Changes (3510-3514):

Change : Improve rev. 3498, do not require Administrator privileges;

roll back changes in rev.3510;

cleanup;

Fixed the subtitle issue described in ticket #970;

Cosmetics:
- move some code out of mplayerc.cpp.
- avoid using IsVistaOrAbove since it makes mpc-hc dependent of the internal video decoder.
- remove unneeded includes.


Ссылка на изменения в ticket #970 :

http://sourceforge.net/apps/trac/mpc-hc/changeset/3513

То есть если точно , сломали в ревизии 3513. Я правда не смог найти , что же просили в ticket #970. Возможно , это побочный эффект.
Автор: judelaw
Дата сообщения: 20.10.2011 22:30
vitsat
MiholBeaR
Механизм поиска Video Frame Rate (fps), логика автопереключения, да и вообще все в целом, в обычном варианте и в моем альтернативном настолько разная, что срастить как-то два в одно вряд ли представляется возможным. Но могут существовать отдельно друг от друга. Задача как бы тупиковая предо мной стоит: с одной стороны понимаю что мой вариант возможно никогда не будет в основном коде (это меня мало волнует, так как для себя стараюсь и, рад буду если пригодится кому-либо еще). С другой стороны понимаю, что если оставить и старый вариант, и добавить свой как альтернативный - то слишком получается перегружено опциями, что приводит к непониманию и куче вопросов. Тем более если угождать сразу всем. Тут даже опытного пользователя можно вогнать в ступор.
Нужно время сесть и спокойно подумать как же сделать просто, понятно, правильно и главное стабильно.
Скорей всего, для начала откажусь (если никто-не против) от :
- установки режима заданного в нулевой строке Defaul/Other при выходе из Программы/Полного экрана. Пусть всегда возвращается дефолтный режим драйвера, как это делается везде, в любых программах и играх. То есть.. было 50Гц - запустили видео, сменился режим на 23Гц - закрыли плеер, частота вернулась на 50Гц как и была.
- Хочу отрубить вообще возможность НЕ возвращать дефолтный режим драйвера при выходе из программы. То есть например есть желание избавиться от: было у нас 50Гц - запустили видео и автосменилась частота на 23Гц - вышли из проги и частота так и осталась 23Гц (Теперь уже она по-умолчанию). Зачем спрашивается такое? Если и понадобится, то крайне редко.
Автор: Aleksoid1978
Дата сообщения: 21.10.2011 01:26
V0lt

Цитата:
Я без понятия для чего сообщение 0x6ABE51, но в коде CMainFrame::OnCopyData явно указан запрет. Это никак не может быть ошибкой.


Ты не прав ... там наоборот идет проверка, и принимается только 0x6ABE51
Автор: judelaw
Дата сообщения: 21.10.2011 01:33
Набросал по быстрому обрезанный вариант:
mpc-hc_x86_r3785_Eng_AF05.7z - http://www.mediafire.com/?vzcrnbe1ixd5xob

только английский и не совместим с прошлой русской dll
на основе 3785 (так уж вышло)

- убрал НЕ Восстанавливать режим
- убрал "Установить режим заданный в нулевой строке Default/Other"
- режим всегда вернется назад при выходе.
Кого не устраивает такой вариант и позарез нужны именно эти выкинутые мной опции?
Автор: vitsat
Дата сообщения: 21.10.2011 03:47
judelaw

Цитата:
Задача как бы тупиковая предо мной стоит: с одной стороны понимаю что мой вариант возможно никогда не будет в основном коде (это меня мало волнует, так как для себя стараюсь и, рад буду если пригодится кому-либо еще). С другой стороны понимаю, что если оставить и старый вариант, и добавить свой как альтернативный - то слишком получается перегружено опциями, что приводит к непониманию и куче вопросов. Тем более если угождать сразу всем. Тут даже опытного пользователя можно вогнать в ступор.

Делай, как можно проще, и именно с твоим новым вариантом. Старый вариант - пережиток прошлого.

Цитата:
- убрал НЕ Восстанавливать режим
- убрал "Установить режим заданный в нулевой строке Default/Other"
- режим всегда вернется назад при выходе.
Кого не устраивает такой вариант и позарез нужны именно эти выкинутые мной опции?

Для начала - самое то. Нужно скорее внедрять в серийку, иначе похерят колоссальный объём труда. Режим "Не восстанавливать..." хорош для компьютерных мониторов 75/72/60 - меньше мельтешни при выходе из плеера. Но я готов пожертвовать собственным эгоизмом в угоду стабильного восстановления в режим по-умолчанию, т.к. для пользователей телевизоров 24/50/60 это гораздо важнее. Погонял последний тестовый билд 1.5.3.3785 - глюков не заметил. Пора внедрять !


Цитата:
на основе 3785 (так уж вышло)

P.S. Сарказм понял. Этот дерьмобилд показывает чёрное поле на высоких ReFrames , на некоторых подобных роликах вешает намертво плеер при навигации... Развалили самый бронебойный DXVA декодер для Win 7... Печально... Пришлось для H.264 закинуть внешний MPC Video Decoder от какого-то рабочего билда.
judelaw, если можно, собери аналогичную тестовую на базе какого-нибудь последнего рабочего билда.
Автор: Aleksoid1978
Дата сообщения: 21.10.2011 06:39
vitsat

Цитата:
Этот дерьмобилд показывает чёрное поле на высоких ReFrames , на некоторых подобных роликах вешает намертво плеер при навигации... Развалили самый бронебойный DXVA декодер для Win 7...


Выложи или дай ссылки на такое.
Автор: Bhgvd
Дата сообщения: 21.10.2011 07:06
V0lt

Цитата:
Я без понятия для чего сообщение 0x6ABE51, но в коде CMainFrame::OnCopyData явно указан запрет. Это никак не может быть ошибкой.

Если одна копия программы уже запущена, то запуск другой копии посылает ей 0x6ABE51 с параметрами командной строки и выходит. На открытие файлов и прочее. Через "slave" многого сделать нельзя, что можно сделать из командной строки. Я думаю, что в OnCopyData его второпях запилили в самую верхнюю строчку (второпях даже до того, что если включен "slave", OnCopyData всегда возвращает TRUE, не проверяя корректность команды), и это всё-таки ошибка - этот режим ещё не очень хорошо проработан. Это, по-моему, это даже не запрет, а нежелание возиться с проверкой типов сообщений.

Aleksoid1978

Цитата:
Ты не прав ... там наоборот идет проверка, и принимается только 0x6ABE51

Да, но перед этим стоит проверка на наличие hMasterWnd, которая всегда выходит при включенном "slave".
Автор: Aleksoid1978
Дата сообщения: 21.10.2011 07:52
Bhgvd

Хочеш - допили, вот и все ...

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196

Предыдущая тема: Opera (часть 21)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.