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

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

Автор: judelaw
Дата сообщения: 19.11.2011 11:05
V0lt
менюхи у тебя не активные по шейдерам.
и есть другие проблемы

Добавлено:
Aleksoid1978

Цитата:
С чего ты взял ???

а у тебя нормально? Я собрал - вылет с дхва. Может криво собрал.... скинь свой вариант.


Добавлено:
V0lt
запусти видео - включи шедер какой-нибудь - выйди из плеера - запусти опять видео (шейдер применен но при открытии диалога чекбоксы сняты). Не запоминает
Автор: V0lt
Дата сообщения: 19.11.2011 12:29
judelaw

Цитата:
Не запоминает

Вижу, буду разбираться.

mpc-hc_3835_shaders_dlg_test2.7z
Более компактный диалог шейдеров. Еще не доработан...
Тут комбо и кнопки добавить/удалить находятся снизу. Может быть перенесу их наверх, как в первом варианте...
Автор: Aleksoid1978
Дата сообщения: 19.11.2011 13:01
judelaw
http://aleksoid.tosei.ru/Test/mpc-hc.3836.7z
Автор: judelaw
Дата сообщения: 19.11.2011 13:10
Aleksoid1978
нормально. Значит у меня криво обновился. Пересоберу попробую.
Автор: front242
Дата сообщения: 19.11.2011 14:35
V0lt
насчёт более компактного диалога выбора шейдеров, по возможности хотелось бы чтобы его вид был таким или схожим по функционалу

при всём уважении нынешняя мдификация это менять шило на мыло, к сожалению я не программер и, возможно, предложенный вариант сложен в реализации, но вдруг кто-нибудь всё-таки решится сделать нечно подобное
Автор: Aleksoid1978
Дата сообщения: 19.11.2011 14:37
front242

Да - выглядит красиво )).
Автор: judelaw
Дата сообщения: 19.11.2011 14:53
front242
по началу сам так хотел сделать, но потом посчитал, что будет менее удобно. А так оно и будет. У людей список шейдеров может быть километровым, значит полоса прокрутки будет маячить постоянно ибо в листе будут сразу все шейдеры.
Кнопок таких со стрелками нет в мрс-нс вроде. Нужно рисовать или прикручивать отдельный класс, а это еще вагон кода.
Да и очень много нужно переделать вообще в коде, если брать такой вариант за образец. Как бы не сложно, но... как минимум лень

Это мое ИМХО.
Автор: V0lt
Дата сообщения: 19.11.2011 14:59
mpc-hc_3837_shaders_dlg_test5.7z
Исправленный компактный вариант. Можно тестировать.

front242

Цитата:
при всём уважении нынешняя мдификация это менять шило на мыло

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

Добавлено:
judelaw

Цитата:
У людей список шейдеров может быть километровым

Приведи адекватный пример когда требуется более 6 шейдеров в одном списке
Автор: judelaw
Дата сообщения: 19.11.2011 15:13
V0lt

Цитата:
Приведи адекватный пример когда требуется более 6 шейдеров в одном списке

используемых да, 1-3 вполне. Но речь там шла без комбобокса и кнопки добавить. То есть весь список сразу загружать в лист, а там уже чекбоксами активировать необходимые.

Сейчас у нас только 20 шейдеров. А кое-кто еще килограмм шейдеров от Яна запихнет. Итого десятка три четыре.


У тебя баг есть. Добавь пару шейдеров и потом сделай вверх - вниз. Появится третий
И при открытии активна пустая строка (зачем она вообще?), а не реальная с шейдером. Это неудобно.
Автор: V0lt
Дата сообщения: 19.11.2011 15:24

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

Не-не-не, ну нафиг.


Цитата:
У тебя баг есть. Добавь пару шейдеров и потом сделай вверх - вниз. Появится третий

Исправил. Ссылку обновил.


Цитата:
И при открытии активна пустая строка, а не реальная с шейдером. Это неудобно.

Чем неудобно?
Автор: judelaw
Дата сообщения: 19.11.2011 15:43
V0lt

Цитата:
Исправил. Ссылку обновил.

если в верхнем листе не более 1 шейдера а в нижнем 2-3, то кнопка вниз в нижнем листе не работает. С нижним листом Вниз плохо работает.


Цитата:
Чем неудобно?

При добавлении шейдеров в пустой лист, желательно делать эту строку активной, выделенной, чтобы сразу переместить при необходимости в нужное место или удалить, если случайно добавили. А так доп движение нужно делать каждый раз
Автор: V0lt
Дата сообщения: 19.11.2011 16:25
Спасибо, ошибку исправил.

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

Возьмем простую операцию - добавить три шейдера последовательно. Сейчас это делается элементарно.
У меня вставка идет перед текущим элементом. Если сделать после, тогда нельзя будет вставить новую строку на место первого элемента (без нажатия кнопок вверх/вниз).
Я сейчас не вспомню, как там по стандартам
Автор: judelaw
Дата сообщения: 19.11.2011 16:42
V0lt

Цитата:
У меня вставка идет перед текущим элементом

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

Добавлено:
хотя... если ты хочешь чтоб вставлялось перед выделенной строкой - то и тут проблем не вижу. Просто лишнюю проверку нужно добавить.
Автор: SamLab
Дата сообщения: 19.11.2011 17:43
Media Player Classic HomeCinema+ ICL12 BE+ 1.5.3.3839 (x86/x64) от Exodus
http://mpc-build.googlecode.com/svn/trunk/mpc-hc/mpc-hc_rev3839/

Цитата:
Media Player Classic HomeCinema+
Updated: LibMp3Lame to latest
Updated: LibWebP to latest
Автор: V0lt
Дата сообщения: 19.11.2011 20:42
MPC-HomeCinema 1.5.3.3841 (x86)
Добавлен новый диалог шейдеров.
Автор: judelaw
Дата сообщения: 20.11.2011 01:58
V0lt

Цитата:
Добавлен новый диалог шейдеров.

Ну и чудненько. Спасибо.

Не хочу напрягать, но не возьмешься ли за мой патч по автосмене частот через MediaInfo?
Автор: judelaw
Дата сообщения: 20.11.2011 04:12
Aleksoid1978
V0lt
Человек на думе с проблемой: http://forum.doom9.org/showthread.php?p=1539818#post1539818
Я проверил, действительно с Хаали черный экран. И виноват патч в r3679:
// fix for Microsoft DTV-DVD Video Decoder - video freeze after STOP/PLAY
    if(IsConnected()) {
        GetConnected()->BeginFlush();
        GetConnected()->EndFlush();
}

нужно включить как то проверку на хаали рендер в этом месте. Только как добраться из BaseSplitter.cpp до :
AppSettings& s = AfxGetAppSettings();

что бы сделать проверку:
if(IsConnected() && !s.iDSVideoRendererType == VIDRNDT_DS_DXR) {

??? вопрос
Автор: Aleksoid1978
Дата сообщения: 20.11.2011 04:25
judelaw

Надо по другому - добраться по цепочке фильтров до рендера, и проверить что Хаали или нет.

Смотри на примере уже готовой функции :

Код:
void CBaseSplitterOutputPin::MakeISCRHappy()
{
    CComPtr<IPin> pPinTo = this, pTmp;
    while(pPinTo && SUCCEEDED(pPinTo->ConnectedTo(&pTmp)) && (pPinTo = pTmp)) {
        pTmp = NULL;

        CComPtr<IBaseFilter> pBF = GetFilterFromPin(pPinTo);

        if(GetCLSID(pBF) == GUIDFromCString(_T("{48025243-2D39-11CE-875D-00608CB78066}"))) { // ISCR
            CAutoPtr<Packet> p(DNew Packet());
            p->TrackNumber = (DWORD)-1;
            p->rtStart = -1;
            p->rtStop = 0;
            p->bSyncPoint = FALSE;
            p->SetData(" ", 2);
            QueuePacket(p);
            break;
        }

        pPinTo = GetFirstPin(pBF, PINDIR_OUTPUT);
    }
}
Автор: V0lt
Дата сообщения: 20.11.2011 08:16
judelaw

Цитата:
Не хочу напрягать, но не возьмешься ли за мой патч по автосмене частот через MediaInfo?

Адаптируй к последней версии и вышли файлы по отлаженной схеме (все измененные файлы, пачт на код и экзешник). Посмотрю...

Добавлено:
Aleksoid1978
Может уже было
Hilary.0000.ts - http://www.megaupload.com/?d=GTJZPNL0

1. MPEG-2 DXVA падает (какие-то проблемы с кучей), либо сначала глючит, но потом все равно падает.

2. Там две звуковые дорожки и два видеопотока. Если переключить видео, то вероятнее всего плеер глюканет, но иногда переключает. Если переключать аудио, то тоже может заглючить, но если не заглючит, то вслед за звукам переключается видео. Это нормально?
Автор: Aleksoid1978
Дата сообщения: 20.11.2011 09:58
V0lt

Цитата:
1. MPEG-2 DXVA падает (какие-то проблемы с кучей), либо сначала глючит, но потом все равно падает.


Это нормально - забейте на встроенный MPEG2 DXVA Decoder ... в нем куча косяков, которые я тупо не знаю как исправить.

По поводу переключения видео-дорожек - тут декодер должен поддерживать, встроенные в MPC-HC для этого не годятся, проверь с LAV.
Автор: V0lt
Дата сообщения: 20.11.2011 10:07
Aleksoid1978
С LAV Video переключает через раз. Но разве нормально, что при переключении звука переключается видео?
Автор: Aleksoid1978
Дата сообщения: 20.11.2011 11:53
V0lt

Цитата:
Но разве нормально, что при переключении звука переключается видео?


Я глянул и понял почему. В этом файле 2 разные программы, к каждой относиться по одной видео и одной аудио дорожек. В коде просто было прописано так - при переключении дорожки смотриться если она относится к другой программе, то и другие типы дорог(аудио, видео и сабы) тоже переключаем на новую программу.

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

Добавлено:
V0lt

Цитата:
Но разве нормально, что при переключении звука переключается видео?


Исправил
Автор: judelaw
Дата сообщения: 20.11.2011 12:26

Цитата:
В этом файле 2 разные программы

да. по хорошему нужно делать как в AVsplitter c переключением потоков трансподера. Program1, Program2....
Автор: Aleksoid1978
Дата сообщения: 20.11.2011 13:27
judelaw

Цитата:
да. по хорошему нужно делать как в AVsplitter c переключением потоков трансподера. Program1, Program2....



Согласен ... вот только лень ))
Автор: judelaw
Дата сообщения: 20.11.2011 15:28
V0lt

Цитата:
Адаптируй к последней версии и вышли файлы по отлаженной схеме

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

Добавлено:
V0lt
Нет, не так.
собрал чистый 3757 - бага нет. В 3758 уже есть.

Почему то 30 не нравится. С 100 бага нет. Попробую разобраться почему.
Получается так: с #define MaxFpsCount 100 у нас не сохраняется в ini, а с #define MaxFpsCount 30 - вылезает креш при закрытии диалога. Причем креш одноразовый, настройки сохраняются и при следующем открытии/закрытии окна креша уже нет.
Автор: judelaw
Дата сообщения: 20.11.2011 18:09
Все, нашел баг
дело в том, что переменная MaxFpsCount - это максимальное количество строк списка нашего листа. А в объявление в PPageFullscreen.h int m_iSeldm[MaxFpsCount] - это неправильно, так как массив m_iSeldm[] относится к количеству строк в комбобоксе, то есть списка DisplayMode, который ес-но может быть больше 30, даже больше 100.

Короче, нужно просто исправить
int m_iSeldm[MaxFpsCount]
на
int m_iSeldm[1000] (с запасом)

Странно, что баг не всегда проявлялся и только с двумя экранами и только одноразово.
Баг можно было словить так:
Удаляем ветку Габест
запускаем плеер - Настройки - полный экран
выбираем другой монитор (не текущий)
ставим галку на Использовать автосмену
в любой строке меняем Режим Дисплея (этот пункт ключевой)
нажимаем ОК
в результате - креш плеера.

Добавлено:
V0lt
Поправь пожалуйста.

Добавлено:
Aleksoid1978

Цитата:
Смотри на примере уже готовой функции :

как то так??? :

    // fix for Microsoft DTV-DVD Video Decoder - video freeze after STOP/PLAY
    int iHaali = 0;
    CComPtr<IPin> pPinTo = this, pTmp;
    while(pPinTo && SUCCEEDED(pPinTo->ConnectedTo(&pTmp)) && (pPinTo = pTmp)) {
        pTmp = NULL;
        CComPtr<IBaseFilter> pBF = GetFilterFromPin(pPinTo);
        if(GetCLSID(pBF) == GUIDFromCString(_T("{760A8F35-97E7-479D-AAF5-DA9EFF95D751}"))) { // Haali Renderer
            iHaali = 1;
            break;
        }
        pPinTo = GetFirstPin(pBF, PINDIR_OUTPUT);
    }
    
    if(IsConnected() && iHaali == 0) {
        GetConnected()->BeginFlush();
        GetConnected()->EndFlush();
    }
Автор: Aleksoid1978
Дата сообщения: 20.11.2011 23:48
judelaw

Цитата:
как то так??? :

// fix for Microsoft DTV-DVD Video Decoder - video freeze after STOP/PLAY
int iHaali = 0;
CComPtr<IPin> pPinTo = this, pTmp;
while(pPinTo && SUCCEEDED(pPinTo->ConnectedTo(&pTmp)) && (pPinTo = pTmp)) {
pTmp = NULL;
CComPtr<IBaseFilter> pBF = GetFilterFromPin(pPinTo);
if(GetCLSID(pBF) == GUIDFromCString(_T("{760A8F35-97E7-479D-AAF5-DA9EFF95D751}"))) { // Haali Renderer
iHaali = 1;
break;
}
pPinTo = GetFirstPin(pBF, PINDIR_OUTPUT);
}

if(IsConnected() && iHaali == 0) {
GetConnected()->BeginFlush();
GetConnected()->EndFlush();
}


Да, типа того. Но для красоты, вместо GUID цифер юзать готовую переменную - CLSID_DXR.
И вот так красивее:

Код:
boolean iHaali = 0;
...
if(IsConnected() && !iHaali) {
GetConnected()->BeginFlush();
GetConnected()->EndFlush();
}
Автор: judelaw
Дата сообщения: 21.11.2011 00:57
Aleksoid1978
На 100% костыль похоже
Автор: avtosalon
Дата сообщения: 21.11.2011 10:24
Уважаемые разработчики!

Мы занимаемся звуком в автомобилях, и весьма успешно выступаем на соревнованиях по автозвуку и тюнингу ЕММА. В этом году мы стали Вице-Чемпионами Европы ЕММА-2011 в классе мультимедиа эксперт.

http://www.drive2.ru/cars/lada/kalina_sport/kalina_sport/avtosalon-intei/2/

В следующем году мы очень хотим стать Чемпионами! Нам очень нужна Ваша помощь!

По условиям соревнования в классе мультимедиа эксперт, необходимо КАЧЕСТВЕННО воспроизвести судейский DVD видео диск в формате 5.1

Для этого нам нужна специальная (спортивная) версия MPC

1. Очень нужно прикрутить ASIO выход. (для работы с профессиональной картой)
2. Очень нужен плагин к MPC с профессиональным эквалайзером и задержками (на каждый канал).
3. Выкинуть из плеера все лишнее. (Он будет воспроизводить ТОЛЬКО судейский DVD диск.

С другими плеерами не удалось получить лучшего качества(

Готов обсудить условия, Заранее благодарен, Алексей.

tuning @ intei . ru
Автор: Aleksoid1978
Дата сообщения: 21.11.2011 11:31
avtosalon

Забудь, это нереально

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196

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


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