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

» Media Player Classic - HomeCinema (MPC-HC)

Автор: Silent_Rain
Дата сообщения: 08.01.2010 17:06

Цитата:
кстати, почему вы не смотрите свои dvd в стандартном wmp12 под семеркой? там и dxva и маркеры и картинка нормальная


Потому что я признаю только один видео-плеер, и имя ему Media Player Classic Home Cinema!
Ну, привык я к нему жутко и все мне в нем нравится. Все сделано удобно и для людей. А все эти WMP12, WinDVD, PowerDVD и прочая ересь делается лишь бы бабла срубить.
Сейчас вот приходится штрыкаться то включая DXVA (для просмотра фильма/концерта/клипов и т.д.), то выключая (для изучения меню на DVD). Немножко напрягает, тем более учитывая той факт, что в том самом PowerDVD (да и любом другом платном плеере, и даже в убогом WMP12) одновременно и маркеры отображаются, и DXVA работает
Автор: MILES
Дата сообщения: 08.01.2010 20:05
Silent_Rain
Я тебя понимаю и сочувствую. Но как говорит нам древняя восточная мудрость: "Если все время говорить слово мёд, во рту сладко не станет". Поэтому иди сюда:
http://sourceforge.net/apps/trac/mpc-hc/report/9
Смотри, есть ли желаемая тобой фитча в тикетах, если нет вноси ее. Приоритеты все равно главный расставляет, как говориться делать будет нечего, кто нибудь и займется. Тут, с этим, пока все равно никто не поможет.
Автор: xaositec
Дата сообщения: 08.01.2010 20:26
Проблема.

Смотрю ДВД. При отключенном встроенном декодере MPEG2 подрубается системный Microsoft DTV-DVD Video Decoder. Проблема в том, что перестают отображаться сабы. Вообще. При этом любой другой проигрыватель, в том числе и те, которые используют системный декодер, сабы видит.

Сначала подумал, что опять где-то перемудрил с кодеками, снёс всё, прошёлся по системе CCleaner'ом, поставил один только MPC - никакого эффекта. Кто что может посоветовать, чтобы сабы вернуть?

Смотреть со встроенным декодером не могу, т.к. видео интерлейснутое, а ни одного приемлемого по качеству изображения варианта деинтерлейса не нашёл.
Автор: V0lt
Дата сообщения: 08.01.2010 20:46
xaositec
как альтернатива
ffdshow->Конфигурация видеодекодера->Кодеки->MPEG2=libmpeg2 + галка "DVD декодирование"
ffdshow->Конфигурация видеодекодера->Вывод->Аппаратный деинтерлейс

Добавлено:
по сути это будет аналогом встроенного MPEG-2 декодера с включенной галкой "Установить флаг чересстрочности в вывод", только, как я заметил, ffdshow корректнее работает.
Автор: XDron
Дата сообщения: 08.01.2010 21:20
Aleksoid1978
В добавление к предыдущему:
улучшение работы с интерлейсным выводом (postno=296)
дополнение к нему (postno=360)
(лучше не нажимать на ссылки, а подводить курсор к знаку вопроса после нее.)

сделал, чтобы AUTO-HDMI срабатывало при каждой смене медиа-контента. .
Будь-то в плайлисте, или просто при открытии нового файла.

Для этого нужно оформить смену режимов как отдельную процедуру.
В [MineFrame.h]
после
void OpenSetupWindowTitle(CString fn = _T(""));

добавить
------------------------------------------------
void ChangeMonitorMode();
------------------------------------------------

в [MineFrame.cpp] в
Заменяем большой кусок
-----------------------------------------------------
dispmode& dm = AfxGetAppSettings().dmFullscreenRes;
m_dmBeforeFullscreen.fValid = false;

if(dm.fValid && fSwitchScreenResWhenHasTo)
{
....
}
------------------------------------------------------

на проверку с простым вызовом функции
-------------------------------------------------------
if(AfxGetAppSettings().dmFullscreenRes.fValid && fSwitchScreenResWhenHasTo) ChangeMonitorMode();
-------------------------------------------------------

После описание функции CMainFrame::ToggleFullscreen
вставляем описание новой функции (вся структура AppSettings нафиг не нужна, вытаскиваем оттуда только dmFullscreenRes и f_hmonitor)
-------------------------------------------------------------------------
void CMainFrame::ChangeMonitorMode()
{
dispmode& dm = AfxGetAppSettings().dmFullscreenRes;
CStringW mf_hmonitor = AfxGetAppSettings().f_hmonitor;

// Keep current settings of changed monitor Запоминаем текущие настройки изменяемого монитора
GetCurDispMode(m_dmBeforeFullscreen, mf_hmonitor);
m_dmBeforeFullscreen.fValid=false; //
// If not AUTO-HDMI mode
if (dm.freq > 0)
{
SetDispMode(dm, mf_hmonitor);
m_dmBeforeFullscreen.fValid=true; //Setting was changed смена параметров была
}
// If AUTO-HDMI mode
else
{
LONGLONG m_rtTimePerFrame = 1;
// if ExtractAvgTimePerFrame isn't executed then MediaFPS=10000000.0,
// dm1.freq=10000000 and SetDispMode isn't executed too.
BeginEnumFilters(pGB, pEF, pBF)
{
BeginEnumPins(pBF, pEP, pPin)
{
CMediaTypeEx mt;
PIN_DIRECTION dir;
if(FAILED(pPin->QueryDirection(&dir)) || dir != PINDIR_OUTPUT
|| FAILED(pPin->ConnectionMediaType(&mt))) continue;
ExtractAvgTimePerFrame (&mt, m_rtTimePerFrame);
if (m_rtTimePerFrame == 0) m_rtTimePerFrame=1;
}
EndEnumPins
}
EndEnumFilters
double MediaFPS = 10000000.0 / m_rtTimePerFrame;
dispmode dm1=dm;
dm1.freq = (int)(MediaFPS + 0.5);
if (dm.freq == -1)
{
if (dm1.freq == 24 || dm1.freq == 25 || dm1.freq == 30)
{
SetDispMode(dm1, mf_hmonitor);
m_dmBeforeFullscreen.fValid=true; //Setting was changed смена параметров была
}
}
if (dm.freq == -2)
{
if (dm1.freq == 24 || dm1.freq == 25 || dm1.freq == 30)
{
if (dm1.freq == 25) dm1.freq = 50;
if (dm1.freq == 30) dm1.freq = 60;
SetDispMode(dm1, mf_hmonitor);
m_dmBeforeFullscreen.fValid=true; //Setting was changed смена параметров была
}
}
}
}
---------------------------------------------

Это была только присказка, а сказка вот:
В [MineFrame.cpp] в самом конце описания функции CMainFrame::OpenMediaPrivate(CAutoPtr<OpenMediaData> pOMD)
перед
PostMessage(WM_KICKIDLE); // calls main thread to update things
Вставляем
---------------------------------------
if (AfxGetAppSettings().dmFullscreenRes.fValid && m_fFullScreen) ChangeMonitorMode();
---------------------------------------

После открытия медиа-файла проверяется задействована ли фича смены параметров монитора и если прога в полноэкранном режиме, то вызывается команда на смену параметров монитора. Есть только единственный маленький минус - после проигрывания последнего файла выставляются параметры для частоты предпоследнего файла. Чтобы было вообще все шоколадно, можно сделать в настройках смены режимов еще один комбобох с выбором дефолтных настроек, в которые будут сбрасываться настройки при закрытии программы.
Автор: xaositec
Дата сообщения: 08.01.2010 21:36
Спасибо! Практически неотличимо! Встроенный MPEG2 декодер выдавал крайне нехорошую картинку, рад, что ему нашлась адекватная замена.

Чисто из любопытства интересуюсь - а что не так с системным декодером?
Автор: V0lt
Дата сообщения: 08.01.2010 22:05
xaositec

Цитата:
а что не так с системным декодером?

Имхо, рендеринг DVD-шных сабов как-то завязан на декодере. Например, встроенный движок при этом вообще неактивен и по началу непонятно, откуда субтитры? Но в настройках строенного декодера можно найти опцию "Всегда отображать принудительные субтитры", что наводит на мысль. Похожую опцию я еще в каком-то MPEG-2 декодере видел.
Автор: I0PPP
Дата сообщения: 08.01.2010 22:12
xaositec
Цитата:
Чисто из любопытства интересуюсь - а что не так с системным декодером?

Да всё с ним так. Просто надо пояснять, с чем и на чём ты юзаешь плеер - хард энд софт.
В драйверах ATI, в AVIVO, есть своя настройка деинтерлейса, может быть, надо было её поменять?
Автор: V0lt
Дата сообщения: 08.01.2010 22:19
I0PPP

Цитата:
В драйверах ATI, в AVIVO, есть своя настройка деинтерлейса

у него на системном декодере нет проблем с интерлейсом, а есть проблема с сабами.
Автор: xaositec
Дата сообщения: 08.01.2010 22:22
Windows 7 Professional, 64-битная. Последний MPC сегодняшней сборки... С софтом вроде бы всё?

Хард... думаю, интерес будет представлять только видеокарта, GeForce 8600M GT. Настройки по умолчанию, обратная телекинопроекция отключена (если она на что-то влияла).

Я ничего не забыл? Думаю, для сабов мой хард не актуален.

Я тут ещё на 16-й странице вопросик оставлял по поводу нового рендерера. На форуме со вчерашнего дня, поэтому прошу меня тапками не бить за то, что не могу найти, как оставить ссылку на конкретный пост. Меня интересует, откуда берутся рывки в изображении. Я, конечно, многого не понимаю в получившемся графике, но мне кажется, он выводит Frame Rate под 50 FPS вместо положенных 30. Если я ошибаюсь, то где, если нет, то почему так происходит?
Автор: I0PPP
Дата сообщения: 08.01.2010 22:27
V0lt

Цитата:
у него на системном декодере нет проблем с интерлейсом, а есть проблема с сабами.

Я отвечал по поводу гнусностей с картинкой с системным декодером из-за плохого деинтерлейса.

Добавлено:
xaositec
Система у меня такая же, единственное различие - больше полугода тому назад перешёл на ATI c GeForce 8800 и, картинка на ATI мне нравится больше!
Плюс к этому - безграничные возможности по числу вариантов при настройке качества видеоизображения не только в плеере, но и в драйвере!
Не столько времени смотришь кино, сколько настраиваешь.
Автор: xaositec
Дата сообщения: 08.01.2010 22:33
С системным декодером как раз всё прекрасно, проблемы со встроенным в МРС. Если поможете превратить его в конфетку - буду признателен.

Я знаю про возможности настройки ATI, у самого на втором компьютере стоит. Но сейчас-то у меня лаптоп, тут никаких вариантов ни с дисплеем, ни с видеокартой нет.
Автор: I0PPP
Дата сообщения: 08.01.2010 22:36
xaositec
Если перечитаешь последние мои три-четыре поста, то я как раз об этом здесь и пишу - с системным Win7 x64 всё окей, проблема со встроенным в MPC-HC x64.
Автор: Contru
Дата сообщения: 09.01.2010 01:13
Господа, подскажите. При воспроизведении видео неактивны шейдеры под WinXP (видеокарта ATI). В WinVista и Win7 шейдеры активны (видеокарта Nvidia).
Автор: rodrigo2
Дата сообщения: 09.01.2010 01:39

Цитата:
Господа, подскажите. При воспроизведении видео неактивны шейдеры под WinXP (видеокарта ATI). В WinVista и Win7 шейдеры активны (видеокарта Nvidia)

Поставьте другой рендерер, к примеру - VMR9 renderless.

Aleksoid1978
XDron
Касательно автоматической установки частоты....
Предлагаю следующее:
1. Сейчас в списке видеорежимов авторежимы представлены так:

Вместо этого предлагаю тупо писать:

Код: 1920x1080 32bpp AUTO
Автор: Aleksoid1978
Дата сообщения: 09.01.2010 02:00
XDron

Первое - может нужно сделать перед сменой разрешение проверку текущего, а вдруг уже такой режим установлен, значит ничего менять не надо, самое лучшее сделать это в самой функции смены разрешения
void SetDispMode(dispmode& dm, CString& DisplayName)

в начале вызвать GetCurDispMode, проверить разрешение и если не изменилось - выйти.

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

Добавлено:
rodrigo2

Конечно это было бы само то, но есть одно но - надо прописывать не соответствие fps и частот, а соответствие fps и разрешение+частоты, я думаю понятно почему ... не каждое разрешение держит любой диапазон частот

Автор: I0PPP
Дата сообщения: 09.01.2010 02:19
Aleksoid1978
Цитата:
И второе - делай все таки не постами на форуме,а .diff и на почту или заливай и в личку пиши. Так очень неудобно, и из-за нехватки времени я просто игнорирую твой код, ты уж извени.

Совсем не понял, к чему это было написано, что "неудобно"? Глупость какая-то, неужели copy&paste в Windows не работает?

Цитата:
Добавлено:
rodrigo2

А тут вообще ничего нет - нет никаких слов, даже в виде бреда.

О, что-то проявилось.
И даже что-то дельное.


Автор: rodrigo2
Дата сообщения: 09.01.2010 03:07
I0PPP
Ты о чем?
Пиши яснее.

Aleksoid1978

Цитата:
Конечно это было бы само то, но есть одно но - надо прописывать не соответствие fps и частот, а соответствие fps и разрешение+частоты, я думаю понятно почему ... не каждое разрешение держит любой диапазон частот

Согласен, но прописывать каждое разрешение - запариться .
Просто можно было бы так сделать (сорри, если сморозю бред - никогда не энумерейтил видеорежимы):
1. Энумерейтим список режимов.
2. Добавляем авторежимы с постфиксом AUTO из списка доступным разрешений.
3. Пользователь выбирает некое разрешение с АВТО.
4. Прописывает для выбранного разрешения нужные ему частоты - на свой страх и риск: он должен знать, что некая частота ХYZ доступна на данном разрешении. Понимаю, что эти частоты будут не одни и те же для разных разрешений - так ведь настройка выполняется ОДИН раз - и именно для искомого разрешения.
5. При запуске видео выполняется попытка установки видеорежима. Рискну предположить, что соотв. функция API возвращает флаг ошибки в случае неудачи - его и отобразим в форме кукиша, тогда пользователь смекнет, что он задал не ту частоту.
Автор: I0PPP
Дата сообщения: 09.01.2010 03:17
rodrigo2
Там, первоначально, было обращение к тебе, но никакого текста не было. Мне это показалось странным.
Автор: WildGoblin
Дата сообщения: 09.01.2010 03:18
I0PPP
Уважаемый Йоппп, тебя надолго отпустили?
Автор: I0PPP
Дата сообщения: 09.01.2010 03:30
rodrigo2
Тут, недавно, запускал игрушку Sin 1999 года. Так вот, она при запуске тестирует видеорежимы дисплея и выставляет оптимальные - на её взгляд, которые потом можно изменить в настройках игры. Наблюдение за этим тестированием - не для слабонервных!
Вот бы и в MPC-HC сделать что-нибудь типа такого.

Добавлено:
WildGoblin
Уважаемый ДикийГоблин, неужели ты по мне скучал?
Автор: WildGoblin
Дата сообщения: 09.01.2010 03:43
I0PPP
Ночей не спал, всё думал крепко ли тебя привязали - оказалось не напрасно беспокоился!
Автор: I0PPP
Дата сообщения: 09.01.2010 03:49
WildGoblin
Хм, да ты пророк и ясновидец. Но, теперь-то, можешь спать спокойно!
Автор: Aleksoid1978
Дата сообщения: 09.01.2010 03:51
rodrigo2
Да - список доступных для выбранного устройства вывода(монитор, телевизор) получается автоматом, ничего руками прописывать не надо, так же как и не надо прописывать частоты для режимов - они получаются вместе со списком режимов.
Т.е. в идеале должно быть так :

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

I0PPP
А если мы такие умные - возьми эти куски кода, внеси в существующий, протести чтобы все корректно работало(х86 и х64 версии) и можеш сам выложить .diff для текущей ревизии.

Автор: I0PPP
Дата сообщения: 09.01.2010 04:06
Ладно, проехали.
Просто меня очень неприятно удивило твоё ультимативное требование к ИксДрону обеспечить тебе комфортные условия - под угрозой неучитывания его изменений в коде, хотя они и идут на пользу плеера и, тем самым, всем нам - простым пользователям MPC-HC.
Я счёл это за начало развития у тебя "звёздной болезни".
Автор: Aleksoid1978
Дата сообщения: 09.01.2010 04:15
I0PPP

Цитата:
ультимативное требование


Во первых - я описал причину такого "требования", и во вторых - тут никто никому не должен, согласен ??? Ты же не знаеш как и когда я пишу код для MPCHC, а попытаться ругаться и наезжать все умеют.
Автор: rodrigo2
Дата сообщения: 09.01.2010 04:23
Aleksoid1978

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

Да, именно так.
Просто я у себя на 1489 банально вообще не вижу ни одной строчки со словом АВТО - даже проверить не могу....
Все-таки - хорошо бы сделать возможность РУЧНОГО выбора нужных частот.
А ведь есть еще мониторы с частотой 120 Гц - что кратно 24 Гц. Соответственно, юзер захочет и 120 выбрать.

I0PPP
ОК, не понял просто .
Автор: I0PPP
Дата сообщения: 09.01.2010 04:24
Aleksoid1978
Да знаю я, что у тебя двое маленьких детей и работаешь ты на кухне . Тем не менее, людей, которые пытаются и стараются тебе помочь, не надо обижать - ты же ведь, уверен, не знаешь жизненных обстоятельств ИксДрона.
Автор: rodrigo2
Дата сообщения: 09.01.2010 04:26
I0PPP

Цитата:
Вот бы и в MPC-HC сделать что-нибудь типа такого.

Теоретически я это вижу так: если в списке режимов есть частоты 50 и 75 Гц - тогда автоматом для 25Гц надо выбирать бОльшую частоту, т.е. 75.
Но все равно РУЧНОЕ вмешательство было бы весьма полезным
Автор: I0PPP
Дата сообщения: 09.01.2010 04:37
rodrigo2
Как конкретно реализовать - я не знаю. Может быть, плееру как-то учитывать информацию МедиаИнфо о видеоматериале и с её учётом, и с учётом параметров дисплея-монитора выставлять нужный кодек (с нужным рендерером), и нужный видеорежим?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Acronis True Image, Backup & Recovery и Seagate Disc Wiz


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