Могу попробовать добавить DXVA2-VideoProc, чтобы на AMD экспериментировать.Добавьте пожалуйста "DXVA2-VideoProc", очень хочется прогнать/потестировать новый видео-рендерер на AMD-видеокарте.
Рендерер еще ничего не умеет, а то что умеет - делает не очень. Доведение до ума будет долгим.Я понимаю, что пока он ничего не умеет, ведь проект только что недавно появился. Естественно потребуется немало времени, чтобы довести его до ума. Но вы - молодцы! ;)
В общем DXVA2-VideoProc добавлен и включен по умолчанию.Огромное вам спасибо за ваши труды! Превосходно! ;)
Есть проблема с программным декодированием, его посмотрю попозже.
В общем YUY2 и RGB32 сейчас показывают нормально, NV12, YV12 и P010 - зелень. Надо разбираться...На AMD-видеокарте на любом выходном формате присутствует зелень в программном режиме.
Вывод NV12, P010 исправлен, YV12 выводится почти правильно.Я и сам удивился, что YUY2 выводит с зеленью.
Evgeniy1990
Странно что у тебя YUY2 некорректно выводит. Надо будет делать специальную сборку с отладочным логом. :(
А если мы меняем выходные форматы уже во время воспроизведения видео файлов, то могут быть проблемы.Не надо так делать. В коде это пока не предусмотрено.
Не надо так делать. В коде это пока не предусмотрено.Ясно. Просто мне так переключать их удобнее и быстрее всего проверить каждый из них.
Вопрос. Мы будем куда-нибудь выкладывать сборки фильтра?Я буду собирать и выкладывать сборки фильтра на Я.Диск в отдельную папку.
Если будем то надо архиву порядковый номер присваивать (как в MPC-HC) и часть хеша.
Пример: MpcVideoRenderer-r20-7cf381d2.zip.
Evgeniy1990Ок, понял вас, в общем, тогда буду ждать батника. :)
Не спеши. Там батник еще надо написать, которого нет. :)
Куда вы летите - еще настолько сырое чтобы выкладывать. Да и вообще - какой смысл его отдавать в паблик ??Мы пока никуда не торопимся, пока просто обдумываем как будем его в дальнейшем собирать, куда выкладывать и т.д.
if (CComQIPtr pService = pSample) {
CComPtr pSurface;
if (SUCCEEDED(pService->GetService(MR_BUFFER_SERVICE, IID_PPV_ARGS(&pSurface)))) {
}
}
Но вот тут интересный момент - получается что для каждого кадра придется проверять типа(прогрессив/интерлейс) и по необходимости пересоздавать DXVA2-VP.Врядли. Думаю "девайс" от вендера без проблем переварит прогрессивный кадр. Надо попробовать.
А почему мы игнорируем fps и тупо проставляем 60 ??Пока это неважно. Но если мы начнем все это учитывать, то у нас начнутся проблемы.
Странно, раньше было. Сейчас верну.
Evgeniy1990У меня на AMD Radeon HD 5770 присутствует зелень. Прилагаю видеозапись (https://yadi.sk/i/wpcpBbpS3TCREk).
Не подтверждаю. Попробуй полностью пересобрать и заново зарегистрировать.
В будущем добавлю больше информации в окно настроек и инфо для диагностики проблем.
По поводу "зелени" - проверяем https://yadi.sk/d/rrFqZRnt3TCb9TПроверил тестовый билд. Зелень пока присутствует.
Обновил билд - проверяем.Проверил тестовый билд.
Так же проверить как видео-рендерер реагирует на смену выходного типа в MPC Video Decoder(ессно при софтовом декодировании).
Так же уже в нем реализована обработка "стоп".
Блин, откуда эта зелень.Она появилась после некоего изменения (коммита).
Ладно, пока залью эти наработки, дальше будем смотреть.Ваши наработки, касающиеся обработки "Стоп" и мгновенного переключения выходных форматов в софтовом режиме можете смело заливать.
Я знаю после чего оно появилось, я не понимаю отчего зелень, да и именно на Radeon.Отчего?
По поводу зелени - Evgeniy1990 если не лень, попробуй методом перебора выяснить коммит после которого началось.Я только за! Попробую выяснить. Интервал поиска такой [65 -> 72]
По поводу зелени - Evgeniy1990 если не лень, попробуй методом перебора выяснить коммит после которого началось.Я выяснил, с какого коммита появилась зелень - с билда 66, коммит db9e49e.
Изменение : По возможности всегда используем видео-процессор с поддер…
…жкой деинтерлейса(т.к. встречается смешанный контент). Для прогрессивного контента всегда обрабатываем по одному кадру.
const size_t numSamples = m_SampleFormat == DXVA2_SampleProgressiveFrame ? 1 : m_DXVA2Samples.size();
конечно та еще. Я ее должен был прибить в af6daca, но пропустил.
hr = m_pD3DDevEx->StretchRect(pSurface, nullptr, m_SrcSamples.Get().pSrcSurface, nullptr, D3DTEXF_POINT);
Пробовал D3DTEXF_NONE и D3DTEXF_LINEAR - бестолку.Evgeniy1990Пожалуйста:
Собери последнюю версию, запусти, и скопируй информацию из "статистики" фильтра.
Graphics adapter: AMD Radeon HD 5700 Series (1002:68B8)
DXVA2 Video Processor: {3C5323C1-6FB7-44F5-9081-056BF2EE449D}
DeinterlaceTechnology: PixelAdaptive
BackwardRefSamples: 2
Input
Format: D3DFMT_NV12
Width : 512
Height: 384
Эх - надо было еще проверить создание поверхностей через CreateOffscreenPlainSurface(), может быть для Intel это как-то играет роль.Сделай патч, пожалуйста.
Evgeniy1990Хорошо, попробую сделать видеозапись с проявлением зелени, после открытия видео файла.
Видео с зеленью сможешь снять?
Возьми какое-нибудь видео, чтобы в масштабе 100% (Alt+2) помещалось на экране.
Спасибо. Ничего особо страшного нет, 1-2 кадра зелени и все.Попробовал ваш тестовый билд. При открытии - падает.
Вот попробуй это решение для начала - https://yadi.sk/d/irIuRIzV3THVQs
А так? - https://yadi.sk/d/xe1V4Pxz3THXZCПроверил. При открытии - не падает, зелень, при открытии, также отсутствует.
Я так понимаю, что вы сделали откат.Нет. Я доработал обход бага для AMD. См. лог.
Ясно, но теперь плеер падает при смене выходных форматов, как на лету, так и вручную, до открытия видео файлов.Цитата: Evgeniy1990Я так понимаю, что вы сделали откат.Нет. Я доработал обход бага для AMD. См. лог.
hr = m_pDevice->CreateTexture2D(&desc, NULL, &m_pSrcTexture2D);
[merge_posts_bbcode]Добавлено: 2018-03-13 19:34:33[/merge_posts_bbcode]Реализовал поддержку кастомных интерфейсов от LAV для работы D3D11 Native декодера. Работает - но какие-то непонятки с рендерингом картинки - все идет рывками. Причина неясна. Мой английский слаб чтобы задавать вопросы :)У меня, на Windows 10, при использовании "LAV D3D11 Native"-декодера, при открытии просто черный экран.
Ну я поддержку его ещё не внедрял. Ты собирал с DX9 или 11 ??Ясно. Я собирал как обычно, с DX9. Значит требуется все-таки DX11.
Это что - один и тот же сэмпл 2 раза рендерить, чтобы частота вывода увеличилась.По идее должно быть так, что входит один сэмпл, вытаскиваем два. Но примеров кода я не видел.
У меня, кстати, есть предложение - в VP делать только преобразование, а вот уже ресайз на шейдерах.Плохое предложение. Ресайз силами VP самый оптимальный по нагрузке на железо. Мы наконец-то сделали такой ресайз для NV12 и P010 , а ты уже хочешь его выкинуть.
CComPtrДля чего вторая текстура?m_pSrcTexture2D;
CComPtrm_pSrcTexture2D_Decode;
DXGI_FORMAT m_srcDXGIFormat = DXGI_FORMAT_UNKNOWN;
UINT m_srcWidth = 0;
UINT m_srcHeight = 0;
...
DXGI_FORMAT m_D3D11_Src_Format = DXGI_FORMAT_UNKNOWN;
UINT m_D3D11_Src_Width = 0;
UINT m_D3D11_Src_Height = 0;
А дело в том что размер в медиатипе и реальный размер с которым будет создаваться текстура могут отличаться, для DXVA2. Поэтому я ввел эти "дубли" - чтобы хранить и использовать при проверке при попытке создании текстур. ДЛя DX9 тоже самое.Как они могут отличаться для DX9? Почему бы просто не переписать правильным?
Input
Format: NV12
Width : 1280
Height: 720
По поводу DX11 + DXVA2 - предлагаю весь процесс конвертации в RGB и ресайза перенести на DX9, а потом просто текстуру выводить как есть в DX11.Тогда возникает вопрос. Зачем нам вообще DX11 ?
Хотя - как декодер узнает что сменился дисплей/адаптер. Тут видео-рендерер должен реконнект делать.Я сразу запускаю на доп. мониторе, не перемещаю.
По поводу StretchRect на доп. дисплее.
Как оказалось декодировало на Nvidia, а обрабатывало и выводило на Intel. Отсюда облом StretchRect.
Почему декодер так себя ведет - непонятно. Я думал декодер цепляется к адаптеру текущего окна. Баг декодера?
Вроде бы нашел причину и устранил. Проверяем и отписываемся.Ситуация со статусами как будто не поменялась, но теперь воспроизведение не начинается.
if (filterState == State_Running) {
hr = ProcessDX11(pBackBuffer, false);
}
{
IDXGISurface* pDxgiSurface = nullptr;
hr = pBackBuffer->QueryInterface(&pDxgiSurface);
// Create the DXGI Surface Render Target.
FLOAT dpiX;
FLOAT dpiY;
m_pD2dFactory->GetDesktopDpi(&dpiX, &dpiY);
D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(D2D1_RENDER_TARGET_TYPE_DEFAULT, D2D1::PixelFormat(DXGI_FORMAT_UNKNOWN, D2D1_ALPHA_MODE_PREMULTIPLIED), dpiX, dpiY);
CComPtr pD2dRT;
hr = m_pD2dFactory->CreateDxgiSurfaceRenderTarget(pDxgiSurface, &props, &pD2dRT);
if (S_OK == hr) {
ID2D1SolidColorBrush* pD2dBrush = nullptr;
hr = pD2dRT->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::Yellow), &pD2dBrush);
if (S_OK == hr) {
pD2dRT->BeginDraw();
pD2dRT->DrawLine(D2D1::Point2F(0, 0), D2D1::Point2F(100, 100), pD2dBrush, 0.5f);
pD2dRT->EndDraw();
}
}
}
hr = m_pDXGISwapChain1->Present(0, 0);
[merge_posts_bbcode]Добавлено: 2018-03-26 21:07:29[/merge_posts_bbcode]IDXGISurface* pDxgiSurface = nullptr;
hr = pBackBuffer->QueryInterface(&pDxgiSurface);
делатьhr = m_pDXGISwapChain1->GetBuffer(0, IID_PPV_ARGS(&pDxgiSurface));
typedef struct _VMR9ProcAmpControlRange
{
DWORD dwSize;
VMR9ProcAmpControlFlags dwProperty;
float MinValue;
float MaxValue;
float DefaultValue;
float StepSize;
} VMR9ProcAmpControlRange;
DXVA2typedef struct _DXVA2_ValueRange
{
DXVA2_Fixed32 MinValue;
DXVA2_Fixed32 MaxValue;
DXVA2_Fixed32 DefaultValue;
DXVA2_Fixed32 StepSize;
} DXVA2_ValueRange;
DXVA-HDtypedef struct _DXVAHD_FILTER_RANGE_DATA
{
INT Minimum;
INT Maximum;
INT Default;
FLOAT Multiplier;
} DXVAHD_FILTER_RANGE_DATA;
D3D11typedef struct D3D11_VIDEO_PROCESSOR_FILTER_RANGE
{
int Minimum;
int Maximum;
int Default;
float Multiplier;
} D3D11_VIDEO_PROCESSOR_FILTER_RANGE;
D3D11 CORRUPTION: ID3D11DeviceContext::VideoProcessorSetStreamFilter: Two threads were found to be executing functions associated with the same Device[Context] at the same time. This will cause corruption of memory. Appropriate thread synchronization needs to occur external to the Direct3D API (or through the ID3D10Multithread interface). 252 and 5580 are the implicated thread ids. [ MISCELLANEOUS CORRUPTION #28: CORRUPTED_MULTITHREADING]
Мютекс не помогает. Похоже придется делать через промежуточные параметры. if (0L != D3DKMTWaitForVerticalBlankEvent(&we)) {
return;
}
m_Ticks[0] = GetPreciseTick();
unsigned i = 1;
while (0L == D3DKMTWaitForVerticalBlankEvent(&we)) {
m_Mutex.lock();
m_Ticks[i] = GetPreciseTick();
bool stop = m_bStop;
m_Mutex.unlock();
Sleep(5); // need for Windows 7 :(
if (stop) {
break;
}
i ^= 1;
}
Есть нехороший момент с Windows 7, без принудительного Sleep(5) отображение кадров стопориться. В Windows 8.1 нормально.Но сишный код перевода в RGB 4:4:4 будет не быстр.Перевод AYUV в XRGB производиться линейно, пиксель в пиксель и требует лишь несколько простых арифметических операций. Это не YV12 на входе, когда приходиться пиксели собирать по всему кадру и хрому восстанавливать.
HRSRC hrsrc = FindResourceW(nullptr, MAKEINTRESOURCEW(resid), L"SHADER");
if (!hrsrc) {
return E_INVALIDARG;
}
HRESULT CDX9VideoProcessor::CreateShaderFromResource(IDirect3DPixelShader9** ppPixelShader, UINT resid)
{
if (!m_pD3DDevEx || !ppPixelShader) {
return E_POINTER;
}
static const HMODULE hModule = (HMODULE)&__ImageBase;
HRSRC hrsrc = FindResourceW(hModule, MAKEINTRESOURCEW(resid), L"SHADER");
if (!hrsrc) {
return E_INVALIDARG;
}
HGLOBAL hGlobal = LoadResource(hModule, hrsrc);
if (!hGlobal) {
return E_FAIL;
}
DWORD size = SizeofResource(hModule, hrsrc);
if (size < 4) {
return E_FAIL;
}
return m_pD3DDevEx->CreatePixelShader((const DWORD*)LockResource(hGlobal), ppPixelShader);
}
where D3dcompiler_47.dll
Посмотри, что генерируется в "revision.h". Если чего не так, то пиши в теме на форуме.Посмотрел. Генерируется только #pragma once. А должны быть еще и "дефайны", которых нет не знаю почему.
#define MPCVR_REV_DATE 2019.05.10
#define MPCVR_REV_HASH 40c0bb8
#define MPCVR_REV_NUM 531
Добавлено: 2019-05-27 16:00:25Эта версия вылетает с ошибкой при разворачивании на полный экран.
Вот пробуем - https://yadi.sk/d/jIX0PZ8yEsxLWA
Вот еще одна версия - https://yadi.sk/d/gwjk3fG0lIH1UQЭта версия вроде бы работает. Видео на весь экран. Благодарю.
Так же в ней добавлен режим Flip для DX9.А вот эта штука не работает. Причём не работает настолько, что происходит откат на стандартный Video render. Даже до настроек не добраться. Сбросил через реестр.
00000001 0.00000000 [4720] Loading modified build of detours library designed for MPC-HC player (http://sourceforge.net/projects/mpc-hc/)
00000002 14.89837551 [4720] MpcVideoRenderer.ax(tid 1c9c) 13 : CDX9VideoProcessor::Init()
00000003 14.89860821 [4720] MpcVideoRenderer.ax(tid 1c9c) 13 : Graphics adapter: Radeon RX 590 Series (1002:67DF)
00000004 14.89894676 [4720] MpcVideoRenderer.ax(tid 1c9c) 14 : Display Mode: 1280x720, 60p
00000005 14.89905167 [4720] MpcVideoRenderer.ax(tid 1c9c) 14 : DeviceCaps:
00000006 14.89905167 [4720] MaxTextureWidth : 16384
00000007 14.89905167 [4720] MaxTextureHeight : 16384
00000008 14.89905167 [4720] PresentationInterval IMMEDIATE : supported
00000009 14.89905167 [4720] PresentationInterval ONE : supported
00000010 14.89905167 [4720] Caps READ_SCANLINE : supported
00000011 14.89905167 [4720] PixelShaderVersion : 3.0
00000012 14.89905167 [4720] MaxPixelShader30InstructionSlots: 32768
00000013 14.93541431 [4720] MpcVideoRenderer.ax(tid 1c9c) 50 : => CreateDeviceEx() : 0x80070578
Значок GPU должен появляться. Если нет - значит и DXVA нет.Перепроверил - в декодере написано что декодируется DXVA. По нагрузке проца - точно DXVA. Если отключить руками (оставить только программный), нагрузка вырастает раз в 5. А значка рядом с иконкой динамика нет. Если переключиться на EVR-CP - появится.
и значок GPU отображается.Нет :) Но, повторюсь, это не важно.
Please do not delete the MpcVideoRenderer64 folder.
Здесь должно быть "MpcVideoRenderer64.ax file". В 32-битных - аналогично.You need to right click "Install_MPCVR_64.bat" and choose "run as admin".
"Install_MPCVR_64.cmd". Этот текст есть во всех cmd.
c:\\videorenderer\\videorenderer\\source\\helper.cpp(475): warning C4146: unary minus operator applied to unsigned type, result still unsigned [C:\\VideoRenderer\\VideoRenderer\\Source\\MpcVideoRenderer.vcxproj]
Evgeniy1990, чето ты меня пугаешь.Да я и сам был удивлен. Пожалуйста, посмотрите на это (https://yadi.sk/i/Grc5IlLQLF_G9g).
Покажи окно настроек. Попробуй вывести статистику, если получиться, то сделай с ней скриншот.
Запусти Debug билд и выложи лог.Пожалуйста. (https://yadi.sk/d/lgH0vmCe6-70dg)
По логу все нормально. Лог при черном экране сделан?Разумеется, я делал лог (https://yadi.sk/i/qGWaZTM-5al3Iw) именно при черном экране.
Попробуй отключить декодер DXVA2.
Ранее проблема с опцией "Use the DXVA2/D3D11 video processor for resizing (if possible)" была?
Еще без статистики попробуй, на всякий случай.
Вот только появляется почему то у тебя, больше ни у кого. А тот коммит нужен.А кто еще, кроме меня, так тщательно тестирует этот видео-рендерер?
Evgeniy1990, обновись до f137dd2 и перепроверь.Ок, сейчас обновлюсь, соберу рендерер и проверю у себя на AMD...
Evgeniy1990, проверь еще билд test_AMD_D3D11_VP_Resize (https://yadi.sk/d/uwBu4owfK9vOwg) на своей карте AMD. Будет ли черный экран.V0lt
Error HRESULT E_FAIL has been returned from a call to a COM component.
, то закройте студию и удалите все файлы *.vcxproj.user. Должно помочь.Evgeniy1990
Можешь сделать сравнительные скриншоты одинаковых кадров со статистикой в режиме "Cтандартный" на 647 ревизии? По видео трудно ориентироваться.
Условие - "Использовать параметры проигрывателя видео"Получается на любом видео такая ерунда? Тут к рендереру претензий быть не может. Явно драйвер чудит.
1. Запустить видео файлы (Full/Limited)
2. Поставить воспроизведение на паузу
3. Возобновить воспроизведение
Также, еще сделал для вас сравнительные кадры (https://yadi.sk/d/yzKePk5uNkwxZw) - до паузы и после паузы (возобновления).Жесть какая-то.
Получается на любом видео такая ерунда?Совершенно верно, на любом.
Тут к рендереру претензий быть не может. Явно драйвер чудит.Я пробовал ставить другие драйвера - такая же проблема с высокой яркостью.
Глянь в настройках драйвера, нет ли там гадости типа "динамический контраст", "усиление цветов" и прочей ериси.Посмотрел, ничего подобного у меня нет, разве что "Звонкий цвет" и "Повышение оттенков белого". Но даже если я их выключу - проблема не исчезнет.
Жесть какая-то.Согласен! Та еще жесть! Я сам охренел, когда впервые это увидел на вашем тестовом билде.
Evgeniy1990Попробовал. В результате, у меня стал работать только AYUV, VideoProcessor: Shaders, изображение на DX11 всегда нормальное, при любых условиях.
Продублирую тут.
Можешь попробовать
1. Отключить декодеры DXVA2.
2. В дополнению к п.1, выключи все форматы YUV 4:2:0 и 4:2:2. Можно включить AYUV. В этом случае будет задействован шейдерный видеопроцессор, а не D3D11 VP.
3. Включить все назад и выключить поддержку субтитров в плеере.
Evgeniy1990Спасибо, за предложение! Да, согласен с вами, действительно помогает избавиться от чрезмерной контрастности и насыщенности изображения.
Ну вот и локализовали проблему. Глючит именно D3D11 Video Processor.
Могу еще предложить после возникновения бага, не останавливая воспроизведение, зайти в настройки плеера и покрутить яркость, контрастность, насыщенность, а затем сбросить.
Завтра сделаю тестовый билд. Посмотрим что там прилетает от драйвера.Проверил. Результаты:
Добавлено: 2019-06-17 10:40:09
Исправил в r653. Проверь.
Evgeniy1990, когда будет время, глянь как у тебя проигрываются ролики HDR с опцией "Use the DXVA2/D3D11 video processor for resizing (if possible)" и без.Напомните, пожалуйста, какие именно ролики с HDR?
Вот эти попробуй - https://yadi.sk/d/mADzsqUnzEYfkСпасибо! Проверил ваши тестовые ролики с HDR.
Это режим DX11?
Очень странно. Похоже на твоей карте AMD видеопроцессор D3D11 очень капризный к рабочей текстуре. В режиме DX9 проблемы ведь нет?
Заводить HDR в рендерер в формате NV12 - это конечно тот еще изврат. После тон-маппинга вылезает очень заметный бандинг.Может это и "изврат", но большинство таких видео файлов с HDR, в моем случае, способны нормально и плавно воспроизводиться, без пропусков кадров, только при использовании именно выходного формата NV12.
Для 10-bit 4:2:0 - родной формат P010.Это итак понятно. Зачем писать очевидные вещи?
поэтому ты пытаешься использовать NV12Я пока ничего не пытаюсь использовать. Я всего лишь проверил поведение данных видео файлов при использовании разных доступных выходных форматах. Меня интересовало, в первую очередь, именно корректность и плавность самого воспроизведения этих видео файлов с HDR.
Но большая проблема в том, что D3D11 VP у тебя слишком капризный. Добавляем дополнительную операцию, получаем черный экран. Просто предварительно заливаем бэкбуфер - опять черный экран.Что тут странного? Вырубите вы полностью этот "бэкбуфер" нафиг для AMD и не будет этого "черного экрана".
Это очень странная ситуация.
Что тут странного? Вырубите вы полностью этот "бэкбуфер" нафиг для AMD и не будет этого "черного экрана".Ты не в теме. Бэкбуфер используется всегда и при любом видео. Это то, на чем формируется окончательный кадр. Проблема в D3D11 VP на твоей карте, которой работает только на девственно чистом бэкбуфере. Сейчас проблема с HDR, захотим добавить какую-нибудь постобработку - будет черный экран на обычном видео.
Ясно же, что именно при его работе он возникает.
По поводу Баг #1 - "Пропуски кадров, при воспроизведении транспортных видео файлов". - это на DX9 или DX11, DXVA2 декодер при это задействован ?Это на обоих DX и на DX9 и на DX11. DXVA2, или Софт - не имеет значения.
Ты не в теме. Бэкбуфер используется всегда и при любом видео. Это то, на чем формируется окончательный кадр. Проблема в D3D11 VP на твоей карте, которой работает только на девственно чистом бэкбуфере. Сейчас проблема с HDR, захотим добавить какую-нибудь постобработку - будет черный экран на обычном видео.
на девственно чистом бэкбуфереПонятно, когда он вообще свободный.
У меня и с паузой все отлично, и деинтерлейс работает - проверял на DX11 с Discard/Flip режимами.Вам срочно нужно обзавестись видеокартой от AMD, желательно именно Radeon HD и 5000 серии.
Какой смысл проверять на старье. Ну не работает - не пользуйся.Началось - "старье"... Видеокарта с поддержкой DirectX 11 - это "старье". Да уж, чего я только не слышал.
Evgeniy1990D3D11 VP вполне нормально работает на AMD Radeon HD 5770.
В свете замеченных проблем с D3D11 VP на твоей Radeon HD 5770, Я посоветую не использовать режим DX11 на этой карте.
Все баги режима DX11, обнаруженные только на твоей Radeon HD 5770, исправляться не будут, т.к. не могут быть воспроизведены на других машинах. Тут либо баг драйвера, который надо лечить другой версией драйвера. Либо что-то не так с железом - это лечится только заменой.
Баг #2 - "Не стартует воспроизведение некоторых WMV-видео файлов".
Условие воспроизведения:
Фильтр-источник: "WM ASF Reader"
Алгоритм воспроизведения:
1. Скачать этот WMV-видео файл
2. Запустить его
По факту: после его открытия, воспроизведение не начинается вообще. Видео-рендерер просто стоит на месте.
madVR так же не стартует. Хз что не так - но тут на лицо траблы самого WM ASF Reader.Да неужели?
Получается, что WM ASF Reader нормально работает только с EVR-видео рендерерами? о_ОРанее у EVR-CP тоже были проблемы с WM ASF Reader, что-то подкручивали, стало лучше.
Evgeniy1990, у тебя были проблемы с разной яркостью или гаммой в разных режимах MPC VR на одном и том же файле?Если вы имеете в виду ту самую "адскую жесть (https://yadi.sk/d/yzKePk5uNkwxZw)", то она была на разных видео файлах, в зависимости от цветового диапазона (Full/Limited).
С шейдерной обработкой YUY2 есть проблема. Слишком темный кадр получается в режиме DX9.Проблема только на NVIDIA. У меня на AMD нормальные цвета, при выводе через YUY2, даже в D3D11. А в DX9 данный формат YUY2 итак работает, даже без новой опции. Но она меня порадовала. Теперь хотя бы работает выходной формат YUY2 на D3D11, хоть и через шейдеры, но главное - работает! ;)
Если вы имеете в виду ту самую "адскую жесть (https://yadi.sk/d/yzKePk5uNkwxZw)", то она была на разных видео файлах, в зависимости от цветового диапазона (Full/Limited).Нет. Просто яркость немного разная.
У меня наблюдается сильно заметная разница при увеличении уровня ярокости. На шейдерном VP выходит ярче, чем на DXVA2 или D3D11 VP.
06:52:09.377 3>C:\\VideoRenderer\\VideoRenderer\\Source\\Shaders\\d3d11\\ps_convert_nv12.hlsl(37,29-39): error X4502: invalid vs_2_0 output semantic \'SV_Target\' [C:\\VideoRenderer\\VideoRenderer\\Source\\Shaders\\Shaders.vcxproj]
Evgeniy1990, после 81ed2df должно исправиться.Исправилось в r707 (git 81ed2df).
С поддержкой P010 через шейдеры может быть облом на картах, которые не принимают его на входе видеопроцессора D3D11.Эх, похоже что в моем случае - полный облом с форматами P010/P016, по крайней мере на видеокарте от AMD.
У меня, например, P010 работает, но текстура в формате P016 уже не создается. Хотя P010 и P016 - это по сути один формат.
Можно реализовать альтернативный вариант с двумя текстурами для такого случая (все равно кадр в системной памяти). Но не в ближайшее время..Остается только лишь ждать ваш альтернативный вариант с двумя текстурами, который будет очень нескоро.
А что означает это число "11" над входными форматами NV12 и P010/P016? DirectX11???То что галка работает только для режима DX11.
Evgeniy1990Пожалуйста (https://yadi.sk/d/QJkeQw4CNu91Iw).
Запусти дебаг версию и выложи лог на 10 битном 4:2:0 видео, ессно на DX11 и сняв галку с P010 формата.
А madVR поддерживает в таком случае 10 бит на вход ?Поддерживает.
В r719 реализовал поддержку P010 и P016 на шейдерах для видеокарт, которые не поддерживают эти форматы.Великолепно! ;)
Наконец-то заработали выходные форматы P010 и P016 (https://yadi.sk/d/FNsMaTHJrZuMtA) через шейдеры на 10-битных видео файлах с хрома 4:2:0. ;)Это хорошо.
Теперь не придется страдать из-за тормозов, плавающих рассинхронов, которые были при использовании выходных форматов Y410/Y416.
1. Запустить первый видео файлПодтвержаю, есть проблема. Добавил в список в первом сообщении.
2. Перемотать его, практически, в самый конец, но не до самого конца
3. Открыть свойства MPC Video Renderer
4. Ничего в них не менять, не закрывая окно свойств, просто ждать окончания воспроизведения первого видео файла и автоматического перехода на следующий видео файл в папке
По факту: после автоматического перехода на следующий видео файл в папке, произойдет то, что принято называть "Крыша-снос".
P.S. Кстати, этот самый "тиринг", который проявляется даже при WDM, - это и есть признак того, что произошла проблема, называемая "Крыша-снос". У меня, на втором скриншоте, видно проявление этого самого "тиринга".Оно играет видео так или просто замерло? Если второе, то это не тиринг.
Подтвержаю, есть проблема. Добавил в список в первом сообщении.В этот список также следует добавить и проблему с "черным экраном" в оконном режиме, при перемотке, если само воспроизведение было остановлено.
Оно играет видео так или просто замерло? Если второе, то это не тиринг.Скажем так, видео воспроизводится, но кадры не двигаются, т.е. они застывшие. Здесь как раз второй вариант, когда кадры видео застыли при поломке и образовался некий такой вот "разрез", очень сильно напоминающий "тиринг", хотя, на самом деле, это вовсе не он.
Если фильтр "MpcVideoRenderer.ax" подключен напрямую, без регистрации в системе, то субтитры не работают и не отображаются вообще. Это надо исправить.Чтобы субтитры и другие фичи работали видеорендерер должен быть выбран через панель настроек Video. Чтобы видеорендерер там появился, он должен быть зарегистрирован в системе.
В этот список также следует добавить и проблему с "черным экраном" в оконном режиме, при перемотке, если само воспроизведение было остановлено.
Алгоритм воспроизведения:
1. Открыть видео файл
2. Остановить его воспроизведение
3. Во время остановленного воспроизведения, перемотать запущенный видео файл в произвольное место
4. Развернуть окно плеера на полный экран
По факту: после пункта 3, вместо текущего кадра после перемотки, будет "черный экран" вместе со статистикой, если она была включена первоначально. Текущий кадр (само изображение) появится только лишь после пункта 4, когда перейдем в полноэкранный режим (развернем окно плеера на полный экран).
Хм - не подтверждаю. Запустил видео, поставил на паузу, перематываю - картинка обновляется1. Запустить видео
Вернее я бы вообще сделал построение ВСЕГО кода шейдера в рантайме(как это реализовано в том же vlc или mpv) и дальнейшую компиляцию.В чем глубинный смысл этого действия? Получать тормоза при каждой глобальной перекомпиляции?
На отладочной версии такое бывает. Что-то не нравиться базовому классу.Интересно, что такое проявляется только в паре с нашим MPC Video Decoder.
Если создать (построить) чистый граф фильтров, состоящий только из наших автономных фильтров с нашим же MPC Video Renderer, то можно даже получить ситуацию, когда "Scaling 0x0 -> 0x0 (https://yadi.sk/i/4pvEfbis8cncDA)", при этом нет никакого изображения, просто "черный экран".Очень странно на входе 1280x720, на выходе окно тоже имеет размер. Посмотри, что в отладочная версия MPC VR пишет во вкладке "Information".
Очень странно на входе 1280x720, на выходе окно тоже имеет размер. Посмотри, что в отладочная версия MPC VR пишет во вкладке "Information".Посмотрел.
DirectX 11
Graphics adapter: AMD Radeon HD 5700 Series (1002:68B8)
VideoProcessor : D3D11
Source rect : 0,0,1280,720 - 1280x720
Target rect : 0,0,1280,720 - 1280x720
Video rect : 0,0,0,0 - 0x0
Window rect : 0,0,1272,716 - 1272x716
SrcRender rect: 0,0,0,0 - 0x0
DstRender rect: 0,0,0,0 - 0x0
Если, при "Direct3D 9Ex", мы откроем плейлист и будем растягивать его вверх, или налево, в зависимости от его расположения, то у нас резко начинает возрастать Sync Offset и появляются пропущенные кадры прямо во время воспроизведения видео файла.Рендерер не рассчитан на плавное воспроизведение, если его окно постоянно изменяют.
Рендерер не рассчитан на плавное воспроизведение, если его окно постоянно изменяют.О как... Вот так новость... о_О
Появление пропущенных кадров зависит не только от DX, но и от режима презентации.
Evgeniy1990Понятно. Просто я удивлен тому, насколько жестко ведет себя этот самый "Direct3D 9Ex", который, как мне всегда казалось, так вести себя никогда не должен. Ведь на том же EVR-CP Direct3D9 так себя не ведет. А мерцание изображения (кадров) при Flip/FlipEx - это вообще нечто. Странно, что Direct3D11 так себя не ведет.
Поясню. При изменении окна рендерер постоянно рендерит имеющийся кадр под новый размер. Если декодер подготовил новый кадр, то ему придется подождать, когда рендерер освободиться. Но время идет, и может получиться так, что кадр от декодера уже устарел и нужен следующий. Поэтому кадр будет пропущен.
Evgeniy1990Ух ты, так это оказывается, еще и особенность Windows 10 и пакета Win10SDK. Здорово! Значит я не зря собираю сборки с использованием Win10SDK. :)
"Flip discard" доступен только для Windows 10 (https://docs.microsoft.com/en-us/windows/win32/api/dxgi/ne-dxgi-dxgi_swap_effect) и если при сборке использовался Win10SDK. Для остальных случаев для DX11+Flip будет использоваться "Flip seqential".
По поводу "медленного" ресайза, по поводу моргания при ресайзе(DX9 + Flip) - проверяемПроверил тестовый билд, а также собрал и проверил последний SVN-билд вместе с последним MPC Video Renderer.
https://yadi.sk/d/v9IWDMoEp-FlUw
Добавлено: 2019-08-29 18:32:41
Хотя уже не актуально, собираем последний BE и VR и проверям
Дай пример файла, и если можешь запиши видео "со стробом" - дабы понять что такое. Ну и скрин настроек/статистики.Вот мой пример (https://yadi.sk/d/_FyC9M4wdXKRjQ). Стробит не по-детски!
Так стробит: https://radikal.ru/video/Yv1bfrNK5gAВот это жесть! Что на Intel, что на AMD - одни и те же проблемы, в большинстве случаев.
У меня застробило после уменьшения какой-то нагрузки для DXVA после v0.3.2.860 - на ру-борде обсуждалось. Мне бы ещё пару пожеланий то ли для рендерера, то ли для плеера:Выключить преобразование HDR->SDR мы можем, но мы не умеем отправлять метаданые в дисплей. Смысла от пропуска HDR не будет.
1. Режим пропуска натурального HDR (без конвертации), как в madVR
Второй вопрос не понял. Причем тут MPC VR? По твоим скриншотам видно, что IDM перепаковывает матрешки и портит свойства видеопотока.Второй вопрос видимо связан с ReClock, устаревшая библиотека MediaInfo которого не определяет на автомате fps большинства WebM роликов (но треть моих роликов всё же определяет). Попробовал на других рендерерах - то же самое. Поэтому этот вопрос закрываю.
DirectX 9
Graphics adapter: NVIDIA GeForce GTX 950 (10DE:1402)
VideoProcessor : DXVA2 {6CB69578-7617-4637-91E5-1C02DB810285}
DeinterlaceTech.: PixelAdaptive
ReferenceSamples: Backward 0, Forward 0
Display Mode : 1680 x 1050, 60 Hz
DirectX 9
Graphics adapter: Intel(R) HD Graphics 4000 (8086:0162)
VideoProcessor : DXVA2 {BF752EF6-8CC4-457A-BE1B-08BD1CAEEE9F}
DeinterlaceTech.: EdgeFiltering, InverseTelecine
ReferenceSamples: Backward 1, Forward 0
Display Mode : 1920 x 1080, 60 Hz
Разница разных адаптеров в ReferenceSamples. Похоже один кадр Backward теряется.Разница разных адаптеров в ReferenceSamples. Похоже один кадр Backward теряется.В моем случае, исходя из ваших слов, потери гораздо значительные. Backward = 2 (https://yadi.sk/i/EPDEt2S6BCTE_Q), Forward = 0
Я так понимаю, что это нехорошо, так ведь?
На Nvidia все гуд, есть картинка.На AMD отсутствует картинка, начиная с 870-ого билда. Т.е поломался код только для AMD-видеокарт.
Ну не повезло :)Вот так ответ...
Для информации. Версия и git-хэш могут быть легко скопированы прямо из окна настроек MPC VR. Хэш очень ускоряет нахождение нужного комита. А то вот сижу вручную отчитываю 11 комитов (881-870) назад.Спасибо за информацию. Учту. Но я же указал проблемный commit: 9c65e14.
В комите 870 лечили падение плеера (https://mpc-be.org/forum/viewtopic.php?id=508).Падение было исправлено, но почему-то теперь перестали отображаться кадры при перемотке во время остановки воспроизведения. Да уж, не одно, так другое... После последнего релиза, явно пошли некорректные изменения, особенно для видеокарт AMD и Intel.
Покажи, что пишет во вкладке "Information".Вот что:
DirectX 9
Graphics adapter: AMD Radeon HD 5700 Series (1002:68B8)
VideoProcessor : DXVA2 {3C5323C1-6FB7-44F5-9081-056BF2EE449D}
DeinterlaceTech.: PixelAdaptive
ReferenceSamples: Backward 2, Forward 0
Display Mode : 1280 x 1024, 75 Hz
DEBUG info:
Source rect : 0,0,1280,720 - 1280x720
Target rect : 0,0,1280,720 - 1280x720
Video rect : 0,0,1278,719 - 1278x719
Window rect : 0,0,1278,719 - 1278x719
SrcRender rect: 0,0,1280,720 - 1280x720
DstRender rect: 0,0,1278,719 - 1278x719
Я наверное просто верну копирование, если девайсу видеопроцессора нужны вспомогательные кадрыПопробуйте, я потом проверю.
Залил v0.3.3.882_git2019.10.13-d666896. Должен починиться деинтерлейс и перемотка после стопа.Проверил последний коммит.
Залил v0.3.3.882_git2019.10.13-d666896. Должен починиться деинтерлейс и перемотка после стопа.
MPC-BE должен закрывать же окошки свойств при закрыти проигрывания.Он их закрывает, при переходе, но после него видео файл воспроизводится без изображения.
Кстати, в последнем коммите вернулся еще один исправленный баг - пропуски кадров, при расширении, или сужении плейлиста, во время воспроизведения видео файлов на "DX9" + "Discard".Очень интересно, на обычных видео файлах (большинстве типичных файлах), поведение интерфейса и различных окон плеера, при взаимодействии с видео - нормальное.
Да хрен его знает что там происходит при открытом окне свойств smileСтранно. А как вы раньше это отлавливали?
Если в настройках рендера вкл. опцию "Double the frame rate when deinterlacing", средняя скорость кадров увеличится до 60, но начинают выпадать кадры. :(10 кадров на 2994? Это ни о чем. Возможно при запуске и манипуляциями с окном некоторые кадры не успели в свое время.
10 кадров на 2994? Это ни о чем. Возможно при запуске и манипуляциями с окном некоторые кадры не успели в свое время.Неа, кадры выпадают по одному где-то каждые 8 секунд (замерял спецом с секундомером). То есть, прошло 8 секунд, кадр выпал, еще прошло 8 секунд, кадр выпал и так до конца воспроизведения. Выпадают как в режиме Direct3D 9Ex, так и в режиме Direct3D 11.
Скриншоты лучше делать со включенной статистикой. Так они более информативные.Насчет интерлейса: https://imgur.com/aKlMQXQ
Да хрен его знает что там происходит при открытом окне свойств :)А происходит то, что поверхность не очищается от предыдущего кадра, или кадров вообще, если открыты его свойства.
Aleksoid1978
На D3D11 аппаратный деинтерлейс не работает и никогда не работал вообще, даже с опцией удвоения кадров, хотя по логике должен, тем более данная опция теперь включена по умолчанию.
В других рендерерах вообще нормально работает деинтерлейс?В EVR(CP) работает "Top-Field First", "Bottom-Field First" тоже работает, но картинка дергаться начинает, "Прогрессив" выдает то, что на этом (https://mpc-be.org/forum/viewtopic.php?pid=5240#p5240) скрине. Подозреваю, что MPC VR тоже деинтерлейсит в прогрессив, от того и проблема. Может добавить опцию деинтерлейсить в "Top-Field First"? Не у всех ведь, современные супер видюхи с поддержкой супер шейдеров и прочей эзотерики. :)
В EVR(CP) работает "Top-Field First", "Bottom-Field First" тоже работает, но картинка дергаться начинает, "Прогрессив" выдает то, что на этом (https://mpc-be.org/forum/viewtopic.php?pid=5240#p5240) скрине.)Т.е. вы намеренно задаете неправильное значение полей интерлейса и придираетесь к тому, что деинтерлейс начинает работать неправильно?
Залил тестовый mpcvr-894_class_dxva2vp.Хммммм. Включил в настройках дров амд вот эту опцию:
Перенес DXVA2 VP в отдельный класс. Прошу потестировать.
Хммммм. Включил в настройках дров амд вот эту опцию:1. У меня нет AMD.
...
И интерлейс пропал. Хотя с EVR(CP), интерлейса не наблюдается что с вкл. что с выкл. опцией. :rolleyes:
1. У меня нет AMD.Вот серьезно, вам очень необходима видеокарта от AMD и желательно HD-серии, вот прямо срочно, иначе нет смысла продолжать развивать видео-рендерер.
Залил 894 и 895. До и после использования отдельного класса для DXVA2 VP. Если заметите проблемы в режиме DX9 на 895 и новее - пишите.Ну совершенно никакой разницы, на D3D11 как была гребенка, так и осталась, даже с опцией удвоения кадров.
А все потому что у вас нет AMD.И не надо нам такого счастья - тем более какие то старые модели :)
И не надо нам такого счастья - тем более какие то старые моделиВы что собрались только под NVIDIA развивать видео-рендерер? О_о Тогда мне все ясно...
Если мне кто либо предоставит удаленный доступ к машине с Intel/Radeon 24/7 c Win10 - то думаю я смог бы понять/разобраться, ну или как минимум попробовать. Но я уверен на 100% что такого не случится.Да, пожалуйста, я готов вам предоставить свою машину с Radeon HD + Win 10 + VS2019 со всеми исходниками проекта.
Вот серьезно, вам очень необходима видеокарта от AMD и желательно HD-серии, вот прямо срочно, иначе нет смысла продолжать развивать видео-рендерер.У меня свои причины заниматься MPC VR, отсутствие какой-либо железки на это не влияет.
Ну совершенно никакой разницы, на D3D11 как была гребенка, так и осталась, даже с опцией удвоения кадров.В 895 ничего связанного с D3D11 не было. И вообще DXVA2 VP у нас используется только для D3D9.
DX9 трогать вообще нет смысла,Кому-то нет смысла, кто-то хочет возможность подключения внешних шейдеров. Я хочу когда-нибудь поворот кадра прикрутить и графики в статистике.
Да, пожалуйста, я готов вам предоставить свою машину с Radeon HD + Win 10 + VS2019 со всеми исходниками проекта.Такое лучше обсуждать в личке.
У меня свои причины заниматься MPC VR, отсутствие какой-либо железки на это не влияет.Звучит так, словно и не для пользователей он развивается, а для личного использования.
Карту AMD мне некуда сувать. Для второго компа тоже места нет.Вам, кстати, тоже готов предоставить доступ к своей машине с Radeon HD.
Кому-то нет смысла, кто-то хочет возможность подключения внешних шейдеров. Я хочу когда-нибудь поворот кадра прикрутить и графики в статистике.Да я и не против, наоборот, я только - за! Как раз жду этих моментов, когда MPC VR достигнет уровня возможностей, как у EVR-CP, особенно с "Rotation 90". А то и вовсе превзойдет его.
Такое лучше обсуждать в личке.Я скинул свои данные для удаленного доступа через TeamViewer ему в личку. Вам тоже скинул.
И надо заранее понимать, что удобное время для тебя и разработчика может не совпасть.Да я прекрасно это понимаю!
Залил 894 и 895. До и после использования отдельного класса для DXVA2 VP. Если заметите проблемы в режиме DX9 на 895 и новее - пишите.895 в режиме DX9 кадры по одному стабильно выпадают при простом воспроизведении с включенной опции "Double the frame rate when deinterlacing", если откл. эту опцию, ничего не выпадает. Гребенки нет, что с вкл. что с выкл. опцией "Double the frame rate when deinterlacing". Все это справедливо как для Intel HD Graphics 3000, так и для AMD Radeon HD 6490M. Тестировал на обеих видюхах.
ЗЫ Правильно я понимаю, что режим DX11 круче режима DX9?В какой-то степени это так, например, DX11 лучше работает со Swap Effect - Discard и Flip, по сравнению с DX9.
DestroyWindow(m_hWnd) failed with error E_ACCESSDENIED
Собрал 898. Возможно что-то поменялось с интерлейсом на DX11. Гляньте.Глянул. Гребенка так и осталась на DX11. Пока ничего не поменялось.
Глянул. Гребенка так и осталась на DX11. Пока ничего не поменялось.И у меня гребенка осталась. :(
Посоветую в настройках драйвера указать, какую видеокарту использовать для плеера.Ну, это итак понятно. Для MPC-BE я всегда использую дискретную видеокарту, то есть AMD Radeon HD 6490M, но в статистике рендера, почему-ту написано что активна Intel HD Graphics 3000. :rolleyes:
А что показывает EVR-CP ?То же самое.
Я такое не умею, увы. sad Может кто-то возьмется?Проверь (https://yadi.sk/d/zEbZtPnY5nVIOA).
Вот пробуем - консольное приложение, что выдаст.Тоже самое, при запуске EnumAdapterByGpuPreference.exe, ничего не происходит. Винда 1903 (Сборка ОС 18362.449).
https://yadi.sk/d/ARamZPHdQjuRFg
Только помним что нужна Win10 1803 или новее.
Собрал mpcvr_907_d3d11_pastframes_1 (https://yadi.sk/d/uwBu4owfK9vOwg).Все так же (https://mpc-be.org/forum/viewtopic.php?pid=5273#p5273), ничего не поменялось.
Теперь старые кадры участвуют получении текущего.
Просьба проверить работу на интерлейсных роликах на AMD. Хочется знать, стало лучше-хуже или без изменений.
Где то в настройках видео, в выборе рендереров.Если речь об это:
Собрал mpcvr_907_d3d11_pastfutureframes_2.Без изменений. В режиме D3D11 гребенка на месте.
Просьба проверить работу на интерлейсных роликах на картах AMD. Стало лучше-хуже или без изменений?
Выложил mpcvr_908_d3d11_deinterlace_4. Просьба проверить.В режиме D3D11, гребенка на месте.
Еще залил MPCVideoRenderer-v0.3.3.909/910. Вдруг поможет.Проверил оба билда и 909 и 910, гребенка на месте.
назначить на радеон возможности нетВообще то есть. Надо поставить мод дров от leshcatlabs
Вообще то есть. Надо поставить мод дров от leshcatlabsНасколько мне известно, автор уже давно забросил свой проект. :rolleyes:
Кстати не напишете, какая карточка от АМД используется у вас?AMD RADEON HD 6490M (https://www.notebook-center.ru/video_293.html).
Что значит, если пишет в информации настроек рендера - filter is not activeТы открыл окно настроек неактивной копии фильтра.
Как прикрутить сабы в mpc?В MPC никак и можно не ждать
Есть ли разница между качеством хромы lancoz vs catmull rom? стоит выбирать второе?Lancoz не используется для Chroma scaling. Параметры scaling по умолчанию оптимальны. Стоит или не стоит накручивать, каждый решает сам. Все зависит от контента, дисплея и зрения юзера.
Что лучше flip Или discard? dx9 или dx11?Там нет вариантов лучше-хуже. Системы и железо разные у людей. Кто хочет экспериментировать, меняет стандартную настройку, смотрит результат и делает свой личный вывод.
В MPC никаккороч потестил с DirectVobSub в MPC 1.7.16 - сабы пашут, цвета выровнялись, градиент стал заметен сильно
Осталось узнать, что делать с зеленкой?Я вижу два разных темных кадра упакованных в GIF. Второй кадр естественно хуже. Это не сравнение, а ерунда какая-то.
V0lt
Проверил все ваши тестовые билды - на всех присутствует гребенка на DX11 + AMD.
LongKick64
У меня иная ситуация в PotPlayer. На D3D11-видео-рендерере ошибки нет, но и гребенки тоже нет и даже правильно работает "block change", в отличие от MPC VR. Да уж, я удивлен.
"Block change" в MPC VR работает некорректно, или не работает вообще.
Покажи скрин с Pot с включённой инфой(Tab).Скриншот статистики D3D11-рендерера в PotPlayer (https://yadi.sk/i/_LyuOFmFCuCgNw).
И что ещё за “Block change” ?Детектирование смены кадров видео. В MPC VR оно не работает вообще, потому что если я его включу, начнется такое...
Ну видно же на скрине что нет «хардварного» деинтерлейсаВ PotPlayer имеется свой деинтерлейсинг. Я его включил, выбрал - аппаратный, но частота кадров все равно не удваивается. Это говорит о том, что в PotPlayer он не работает вообще.
какой-то DXVAHDЭто видеопроцессор так-то.
А что ещё за «детектирование смены кадра» ? Наверное какая то галка в драйвере ?Да, это галка в драйвере, которая включена в нем по умолчанию. И в MPC VR имеется с ней проблема, но только на DX11. Мне пришлось перебрать абсолютно все билды вплоть до самого первого, чтобы разгадать откуда она взялась.
Но опять же - судя по скрину для обработки юзается DX9, DX11 тупо для вывода.
Это я сказал в том смысле - какое отношение имеет к DX11. И проверь в DXVAChecker - на твоей карте он вообще поддерживается, DXVAHD ?Проверил. Судя по DXVAChecker (https://yadi.sk/i/WNfUFT96Na9oPQ), DXVA-HD не поддерживается. Так что, вот вам и "хваленый PotPlayer" - кусок говна, в котором врет даже статистика видео-рендереров. А аппаратный его родной деинтерлейсинг так и вообще не пашет.
Evgeniy1990, лол, чем же тебя корейский друг обидел?Лично меня, сам кореец, ничем не обидел. Но, занимается он не тем, чем нужно. Ему бы, в первую очередь, исправить бы проблемы со статистикой, размерами текса в ней, чтобы умещалась в экран монитора, да и деинтерлейсинг пофиксить.
Я думаю дело в самой картеЯ так не думаю. Думаю, что проблема банально в коде, но не уверен точно. Могу сказать так, что раз уже v0lt сделал столько тестовых билдов и никакого улучшения в сторону исчезновения гребенки они не дали, значит, возможно дело и не в коде самого MPC VR. Но и говорить абсолютно точно, что проблема в драйверах AMD тоже нельзя, ибо я вижу отличия "MPC VR" и "Кино и ТВ".
Оффтоп конечно - но он в первую очередь для Кореи делает."Для Кореи делает"... ))))))
V0lt, прошу проститьУ меня наверное монитор не очень, но принципиальной разницы не вижу. На уровне шумов есть небольшая разница и все.
Кадр статичный если что.https://drive.google.com/drive/folders/1OskBEFhMXwTCrB3tAalUuCgk_1KF2jt2?usp=sharingMediaInfoVideo
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High 10@L5.1
Format settings : CABAC / 16 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference : 16 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 23 min 39 s
Bit rate : 2 489 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 10 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.050
Stream size : 421 MiB (90%)
Writing library : x264 core 148 r2762+56 7979737 t_mod_Custom [10-bit@all X86_64]
Encoding settings : cabac=1 / ref=16 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=10 / psy=1 / fade_compensate=0.80 / psy_rd=0.85:0.00 / mixed_ref=1 / me_range=24 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=3 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / fgo=0 / bframes=16 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=crf / mbtree=1 / crf=16.3000 / qcomp=0.65 / qpmin=0:0:0 / qpmax=81:81:81 / qpstep=4 / ip_ratio=1.40 / aq=3:0.80 / aq-sensitivity=10.00 / aq-factor=1.00:1.00:1.00 / aq2=0 / aq3=0
Language : English
Default : Yes
Forced : No
Color range : Limited
Matrix coefficients : BT.709[свернуть]
но принципиальной разницы не вижуно она есть, не так ли?
На уровне шумов есть небольшая разницамне все равно на шумы, мне кажется общий цветовой тон немного к зеленому сместился
Для тестов деинтерлейсаЯ потестил, короч
Для тестов деинтерлейса используй Bon Jovi - It\'s My Life.vob. В нем много движухи и размер кадра небольшой. Если гребенка есть, то ее сразу будет видно особенно если развернуть окно на весь экран.Гляньте пожалуйста на скриншот (https://yadi.sk/d/PvOhz6vYxe2gTw). Вроде как работает аппаратный деинтерлейс, судя по статистике D3D11-рендерера этого PotPlayer. (29.97 -> 60 FPS) И гребенки нет.
Вроде как работает аппаратный деинтерлейс, судя по статистике D3D11-рендерера этого PotPlayer. (29.97 -> 60 FPS) И гребенки нет.
Да плевать на DXVA-HD - это ЛОЖЬ! Главное 29.97-> ~ 60 FPS.Цитата: Evgeniy1990Вроде как работает аппаратный деинтерлейс, судя по статистике D3D11-рендерера этого PotPlayer. (29.97 -> 60 FPS) И гребенки нет.
Да не работает - там опять в статистике DXVA-HD, которого там в принципе быть не должно. Если же подразумевается просто DXVA2 VP - то тогда для деинтерлейса используется DX9 а не DX11.
А на 10-очном плеере есть возможность проверить?Да я бы с радостью проверил, вот только этот десяточный плеер "Кино и ТВ" не понимает формат VOB.
ПотПлеер под капотом может мудрить, вплоть до подключения своего деинтерлейса. А виндовый плеер скорее всего сделает все по спекам.Да я уже понял, как ведет себя этот хваленый ПотПлеер - нагло врет, <негатив удален модератором>. А это плохо и грустно.
Да я бы с радостью проверил, вот только этот десяточный плеер "Кино и ТВ" не понимает формат VOB.Можешь на моем клипе (https://mega.nz/#!T9BFDSIL!eeixxo7lrDPXV0DQquKy0EVLbvPbqZ7thhZNU9v9nPk) проверить, он тоже гребенчатый на amd + d3d11. ;)
Да я бы с радостью проверил, вот только этот десяточный плеер "Кино и ТВ" не понимает формат VOB.Попробуй эти (поддержка m2ts заявлена (https://support.microsoft.com/ru-ru/help/3078080)):
Можешь на моем клипе проверить, он тоже гребенчатый на amd + d3d11.Проверил ваш клип в плеере "Кино и ТВ".
Попробуй эти (поддержка m2ts заявлена):Огромное спасибо вам, ребята, за предоставленные тестовые сэмплы. :)
Автомобили.m2ts
Токио.m2ts
японка на веревке.m2ts
В них гребенка даже при уменьшении хорошо заметна.
yan.sarkiss, в рамках текущей темы нас интересует только деинтерлейc в MPC Video Renderer в режиме D3D11.я использовал разные декодеры, т.к за деинтерлейс ведь отвечают
Гляньте пожалуйста на скриншот.Я вижу что вместо MPC-VR, запущен DX11 Video Renderer с неподдерживаемой интерполяцией (хотя к деинтерлейсу никакого отношения она не имеет)
Вроде как работает аппаратный деинтерлейс, судя по статистике D3D11-рендерера этого PotPlayer. (29.97 -> 60 FPS) И гребенки нет.поиграйтесь с настройками в деинтерлейсе, выбирайте методы(аппаратный). Если что-то меняется - значит аппаратный работает. Там есть режимы и для обычных, так и для удвоения кадров
На MPC VR отчетливо видна гребенкаЭто с FFmpeg, а с DXVA DX9/DX11 или LAV Video software/dx9/dx11/copyback, как обстоят дела?
Если же подразумевается просто DXVA2 VP - то тогда для деинтерлейса используется DX9 а не DX11.не могу понять, что за рендер такой, которого у меня в системе нет
Но вот что странно - на Nvidia гребенка в Pot в режиме вывода DX11опять же, гребенка возникает с каким декодером?
по поводу зелени, монитор калибровали? Похоже на фокусы с цветовым профилем. Я свой Spyder5Express калибрую.не калибровал. У меня 2 монитора. Один внешний/ второй на ноуте
также присутствует гребенка в приложении "Кино и ТВ" на D3D11(DX11) + AMD.Народ, если вам так надо использовать этот недоплеер
поиграйтесь с настройками в деинтерлейсе, выбирайте методы(аппаратный). Если что-то меняется - значит аппаратный работает. Там есть режимы и для обычных, так и для удвоения кадровДа уже давным давно игрался с ними, все правильно установил и включил. Так что вы, опоздали со своим ответом.
И почему черные грани серые? такое ощущение будто юзается 16-235Спросите свой любимый и дряной ПотПлеер. Пусть он вам истину глаголит. Хотя, он только врать и умеет.
И почему обязательно нужно 60fps, когда на выходе должно быть этоВот сразу видно, что вы не понимаете, как работает аппаратный деинтерлейс. Он должен устранять интерлейс (эффект гребенки). А для этого кадры должны быть удвоены. Вместо 29.97, должно быть или сразу ~ 60 FPS, или надпись именно на выходе: 29.97 -> ~60 FPS.
Frame rate : 29.970 (30000/1001) FPS
Ваш ответ очень забавный, а то я не знаю, какой нужно выбирать деинтерлейс.я не сомневаюсь. Я имел в виду если использовать разные режимы, то можно увидеть разницу.
Спросите свой любимый и дряной ПотПлеерну-ну, не надо гнать на пот. У меня все нормально, поэтому и спросил (вот если с амд юзать то там как у вас будет, но это к карте претензии а не к поту))) )
Вот сразу видно, что вы не понимаете, как работает аппаратный деинтерлейсНу я понимал его так, что если из двух полукадров создать один - то будет 30фпс вместо 60. Хотя и от видео тоже зависит. где-то реально 60 даст гладкое воспроизведение. А где-то будет как в том муз клипе, имеем 60 - а на деле 30
надпись именно на выходеопять же, зависит от метода.
я использовал разные декодеры, т.к за деинтерлейс ведь отвечаютДа, некоторые декодеры сами умеют делать деинтерлейс, но это всего лишь доп. фича, которая в рамках данной темы нам неинтересна.
они, а не mpc vr, поправьте если не прав.
Видеорендереры могут использовать DXVA2 VP (DX9) или D3D11 VP (DX11), которые делают деинтерлейс за счет фич железа/драйвера.T.e DXVA Native?
PotPlayer предлагаю больше не обсуждать.согласен
T.e DXVA Native?Нет. Забудь о декодерах вообще.
Баг-тикет: Внешний CyberLink Video Decoder (CLCvd.ax_v2.0.5940.6918) (https://www.upload.ee/files/10544390/VideoFilter_x64_CyberLink_PowerDVD_20.0.0925.62.zip.html) работает исключительно в SW-режиме на встройке Intel HD Graphics 4000 ; на встроенных рендерерах работает в DXVAПодтверждаю, посмотрим.
На 100% уверен что у него просто зашит список видео-рендереров с которыми будет работать DXVA :)Интересно, что на MPEG-2 включается GPU
Интересно, что на MPEG-2 включается GPUНу это вопрос уже не ко мне :)
Просьба проверить режим DX9 c Swap Effect = Discard.Сильно ли стала тормозить картинка при изменении окна?У меня норм все.
Так же прошу проверить поворот кадра в режиме DX9 (в режиме DX11 поворот кадра проверять не надо, он не доделан).Поворот кадра это где?
Поворот кадра это где?В телефоне. :) Снимаешь видео в разных положениях, а потом смотришь на компе.
Так же прошу проверить поворот кадра в режиме DX9 (в режиме DX11 поворот кадра проверять не надо, он не доделан).Проверил. У меня работает.
PS: Для корректной поддержки поворота кадра требуется MPC-BE v1.5.4.4876 или новее.
Выложил MPCVideoRenderer-v0.3.3.933_git2019.11.06-b55f36e.Гребенка на месте.
Снова прошу проверить деинтерлейс на AMD с удвоением кадров.
Все отображаются субтитры - зачем вносить смуту :)У меня не отображаются. Зачем мне врать? :rolleyes:
Субтитры у меня отображаются. Если у тебя не так, то покажи настройки субтитров в плеере и выложи небольшой проблемный файл.Все настройки по умолчанию. Версия плеера 1.5.4.4878. Версия MPC VR 0.3.3.933. Субтитры не отображаются в режиме D3D11. Не отображаются не внешние, не вшитые сабы. Раздачи на рутрекере, где сабы не отображаются:
А лучше на этом проверь.Проверил. В режиме Direct3D11, субтитры не отображаются.
СубтитрыТест.mkv
Добавлено: 2019-11-07 17:44:44
И этом
[FTV-subs] Touhou - Bad Apple!! PV [960x720] v2.mkv
В логе мало информации. Если рядом положить вот эти DLL (https://yadi.sk/d/1LurZiRLY2_l7g) соответствующей разрядности, станет ли лог жирнее?Бросил эти файлы в папку с плеером MPC-BE.1.5.4.4878.x64 и субтитры появились! MPC VR был такой: MPCVideoRenderer-v0.3.3.934_git2019.11.08-e04319e_Debug. Вот получившийся лог: https://mega.nz/#!WlgHzA6R!0M8T-aXUAr-rvszXWIRHrvIkJuKWVFlAbmWKez9wtgo
А то что я выложил для проверки выше - как на нем ?Никак, сабы по прежнему не отображаются( Создается такое впечатление, что субтитры на встроенной графике (Intel HD Graphics 3000) пытаются отрисовываться, но так, как она не поддерживает DirectX 11, только DirectX 10.1, то и субтитров нет. С другой стороны, в дровах AMD, видно что задействована дискретная видеокарта (AMD Radeon HD 6490M), а она как раз таки поддерживает DirectX 11.
STDMETHODIMP CMpcVideoRenderer::Run(REFERENCE_TIME rtStart)
{
...
return CBaseVideoRenderer2::Run(rtStart);
STDMETHODIMP CBaseRenderer::Run(REFERENCE_TIME StartTime)
{
...
SetRepaintStatus(FALSE);
void CBaseRenderer::SetRepaintStatus(BOOL bRepaint)
{
CAutoLock cSampleLock(&m_RendererLock) // вот тут !
Ошибка такаяРелиз 0.3.4 мы типа выпустилиА где скачать можно?
Сбрасываю настройки. Включаю режим DX11 и статистику. Запускаю плеер, начинаю воспроизведение, закрываю плеер и тут же получаю ошибку. Версия v0.3.4.956 x64, Win8.1.Проверил релизную версию видео-рендерера. По вашему алгоритму, при закрытии плеера, нет никаких ошибок.
Прошу проверить.
А у меня падают все наши Релизы - https://github.com/Aleksoid1978/VideoRenderer/releasesВот это новость!
Причем может быть сразу две ошибки при закрытии подряд.Вот это жесть!
Получается, что у вас падают только релизные версии, а бета-версии не падают вообще. Я правильно понял?У меня падают любые сборки. И официальные релизы и беты. Не падают только отладочные (DEBUG) версии.
Да не может быть это связано с VR, давай ссылку(ссылки) - проверю/сравню.Вот ссылка (https://www.youtube.com/watch?v=C3OFlB291Yk).
Воспроизводится видео 60 fps. Декодируется аппаратно, кодек неизвестен. Шейдеры надеюсь не добавлены.Шейдеры я не добавлял.
Ответ почему можно дать, если будут скриншоты GPU-Z после 10 секунд воспроизведения с одинаковым размером окна:
1) для EVR-CP или старого MPC VR (v0.3.8.1060);
2) для свежего MPC VR.
Очень странно, нагрузка в MPC VR меньше получается.1. Используется MPC Audio Renderer
1. Какой аудиорендерер используется?
2. Если файлы скачать и воспроизвести локально будет ли проблема?
3. В стабильном MPC VR v0.3.8.1060 проблема есть?
mpcvr_1113_d3d11_win7Круто, DX11 на Windows 7!
Для тех у кого Windows 7 SP1 + Platform Update.
Возможно есть какой-нибудь способ подружить MPC VR с Adrenalin.
DASH@50/60 FPS на "Adrenalin" + "MPC VR" смотеть невозможно, картинка дерганная.
Круто, DX11 на Windows 7!Не особо там и круто :-).
Только вот изображение почему-то зеленое (https://yadi.sk/i/VYfNuw5U6cXf8Q).
И видеопроцессор используется шейдерный.
1. Используется MPC Audio RendererПопробуй на DirectSound и локально.
2. Будет даже локально. Тут не имеет значения софт или же DXVA2.
3. К сожалению, проблема есть даже в стабильнолй версии.
Попробуй на DirectSound и локально.Попробовал. К сожалению, частота кадров прыгает от 57 до 62 FPS, т.е она нестабильная.
MPCVideoRenderer-v0.4.0.1116_git2020.01.26-4298231Проблема с зеленым экраном при DXVA2 исправлена.
Какие настройки синхронизации на EVR-CP ? Попробуй без галок вообще и сравни.Так я и проверял с настройками по умолчанию, без галочек, связанных с синхронизацией кадров.
Бред какой то.Увы, но это не бред. Это чистая правда.
Более менее надежная зацепка, это то что "Microsoft DTV-DVD Video Decoder" перестал подключаться совсем... Или это от другого зависит...У меня всегда подключается Microsoft DTV-DVD Video Decoder.
Вернулась старая проблема с проигрыванием DVD.У меня вообще 8.065i на входе и 20.854 на выходе (https://yadi.sk/i/XQeWzuJ3u5i4vA) вместо 50i, как должно быть с учетом флага интерлейса.
У меня на DVD NTSC на входе частота 9.990i. Найду время - буду искать проблемное изменение.
У меня вообще 8.065i на входе и 20.854 на выходе (https://yadi.sk/i/XQeWzuJ3u5i4vA) вместо 50i, как должно быть с учетом флага интерлейса.Спасибо.
В общем сделал частичный откат 7a81052. Собирайте v0.4.0.1122 и проверяйте на своих системах. Мне похоже помогло на Win7.Проверил на Windows 10. Теперь Microsoft DTV-DVD Video Decoder отказывается подключаться совсем.
Microsoft DTV-DVD Video Decoder - на Win 8.1/10 не подключается к MPEG1/2, убрали эту возможность после 7.Да что вы говорите... Я воспроизводил баг с частотой кадров на DVD-Video как раз при помощи Microsoft DTV-DVD Video Decoder. Т.е. в моем случае он проявлялся при смене видео декодера. Так же как и у V0lt\'а, баг был нестабильным.
Вопрос был о частоте кадров.После частичного отката проблемного изменения, частота на входе и выходе стала нормальной.
После частичного отката проблемного изменения, частота на входе и выходе стала нормальной.Спасибо. Сборку 1122 залил.
Да что вы говорите... Я воспроизводил баг с частотой кадров на DVD-Video как раз при помощи Microsoft DTV-DVD Video Decoder.Работа этого декодера перепроверяется просто. Подключается обычный EVR или EVR-CP и запускается DVD-Video.
Работа этого декодера перепроверяется просто. Подключается обычный EVR или EVR-CP и запускается DVD-Video.Впервые в своей жизни слышу про такой способ. (О_о) Они что связаны (взаимосвязаны)???
Впервые в своей жизни слышу про такой способ. (О_о) Они что связаны (взаимосвязаны)???EVR-CP или EVR - это штатные рендереры MPC-BE и MPC-HC уже более десятка лет. Если с этими рендерарами не работает Microsoft DTV-DVD Video Decoder при воспроизведении DVD-Video, то с любым другим не будет и подавно.
EVR-CP или EVR - это штатные рендереры MPC-BE и MPC-HC уже более десятка лет. Если с этими рендерарами не работает Microsoft DTV-DVD Video Decoder при воспроизведении DVD-Video, то с любым другим не будет и подавно.Ясно, значит EVR и Microsoft DTV-DVD Video Decoder все же связаны между собой. Все-таки как никак у них один создатель - корпорация Майкрософт. Странно, что до этого последнего изменения, в моем случае он всегда подключался к DVD-Video, иначе я бы просто напросто не увидел (не воспроизвел) бы баг с урезанной частотой кадров до 8 FPS вместо 25 и т.д.
Нашел очень странный баг видеопроцессора D3D11.Проверил файлы на своих конфигурациях:
Вот тут есть картинки как это может выглядеть.Интересные картинки, особенно те, что более тусклые (бледные) (https://user-images.githubusercontent.com/60872236/74169519-ca28b380-4c6e-11ea-9171-a5707d6e8e3e.png).
На Windows 7 проверять бессмысленно. В ней отсутствует видеопроцессор D3D11.Понятно, что бессмысленно, но зато я увидел баг (проблему) с пропуском кадров во время воспроизведения этих 10-битных видео файлов на D3D11 при работе видеопроцессора Shaders, который вполне можно и желательно бы исправить.
Недостаточная производительность D3D11 на Win7 - это не баг.Что-то не похоже это на естественное поведение самого D3D11 на Win7. Уж больно чрезмерно высокая нагрузка присутствует во время воспроизведения. Настолько высокая, что даже интерфейс с курсором мышки еле двигаются.
Все бы ничего - но вот студию в 7 не запустить ))Чего??? О_о У меня на Windows 7 без проблем запускается 2019 студия, к тому же она имеет поддержку Win7 SP1.
MPCVideoRenderer-v0.4.2.1132_git2020.02.16-5a11686Теперь яркость всегда стабильная, не меняется, при изменении форматов текстуры. :)
Немного разрулил проблему с изменением яркости. Теперь видеопроцессор D3D11 выводит только в целочисленные форматы текстур (8 и 10 бит).
Ну если студия запускается на 7 - то берем ее и смотрим через профайлер кто дает нагрузку, правда сперва надо выяснить нагрузка на что - CPU или GPU.Выяснил. Бешеная нагрузка идет именно на GPU, он всегда под 100%.
Ну не хватает видимо "мощей" одновременно крутить HEVC 10bit + DX11 shaders.Это смешно... Быть такого не может, чтобы в аппаратном режиме не хватало мощностей.
LAV DX11 Native + DX11Ага, как же... на Win7 эта связка не прокатит.
Evgeniy1990, какие у тебя процессор и оперативная память? Память в двухканальном режиме работает?Характеристики системы (https://yadi.sk/i/0nOz6k0L4tpO-Q)
У Nvidia c копированием все хорошоВот именно, только у NVIDIA. С AMD наш MPC VR работает в разы хуже, чем должен работать.
Характеристики системы (https://yadi.sk/i/0nOz6k0L4tpO-Q)DDR2, допустим там скорость 6400 МБ/с.
Я не услышал ответ на вопрос. На Win8.1/10 так же тупит или нет? Есть возможность проверить?Я же сказал, поставлю Windows 10 на машину с AMD Radeon RX 580 Series и проверю.
Evgeniy1990, попробуй сборки mpcvr_1133_upsr_1 и mpcvr_1133_upsr_2.Проверил ваши тестовые сборки.
Выкладываю mpcvr_1137_upsr_4. Зелень вроде убрал.Ха, зелень так и осталась.
Было:
D3D9.LockRect/UnlockRect -> D3D11.Map/Unmap -> memcpy -> D3D11.CopyResource
Стало:
D3D9.LockRect/UnlockRect -> D3D11.UpdateSubresource
Было:
D3D11.Map/Unmap -> memcpy -> D3D11.CopyResource
Стало:
D3D11.UpdateSubresource
Пойдем по более простому варианту. Прелагаю сборку mpcvr_1137_nv12p010_d3d11vp. В рендерере должен быть включен режим D3D11 и статистика, остальные настройки по умолчанию.Проверил вашу сборку. Увы, пока не помогло...
Даже не знаю что сказать. Сделай лог для mpcvr_1138_nv12p010_d3d11vp_Debug с помощью DebugView, пожалуйста. Находится там же.Сделал. Пожалуйста (https://yadi.sk/d/y9jdH1UfZm_SVQ).
Evgeniy1990, судя по логу все хорошо. Почему у тебя зелень в этом билде, мне непонятно.Вот и мне непонятно. Что самое странное, так это то что зелень присутствует только в ваших тестовых билдах, на Git-билдах ее и близко нет.
На этой машине студия установлена?Конечно, установлена.
В общем все очень странно. У тебя на AMD UpdateSubresource() просто не работает и никаких ошибок не выдает.Да уж, ну и ерунда... Один не требует, другой - требует, третьему хуже с требуемой функцией...
Nvidia не советует использовать UpdateSubresource() для часто изменяемых ресурсов, но если не использовать, то приходится делать дополнительное копирование, т.к. D3D11 VP хочет текстуру определенного типа. А на встройках Intel лишнее копирование заметно тормозит процесс передачи кадра в D3D11 VP. Такая вот ерунда.
а то мб я зря включаю его в своей 10 x64 LTSB.Люди! У вас же есть глаза! :)
Люди! У вас же есть глаза! smileДа, у меня есть глаза, а кроме них, есть еще и великолепная внимательность, которая мне говорит, что режим DX11 лучше всего работает на видеокартах от NVIDIA и хуже всего работает на видеокартах от AMD.
Я не могу ответить, лучше у вас режим DX11 или такой же как DX9. smile
Я уже писал, что DX11 - перспективный режим для Win10 (и возможно для Win8.1<удалено модератором>
MPC-VR 1148/1165, MPC-BE 5092/5095, Win7x64.
С включенным режимом DX11 на видео с субтитрами при появлении первой строки экран мигает белым, видно только строку субтитра.
На DX9 такого нет.
Режим D3D11 медленнее выводит субтитры.как пишет V0lt, на XySubFilter в директ 11 я этого никогда не замечал.
9. Dither под вопросом. Работает он, или нетРаботу дизеринга на типовом мониторе врядли можно увидеть.
+ SubRenderIntf.h
m_pSubCallBack -> bUseInMPCBE
Был простой рабочий код. Теперь костыли ради кривого кода в второнних плеерах? :|
if (!bUseInMPCBE) {
Redraw();
}
У меня нет ни одной идеи, зачем понадобился этот костыль именно в этой фукции.Никакой проблемы - все отлично. По нулям - значит столько тратиться на эти операции.Спасибо Aleksoid,да, я видел это прошлой ночью с фильмом 2160p 4k статистика отображает результаты кроме нуля.
Aleksoid1978,
V0lt,
https://yadi.sk/d/deYPFLXMqWBRig >здесь видеоролик и три скриншота сравнения между evr-cp, madvr и mpc-vr. В принципе везде использовались одинаковые условия(софтовое декодирование и shaders как видеопроцессор). Mpc-vr всегда дроппит в отличии от evr-cp и madvr.
Вы не хотите отображать статистику как пользовательский EVR в виде графика?Я планирую сделать график, но как в EVR он не будет.
Aleksoid1978,
V0lt,
30% GPU это разве критично? 70-100%, тут понятное дело. Взять хотя бы gt840m, тут даже dxva2 vp подключается, при 80% GPU дропов куча. Хотя не понял, почему в madvr, если включить dxva для интерполяции и цвета(в статистике p010/chroma=dxva/image=dxva), то на GPU нагрузка в два раза меньше, естественно и пропусков нет(жульничество?). Вот сравнение mpc-vr и madr c dxva2 процессингом на gt840m https://yadi.sk/d/cyBQEEj_NazWTA
Настроить LAV video decoder и MPC VR на DX11 Flip.
Запустить проигрывание видеофайла, остановить его, зайти в настройки MPC VR через контекстное меню на черном экране и изменить Swap effect, сохранить настройки.
Затем снова попытаться зайти в контекстное меню настроек, то пропадает указатель мыши, хотя пункты меню по-прежнему подсвечиваются. Указатель перестает быть виден во всем окне плеера.
Я думаю, надо будет убрать возможность изменения Swap effect во время воспроизведения, слишком на многое она влияет.
Не надо ничего убирать, этот же код/принцип в будущем будет использоваться для полноэкранного эксклюзивного режима.Я говорил лишь об отключении возможности изменения Swap effect юзером через настройки во время воспроизведения.
Aleksoid1978,
Ещё добавлю в копилку приколов переключения swap effect на стопе. Прошу помимо проскакивания кадра обратить внимание на переход с flip на discard, здесь почему-то включается нижняя панель инструментов, когда плеер в FS > https://yadi.sk/i/J3CcJSMGCFCYig
вы сможете добавить индикаторы на правильное положение красной трассы.Я ничего не понял.
При полноэкранном режиме, она может выходить за пределы экрана монитора.Проверь на версии 0.4.6.1285 (https://yadi.sk/d/X0EVMKP4TcmnHQ)
Наверное я что-то делаю не так - не смог у себя воспроизвести :) Ну или не понял алгоритма.Сделал для вас два видео-алгоритма. Один - полный (https://yadi.sk/i/vgplxeYWtUtelw), другой - простой (https://yadi.sk/i/zigL3zKMluL9Eg). Так вам будет нагляднее и понятнее.
Проверь на версии 0.4.6.1285Проверил. Баг также присутствует. Кстати, вы правы, похоже сам кадр улетает вверх, вот только сразу это не бросается в глаза, я даже не сразу это заметил на широкоформатном видео. Но если присмотреться снизу, то можно это увидеть.
Похоже там весь кадр уехал вверх, а не статистика.
Что можно - либо оставить как есть и забыть про нормальную поддержку мульти-мониторных систем, либо отказаться от режима Flip для D3D9.Хочу напомнить, что на AMD Radeon некорректно работает D3D9 Discard, при воспроизведении видео файлов с частотами кадров: 50/59.94/60 FPS. Так вот, если вы устраните данную проблему, тогда еще можно будет отказаться от Flip для D3D9.
Дайте ссылку откуда скачивать самую последнюю SVN версию MPC-BE. Я обычно наугад качал портативную бету.Пожалуйста (https://yadi.sk/d/AjAXDDHtHRIELg/Beta%20(Nightly)/1.5.5).
Не воспроизводится. Ясно.Значит, проблема уже была устранена.
Интересно, сборщики K-Lite понимают, что MPC-НС может поддерживать ваш рендер с оговорками?Им все равно. А вообще наш видео-рендерер вполне нормально работает с MPC-HC. К тому же, была улучшена совместимость его работы с другими плеерами. Так что можете не переживать. Вы даже сами можете проверить его работу, если вам это интересно.
В пакете K-Lite идет декодер DX11, а у Вас используется DXVA. В вашем плеере можно использовать DX11 декодер?В нашем плеере нет встроенного аппаратного DX11-декодера. Зато он есть в LAV Video Decoder. Сам DX11-декодер в нашем плеере использовать можно в паре с D3D11-видео-рендерером. Только для его работы требуется необходимая видеокарта и операционная система, начиная с Windows 8.1 и выше.
Я не понимаю смысла в последних изменениях. Зачем пересоздавать окно? Перемещение окна плеера на другой дисплей, подключенного к другой видеокарте, у меня не создавало никаких серьезных проблем. Как играло видео, так и играет, и даже аппаратный HEVC декодер не отваливался. Можно даже расположить окно одновременно на двух дисплеях, и ничего страшного не произойдет. А скоро похоже все мигать будет.
Так что мое предложение:У меня такой вопрос. Здесь сам факт наличия возможности переключения swap effect является проблемой, или же не дать пользователю по-переключать, чтобы потом не было нюансов. Уже упоминалось о проблемах с discard на amd c 50,59,60fps. Могу то же сказать и про intel, как раз с мульти-дисплейностью у discard при выводе на тв проблемы как в evr-cp, так и в mpc-vr dx9 и dx11. Картинка получается дёрганная, с flip - плавная.
1 - убрать переключение swap effect, оставив для DX9 - discard, для DX11 - flip.
Ну если оставить Flip для DX9 - то все что я описывал(мультимониторность, эксклюзив) будет невозможно внедрить.С madVR всё нормально и с dx9, и с dx11. А вот в поте discard тоже дёргает видео в evr-cp и dx11. Проверял на файлах с 59,970 и 60fps. Видно, не судьба с дискардом на интелке. Герцы, разумеется, на тв включал согласно fps
А проверьте еще в madVR, встроенные видео-рендереры в Pot с discard - там есть похожие проблемы как у EVR-CP/MPCVR с discard ?
Ну если оставить Flip для DX9 - то все что я описывал(мультимониторность, эксклюзив) будет невозможно внедрить.С madVR всё нормально и с dx9, и с dx11. А вот в поте discard тоже дёргает видео в evr-cp и dx11. Проверял на файлах с 59,970 и 60fps. Видно, не судьба с дискардом на интелке. Герцы, разумеется, на тв включал согласно fps
А проверьте еще в madVR, встроенные видео-рендереры в Pot с discard - там есть похожие проблемы как у EVR-CP/MPCVR с discard ?
Это еще норм когда несколько мониторов/ТВ к одной карте подключены, а если к разным - то получиться что декодирует одна, а выводит другая.Я про это как раз и написал. Запускаю видео HEVC на мониторе, подключенный к GTX 950, и перетаскиваю на телевизор, подключенный к Intel HD 4000. И в целом все нормально. Транслировать окно на нужный дисплей для DWM не проблема.
Другой вопрос - субтитры, размер "Desktop" задается под текущий монитор, и если разные - ну и качество рендеринга будет разным.Это вопрос уже к рендереру субтитров и плееру.
...в любом случае надо будет отслеживать изменения монитора и пересоздание, ну как минимум SwapChain - правда DX9 это не грозит.Это уже сделано через IExFilterConfig::SetBool("displayChange", true).
Или захотим сделать свой VSync - так же надо будет как-то отслеживать изменения монитора.Не знаю что подразумевается под "свой VSync", но Я не планировал изменение D3DPRESENT_PARAMETERS::PresentationInterval. Текущее значение D3DPRESENT_INTERVAL_ONE, меня полностью устраивает.
Ну и как, все отлично идет если запустить на мониторе - потом перейти на полный экран ТВ с разной частотой ? Все плавно ?Допустим ситуация, когда на основном дисплее 60 Гц, на дополнительном 23,976 Гц, и мы смотрим видео 23,976 fps на дополительном дисплее. Эксклюзивный режим не используется.
Aleksoid1978,ЦитироватьЧто можно - либо оставить как есть и забыть про нормальную поддержку мульти-мониторных систем, либо отказаться от режима Flip для D3D9.Хочу напомнить, что на AMD Radeon некорректно работает D3D9 Discard, при воспроизведении видео файлов с частотами кадров: 50/59.94/60 FPS. Так вот, если вы устраните данную проблему, тогда еще можно будет отказаться от Flip для D3D9.
Просьба проверить у себя на этих самых видео с 50/59.94/60 FPS на AMD Radeon на DX9.Проверил первый тестовый билд. Проблема пока присутствует.
https://yadi.sk/d/6gBug75dSEL4og
P.S. А в MPC-BE на EVR-CP при Copy - нормально эти видео проигрываются ?Нормально, полностью стабильно. Частота кадров строго 59.94 FPS. В MPC-VR она скачет аж за 61 FPS, при этом нестабильна.
А вот и тестовая версия с поддержкой D3D9 Exclusive режима(в самом MPC-BE галку не сменить, но работает через Ctrl+F).Проверил тестовый билд. D3D9 Exclusive работает также, как и работал тогда, т.е. при первом запуске и переходе - мертвое зависание, при втором и последующих, при переходе в FSE, нет самого окна FSE, т.е. просто окно плеера с черным экраном.
https://yadi.sk/d/O087I7oBbZ0KVg
Тогда вот debug x86 версия, проверить с получением debug лога в DbgView. Лучше сделать отдельные логи - когда виснет, и когда нет FSE окна.Сделал лог (https://yadi.sk/d/nXC4jGWGunnFGA) без самого окна FSE.
https://yadi.sk/d/sfmVHvnj56GU5Q
А вот еще одна версия для проверки FSE - https://yadi.sk/d/y1uaODWWjhPozQПроверил. Также нет самого окна FSE, при переходе в полный экран. По прежнему остается окно самого MPC-BE с черным экраном.
Aleksoid1978,ЦитироватьТогда вот debug x86 версия, проверить с получением debug лога в DbgView. Лучше сделать отдельные логи - когда виснет, и когда нет FSE окна.Сделал лог (https://yadi.sk/d/nXC4jGWGunnFGA) без самого окна FSE.
https://yadi.sk/d/sfmVHvnj56GU5Q
В своё время ловил зависание - только при первом запуске после включения или перезагрузки системы.Аналогично, вот только не все так легко и просто. Так как зависание проявляется всего лишь один раз, то для повторного его воспроизведения нужно, что называется вернутся "к истокам", "к началу времен". Т.е. нужна чистая система, сам MPC-BE, а также и отладочный билд MPC-VR. Суть в том, что нужна система, на которой еще ни разу не был запущен MPC-VR. Вот только тогда на все 100% можно получить это мертвое зависание.
В логе все отлично, странно.Да, странно, алгоритм был выполнен успешно, вот только само окно FSE не появилось. Его просто тупо нет.
Мне хватало просто ребута системы:)И мне хватило прямо сейчас. :) Перезагрузил систему и воспроизвел зависание.
Aleksoid1978,ЦитироватьМне хватало просто ребута системы:)И мне хватило прямо сейчас. :) Перезагрузил систему и воспроизвел зависание.
В общем, сделал лог (https://yadi.sk/d/JUV1CefvR2Omuw) при зависании во время перехода в режим FSE.
Вот же блин - как и в прошлый раз, зависание при создании D3D9 устройства, где-то в дебрях DirectX9, не в нашем коде ...Странно, тогда почему с EVR-CP ничего подобного не происходит? При использовании EVR-CP, при переходе в режим FSE, присутствует само окно FSE, да и сам переход работает нормально туда и обратно. Такое чувство, что наш MPC VR не способен нормально работать с DirectX9. Вот только почему- непонятно?
Странно то что у меня отлично работает переход в FSE и обратноПредлагаю вам подключиться ко мне удаленно, через TeamViewer (https://www.teamviewer.com/ru/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0-teamviewer/?utm_source=yandex&utm_medium=cpc&utm_content=teamviewer_brand&utm_campaign=ru|b|pr|19|mar|exact-new-sn|free|t0|0&yclid=2976188574337359308). Думаю, что только таким способом, мы решим все эти проблемы гораздо быстрее. Вы сами сможете все наглядно увидеть и воспроизвести. Пожалуйста, не отказывайтесь. Данные для подключения отправил вам в личку. Будем разбираться, что не так.
Aleksoid1978,1 - нет времениЦитироватьСтранно то что у меня отлично работает переход в FSE и обратноПредлагаю вам подключиться ко мне удаленно, через TeamViewer (https://www.teamviewer.com/ru/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0-teamviewer/?utm_source=yandex&utm_medium=cpc&utm_content=teamviewer_brand&utm_campaign=ru|b|pr|19|mar|exact-new-sn|free|t0|0&yclid=2976188574337359308). Думаю, что только таким способом, мы решим все эти проблемы гораздо быстрее. Вы сами сможете все наглядно увидеть и воспроизвести. Пожалуйста, не отказывайтесь. Данные для подключения отправил вам в личку. Будем разбираться, что не так.
P.S. Я ессно все проверяю на Win10, если у вас нет - просьба проверить так же на 10.Я проверяю на Windows 7. Хотя на Windows 10 у меня тоже самое абсолютно, также нет окна FSE и также криво работает Discard с 59.94 и выше и все остальное, включая мультимонитрность и реинициализацию дисплеев.
1 - нет времениЖаль конечно...
2 - нужна система с выводом на второй экран чтобы FSE шел на второй экран и не мешал сидеть в отладчике.Ясно. Мне нужно подключить второй монитор. Вот только есть проблема - каким образом? на RX580 всего один DVI, остальные - HDMI и DP(DisplayPort). У меня нет мониторов с такими разъемами, есть только с VGA и DVI. Мда,.. Нужен переходник HDMI->VGA, чтобы подключить монитор с VGA хотя бы.
Обновил debug билд, ссылка таже - просьба еще раз проверить с логом, не будет ли там ошибок связанных с PresentEx().Проверил второй отладочный обновленный билд. Сделал лог-файл. Посмотрел и увидел просто кучу ошибок такого плана:
00000213 14.33731651 [4924] MpcVideoRenderer.ax(tid 92c) 5024 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000214 14.33739090 [4924] MpcVideoRenderer.ax(tid 92c) 5024 : CDXVA2VP::Process() : VideoProcessBlt() failed with error E_INVALIDARG
00000215 14.33747196 [4924] MpcVideoRenderer.ax(tid 92c) 5024 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000216 14.34396362 [4924] MpcVideoRenderer.ax(tid 17f8) 5031 : CMpcVideoRenderer::Run()
00000217 14.35892582 [4924] MpcVideoRenderer.ax(tid 92c) 5046 : CDXVA2VP::Process() : VideoProcessBlt() failed with error E_INVALIDARG
00000218 14.35903645 [4924] MpcVideoRenderer.ax(tid 92c) 5046 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000219 14.35911369 [4924] MpcVideoRenderer.ax(tid 92c) 5046 : CDXVA2VP::Process() : VideoProcessBlt() failed with error E_INVALIDARG
00000220 14.35919857 [4924] MpcVideoRenderer.ax(tid 92c) 5046 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000221 14.41170311 [4924] MpcVideoRenderer.ax(tid 92c) 5098 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000222 14.41344070 [4924] MpcVideoRenderer.ax(tid 92c) 5100 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000223 14.43977356 [4924] MpcVideoRenderer.ax(tid 92c) 5127 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000224 14.44110394 [4924] MpcVideoRenderer.ax(tid 92c) 5128 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000225 14.48081970 [4924] MpcVideoRenderer.ax(tid 92c) 5168 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000226 14.48206711 [4924] MpcVideoRenderer.ax(tid 92c) 5169 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000227 14.51986027 [4924] MpcVideoRenderer.ax(tid 92c) 5207 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000228 14.52109909 [4924] MpcVideoRenderer.ax(tid 92c) 5208 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000229 14.56002331 [4924] MpcVideoRenderer.ax(tid 92c) 5247 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000230 14.56127262 [4924] MpcVideoRenderer.ax(tid 92c) 5248 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000231 14.66068459 [4924] MpcVideoRenderer.ax(tid 92c) 5288 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000232 14.66071987 [4924] MpcVideoRenderer.ax(tid 92c) 5289 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000233 14.66931629 [4924] MpcVideoRenderer.ax(tid 92c) 5356 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000234 14.67036819 [4924] MpcVideoRenderer.ax(tid 92c) 5357 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000235 14.68079472 [4924] MpcVideoRenderer.ax(tid 92c) 5368 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000236 14.68221283 [4924] MpcVideoRenderer.ax(tid 92c) 5369 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000237 14.71996117 [4924] MpcVideoRenderer.ax(tid 92c) 5407 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000238 14.72125626 [4924] MpcVideoRenderer.ax(tid 92c) 5408 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000239 14.76084900 [4924] MpcVideoRenderer.ax(tid 92c) 5448 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000240 14.76236725 [4924] MpcVideoRenderer.ax(tid 92c) 5449 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000241 14.80188465 [4924] MpcVideoRenderer.ax(tid 92c) 5489 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000242 14.80325413 [4924] MpcVideoRenderer.ax(tid 92c) 5490 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000243 14.84086227 [4924] MpcVideoRenderer.ax(tid 92c) 5528 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000244 14.84225178 [4924] MpcVideoRenderer.ax(tid 92c) 5529 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000245 14.87977600 [4924] MpcVideoRenderer.ax(tid 92c) 5567 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000246 14.88125134 [4924] MpcVideoRenderer.ax(tid 92c) 5568 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000247 14.91994381 [4924] MpcVideoRenderer.ax(tid 92c) 5607 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000248 14.92125511 [4924] MpcVideoRenderer.ax(tid 92c) 5608 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000249 14.95897579 [4924] MpcVideoRenderer.ax(tid 92c) 5646 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000250 14.96032619 [4924] MpcVideoRenderer.ax(tid 92c) 5647 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000251 14.99691105 [4924] MpcVideoRenderer.ax(tid 92c) 5684 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000252 14.99829483 [4924] MpcVideoRenderer.ax(tid 92c) 5685 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000253 15.03776360 [4924] MpcVideoRenderer.ax(tid 92c) 5725 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000254 15.03931046 [4924] MpcVideoRenderer.ax(tid 92c) 5726 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000255 15.08382988 [4924] MpcVideoRenderer.ax(tid 92c) 5764 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000256 15.08454132 [4924] MpcVideoRenderer.ax(tid 92c) 5765 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000257 15.11903667 [4924] MpcVideoRenderer.ax(tid 92c) 5806 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000258 15.12047768 [4924] MpcVideoRenderer.ax(tid 92c) 5807 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000259 15.15781116 [4924] MpcVideoRenderer.ax(tid 92c) 5845 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000260 15.15923214 [4924] MpcVideoRenderer.ax(tid 92c) 5846 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000261 15.19773960 [4924] MpcVideoRenderer.ax(tid 92c) 5885 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000262 15.19916630 [4924] MpcVideoRenderer.ax(tid 92c) 5886 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000263 15.23802090 [4924] MpcVideoRenderer.ax(tid 92c) 5925 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000264 15.23936844 [4924] MpcVideoRenderer.ax(tid 92c) 5926 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000265 15.27985954 [4924] MpcVideoRenderer.ax(tid 92c) 5967 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000266 15.28131771 [4924] MpcVideoRenderer.ax(tid 92c) 5968 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000267 15.31979179 [4924] MpcVideoRenderer.ax(tid 92c) 6007 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000268 15.32122612 [4924] MpcVideoRenderer.ax(tid 92c) 6008 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000269 15.35782623 [4924] MpcVideoRenderer.ax(tid 92c) 6045 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000270 15.35925770 [4924] MpcVideoRenderer.ax(tid 92c) 6046 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000271 15.39814377 [4924] MpcVideoRenderer.ax(tid 92c) 6085 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000272 15.39944649 [4924] MpcVideoRenderer.ax(tid 92c) 6086 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000273 15.43709087 [4924] MpcVideoRenderer.ax(tid 92c) 6124 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000274 15.43858433 [4924] MpcVideoRenderer.ax(tid 92c) 6125 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000275 15.47790909 [4924] MpcVideoRenderer.ax(tid 92c) 6165 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000276 15.47926807 [4924] MpcVideoRenderer.ax(tid 92c) 6166 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000277 15.51807213 [4924] MpcVideoRenderer.ax(tid 92c) 6205 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000278 15.51942921 [4924] MpcVideoRenderer.ax(tid 92c) 6206 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000279 15.55788517 [4924] MpcVideoRenderer.ax(tid 92c) 6245 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000280 15.55939102 [4924] MpcVideoRenderer.ax(tid 92c) 6246 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000281 15.59861374 [4924] MpcVideoRenderer.ax(tid 92c) 6285 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000282 15.59953594 [4924] MpcVideoRenderer.ax(tid 92c) 6286 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000283 15.64117813 [4924] MpcVideoRenderer.ax(tid 92c) 6328 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000284 15.64256668 [4924] MpcVideoRenderer.ax(tid 92c) 6329 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000285 15.67912674 [4924] MpcVideoRenderer.ax(tid 92c) 6366 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000286 15.68063641 [4924] MpcVideoRenderer.ax(tid 92c) 6367 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000287 15.71702003 [4924] MpcVideoRenderer.ax(tid 92c) 6404 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000288 15.71837902 [4924] MpcVideoRenderer.ax(tid 92c) 6405 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000289 15.75785923 [4924] MpcVideoRenderer.ax(tid 92c) 6445 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000290 15.75929642 [4924] MpcVideoRenderer.ax(tid 92c) 6446 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000291 15.79799271 [4924] MpcVideoRenderer.ax(tid 92c) 6485 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000292 15.79967880 [4924] MpcVideoRenderer.ax(tid 92c) 6486 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000293 15.83788681 [4924] MpcVideoRenderer.ax(tid 92c) 6525 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000294 15.83930874 [4924] MpcVideoRenderer.ax(tid 92c) 6526 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000295 15.87786102 [4924] MpcVideoRenderer.ax(tid 92c) 6565 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000296 15.87928963 [4924] MpcVideoRenderer.ax(tid 92c) 6566 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000297 15.91732693 [4924] MpcVideoRenderer.ax(tid 92c) 6604 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000298 15.91892719 [4924] MpcVideoRenderer.ax(tid 92c) 6606 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000299 15.95845699 [4924] MpcVideoRenderer.ax(tid 92c) 6645 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000300 15.95958328 [4924] MpcVideoRenderer.ax(tid 92c) 6646 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000301 15.99777699 [4924] MpcVideoRenderer.ax(tid 92c) 6684 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000302 15.99899960 [4924] MpcVideoRenderer.ax(tid 92c) 6686 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000303 16.03821754 [4924] MpcVideoRenderer.ax(tid 92c) 6725 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000304 16.03941154 [4924] MpcVideoRenderer.ax(tid 92c) 6726 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000305 16.07720566 [4924] MpcVideoRenderer.ax(tid 92c) 6764 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000306 16.07861137 [4924] MpcVideoRenderer.ax(tid 92c) 6765 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000307 16.11815453 [4924] MpcVideoRenderer.ax(tid 92c) 6805 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000308 16.11943245 [4924] MpcVideoRenderer.ax(tid 92c) 6806 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000309 16.15787697 [4924] MpcVideoRenderer.ax(tid 92c) 6845 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000310 16.15932655 [4924] MpcVideoRenderer.ax(tid 92c) 6846 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000311 16.19787788 [4924] MpcVideoRenderer.ax(tid 92c) 6885 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000312 16.19941711 [4924] MpcVideoRenderer.ax(tid 92c) 6886 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000313 16.23792458 [4924] MpcVideoRenderer.ax(tid 92c) 6925 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000314 16.23931313 [4924] MpcVideoRenderer.ax(tid 92c) 6926 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000315 16.27994919 [4924] MpcVideoRenderer.ax(tid 92c) 6967 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000316 16.28134727 [4924] MpcVideoRenderer.ax(tid 92c) 6968 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000317 16.32018089 [4924] MpcVideoRenderer.ax(tid 92c) 7007 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
00000318 16.32122040 [4924] MpcVideoRenderer.ax(tid 92c) 7008 : CDX9VideoProcessor::Render() : PresentEx() failed with error D3DERR_INVALIDCALL
А производители убрали VGA - да просто нафига нужен уже этот аналогАга, при этом, видимо, далеко не все производители мониторов это знают и понимают.
Evgeniy1990 - проверь на Win10 FSE.Переключился на Windows 10. Машина та же самая. Проверил работу FSE в MPC VR на Win10.
В MPC VR добавил либу fmt как "Подмодуль" и она уже местами используется.Внешние подмодули имеет смысл добавлять только в том случае, если они сами периодически обновляются и развиваются.
Evgeniy1990, если будут проблемы с обновлением подмодуля - пиши.Пока никаких проблем не возникло, достаточно было просто извлечь внешний подмодуль "fmt" из хранилища и запустить построение.
Иногда бывает что проще удалить старую папку и выкачать весь проект заново вместе с внешними модулями.Я так и делаю, перед каждым построением выполняю заново "Git Clone". Вот только теперь еще придется заного извлекать внешний подмодуль "fmt". Хорошо, что он пока всего один, а если их будет несколько, то тут только лишние действия выполнять.
Ну еще одна попытка - debug билд https://yadi.sk/d/HIYH7llCaPNBIQПроверил отладочный билд. Никакой разницы, по сравнению со вчерашним отладочным билдом.
Если что - жду лог.
Моя версия 5 без доп. фокусного окна. Если не кликать на другом дисплее, то работает. :-)Проверил вашу 5-ую версию на Win7. Действительно, все именно так, как вы сказали. При первом переходе - мертвое зависание, при втором и последующих - нормальный переход и сам режим FSE.
Но при первом запуске все равно зависает.
Вот еще просьба проверить - https://yadi.sk/d/6DKd_n7pndfnuQ
В архиве 2 версии(debug x86). Зависание при первом запуске никуда не делось - главное это наличие FSE окна и нормальное проигрывание и переключение в FSE и обратно.
P.S. перезалил, ссылка та же.Проверил оба отладочных билда. К сожалению, без изменений.
Вот еще одна попытка - https://yadi.sk/d/AHqzMmu-IE8vcAПроверил второй отладочный билд. Теперь мертвое зависание происходит всегда, при первом разе и при последующих. (О_о)
По MPC VR + FSE - пробуем еще вот так - https://yadi.sk/d/_LSyLmGP6G331QК сожалению, теперь нет самого окна FSE. Плюс, вдобавок, появилась уже другая ошибка: "S_PRESENT_OCCLUDED ERROR".
В архиве немного измененный mpc-be + сам mpc vr.
Ну и если что - логи в студию.
Ну ясно. Все, забываем о FSE, по крайней мере как это реализовано в самом MPC-BE, отдельным окном. Возможно в будущем попробую сделать как в madVR, когда рендерер сам переходит в FSE.Не спешите с выводами. На Win8 FSE есть как положено. Есть нюансы, но перехвата фокуса на мульти-дисплейности на этот раз нет, чего и добивались. Значит, первый нюанс с одним монитором: запускаем плеер, потом файл, далее FSE и всё это успешно, но выход из FSE заканчивается зависом, и так каждый раз >лог https://yadi.sk/d/qfLz9m-TtdatmQ С мульти-дисплейностью переход на ТВ в FSE успешен, причём на основном мониторе можно делать что угодно, фокус не перехватывается. Но вот если выйти из FSE и опять перейти в FSE, то тогда окна FSE уже нет, но в этом случае плеер не зависает в отличии от моно-дисплейности > лог https://yadi.sk/d/vLoqb9kT5b6hcg
Но лично мне такой FSE уже совершенно не привычен, на столько понравился и прижился способ в MPC-BE/HC, отдельным окном.
Ну ясно. Все, забываем о FSE, по крайней мере как это реализовано в самом MPC-BE, отдельным окном.Рано еще сдаваться. Я перепроверил поведение сегодняшнего отладочного билда вместе с тестовым плеером.
Так - пробуем первую попытку(поэтому сильно надеяться не надо :) ) полноэкранного эксклюзива без отдельного окна FSE, т.е. по аналогии с madVR - при переходе в полный экран автоматом будет переключение в эксклюзив.Проверил два отладочных билда. Первый падает, при переходе в режим FSE. Второй нормально переходит в режим FSE и обратно в оконный режим.
Версии дебажные, если что - выложить логи.
https://yadi.sk/d/rvcxs6BQb0sUHw
00000135 9.64786720 [3864] MpcVideoRenderer.ax(tid 410) 3219 : CDX9VideoProcessor::Render() : PresentEx() failed with error ?^?a?e?i?j?o?l?n?u?t?z?z?{?}?p?j?n?n?d????????????????????????????????????????????????????????????????????????????? ? ?????¤???¦?©?¬????¬???«???°?????µ???·?????????????????????¤??????¬? ?¦??µ?????¶?????§?«?A?A?A?A?A???A?A?E?E?E?E?I?C?E?E?E?I?I???A?C?E?N?N?O?O?O???O?O?N?U???E?I?O?U?O???N???O???a?a?a???a?e?i?c?i?i???n?o?o?o?u?u?u?y
Aleksoid1978Короче ясно - такой же отстой, в 10 все великолепно :) Забываем про FSE - реально надоело уже тупить с этим ...Вот опять начинается... Это была всего лишь первая попытка, а вы уже сдаетесь. Второй отладочный билд работает нормально, значит шанс еще есть.
Второй работает стабильно, да. Одна мелочь - фокус. Нажать хотя бы Alt+Tab и плеер закрывается.Да, действительно, если в режиме FSE нажать "Alt+Tab", то плеер просто стабильно падает.
На 10 вообще почти все попытки удачны :) А вот на 7- все fail ((Почему же? Ведь именно последний тест и на семёрке, и на восьмёрке стабилен с переходами.
Вот еще пробуем - https://yadi.sk/d/vh0QvU0XKDWHdQ и https://yadi.sk/d/ar9nCVhZNfyJiwВторой вариант работает, c фокусом всё OK. Из нюансов: такое явление как "первый запуск" есть как и во всех тестах, ну и при включённой статистике при выходе из FSE плеер закрывается > https://yadi.sk/d/Qholx9FmX0NH3w А вообще отличный вариант!
Вот еще одна версия - https://yadi.sk/d/eMGjXUCOd70tuQПроверил третий отладочный билд.
Решил я перепроверить ещё раз третий тест, нажимаю этот Alt+Tab и на тебе, FSE исчезло. Ведь проверял же, не было такого. Нажимаю опять Alt+Tab, опять появилось FSE. Открываю статистику, а там уже просто FS. Вот такие дела.Я десяток раз нажимал "Alt+Tab" в режиме FSE и ничего не произошло, хоть убейте меня. Пробовал открывать дополнительные папки, сворачивал их, переходил в режим FSE и пробовал на них переключиться через "Alt+Tab" - ничего не произошло, плеер так и остается работать в режиме FSE. Я хз, как получить такую ситуацию с пропаданием FSE на Windows 7.
Пробуем еще - https://yadi.sk/d/IXeTXlCFM0CtigПроверил отладочный билд. При первом запуске, плеер нормально переходит в режим FSE, а вот при выходе из него уже происходит стабильное падение. При втором и последующих переходах, при выходе из режима FSE в окно, виснет намертво в самом FSE, даже в окно переключиться не может, по сравнению с самым первым разом.
Вроде бы смог обойти проблемы зависания при первом запуске и FSE - проверяем и отписываемся.
*** Exception 0xC0000005 occured ***
C:\Program Files\MPCVideoRenderer\MpcVideoRenderer.ax : DllRegisterServer()
C:\Program Files\MPCVideoRenderer\MpcVideoRenderer.ax : DllRegisterServer()
C:\Program Files\MPCVideoRenderer\MpcVideoRenderer.ax : DllRegisterServer()
C:\Program Files\MPCVideoRenderer\MpcVideoRenderer.ax : DllRegisterServer()
C:\Program Files\MPCVideoRenderer\MpcVideoRenderer.ax : DllRegisterServer()
C:\Program Files\MPCVideoRenderer\MpcVideoRenderer.ax : DllRegisterServer()
C:\Program Files\MPCVideoRenderer\MpcVideoRenderer.ax : DllRegisterServer()
C:\Program Files\MPCVideoRenderer\MpcVideoRenderer.ax : DllRegisterServer()
C:\mpc-be\src\ExtLib\BaseClasses\amfilter.cpp(2696) : CBaseOutputPin::Deliver()
C:\mpc-be\src\filters\transform\MPCVideoDec\DXVADecoder\DXVA2Decoder.cpp(118) : CDXVA2Decoder::DeliverFrame()
C:\mpc-be\src\filters\transform\MPCVideoDec\MPCVideoDec.cpp(3072) : CMPCVideoDecFilter::DecodeInternal()
C:\mpc-be\src\filters\transform\MPCVideoDec\MPCVideoDec.cpp(3258) : CMPCVideoDecFilter::Decode()
C:\mpc-be\src\filters\transform\MPCVideoDec\MPCVideoDec.cpp(3366) : CMPCVideoDecFilter::Transform()
C:\mpc-be\src\filters\transform\BaseVideoFilter\BaseVideoFilter.cpp(124) : CBaseVideoFilter::Receive()
C:\mpc-be\src\ExtLib\BaseClasses\transfrm.cpp(763) : CTransformInputPin::Receive()
C:\mpc-be\src\ExtLib\BaseClasses\amfilter.cpp(2696) : CBaseOutputPin::Deliver()
C:\mpc-be\src\filters\parser\BaseSplitter\BaseSplitterOutputPin.cpp(493) : CBaseSplitterOutputPin::DeliverPacket()
C:\mpc-be\src\filters\parser\BaseSplitter\BaseSplitterOutputPin.cpp(321) : CBaseSplitterOutputPin::ThreadProc()
C:\mpc-be\src\ExtLib\BaseClasses\wxutil.cpp(124) : CAMThread::InitialThreadProc()
minkernel\crts\ucrt\src\appcrt\startup\thread.cpp(97) : thread_start<unsigned int (__stdcall*)(void *),1>()
C:\Windows\syswow64\kernel32.dll : BaseThreadInitThunk()
C:\Windows\SysWOW64\ntdll.dll : RtlInitializeExceptionChain()
C:\Windows\SysWOW64\ntdll.dll : RtlInitializeExceptionChain()
А что это за лог ?Это stacktrace. Просто скинул на всякий случай, вдруг поможет. Это при падении.
Нужен лог самого MPC VR.Пожалуйста (https://yadi.sk/d/Mnt_EbWCLHa0yw).
Пробуем еще - https://yadi.sk/d/IXeTXlCFM0Ctighttps://yadi.sk/d/FJ1NK6KWM9gwBw При выходе из FSE есть небольшой фриз, потом уже нет ни FSE, ни плеера.
Вроде бы смог обойти проблемы зависания при первом запуске и FSE - проверяем и отписываемся.
Вот пробуем - https://yadi.sk/d/ids8Yt0MfkeG0wПроверил второй отладочный билд. Теперь полный порядок. При первом запуске плеер нормально переходит в режим FSE и выходит обратно из него. При втором и последующих - аналогично, все нормально.
Ну теперь надо погонять получше, в одномониторной и мультимониторной конфигурациях.ОК. Вот видите, вы все же смогли реализовать нормальную работу режима FSE. :)
По Alt Tab - это на одном мониторе, а как на EVR-CP ?Решил я проверить поведение "Alt+Tab" на EVR-CP в режиме FSE и что обнаружил - теперь на EVR-CP не работает режим FSE. Теперь на нем невидимое окно FSE. Зашибись! (О_о)
График и пропуски - это нормально, происходит пересоздание устройства и вслед за этим много ещё чего.Я бы так не сказал, на FlipEx их нет вообще.
Ага, учитывая что там код не тронулся очень долгое время и уж тем более MPC VR тут не при чем :)Да знаю я прекрасно, что код давным давно не менялся, но не работает FSE, нет его.
100500 раз уже писал - FSE использует Flip режим. При чем здесь discard, и что значит пропуски во время воспроизведения? Не в момент перехода в FSE или обратно а уже после пропуски, просто во время проигрывания?О боже... Вы меня понять не можете... Я вам тоже 100500 раз говорил, да причем здесь FSE и Flip, если я говорю пока только про обычное воспроизведение видео. У нас MPC VR имеет два swap-эффекта - это Discard и FlipEx.
Я понял поэтому и сказал - пока не трогаем обычное проигрывание и discard, тем более что тут может быть ничем и не помочь, пока не переделать работу с очередью, а это неизвестно когда будет и неизвестно будет ли вообще.Потому что у вас видеокарта NVIDIA. А проблема с пропусками кадров во время воспроизведения проявляется только на видеокартах от AMD, причем именно на новых моделях и последних новейших драйверах.
P.S. Тем более у себя такого не наблюдаю. Да и вообще - юзаем Flip/FlipEx как более современный, не зря же его рекомендуют использовать.
Что ещё за видимость при переходе, покажи ?Откройте у себя любой видео файл, выберете эффект FlipEx, перейдите в обычный полноэкранный режим, перемотайте почти в конец и ждите переход на следующее видео в папке. В момент перехода, на пару секунд можно будет увидеть окно самого MPC-BE, как при его старте (запуске). Вот этого быть не должно. Почему? Да потому что ни на одном видео-рендерере нет такого явления, который смахивает на "некую недоработку".
А какие другие рендереры используют FlipEx ?Тот же EVR-CP.
По Alt Tab - это на одном мониторе, а как на EVR-CP ?Что касается горячего сочетания клавиш "Alt+Tab", так оно работает на EVR-CP точно также, как и на MPC VR в режиме FSE, т.е. при его нажатии совершенно ничего не происходит. Я пробовал много раз нажимать данное сочетание в режиме FSE. В конечном итоге, ничего не происходит, ничего не меняется. Пока плеер в режиме FSE, переключиться на другое окно никак нельзя.
Так - ну предлагаю "окончательный вариант" уже с опцией включения FSE в самом VR. Думаю различные нюансы уже можно будет по ходу дела дорабатывать/исправлять.Проверил первый отладочный билд. В целом, работает точно также, как и вчерашний второй отладочный билд.
https://yadi.sk/d/md-kEqcuXe3-Lw
Опция FSE в MPC-BE не имеет никакого отношения, влияет только опция в самом MPC VR.
И вот еще одна версия с FSE - https://yadi.sk/d/iFTB7WDPjyrXPAПроверил второй отладочный билд. Интересная задумка, прямо как в madVR, когда FSE работает после исчезновения различных панелей управления. Только в нашем случае - это простой таймер. Да, согласен, что так может быть даже и лучше, даже есть одно самое главное преимущество - это отсутствие рваного изображения, что больше актуально именно для AMD-видеокарт, т.к. на NVIDIA оно итак не рвется пре переходе в режим FSE туда и обратно. Но, есть и довольно неприятный и существенный недостаток - это сам переход в полноэкранном режиме в режим FSE, согласно таймеру. Дело в том, что не на всех конфигурациях такая задумка будет работать стабильно - это 100% я вам скажу. На той же машине с ATI Radeon HD 3650, мало того, что сам FSE не работает, а при такой логике с быстрым переходом в полноэкранном режиме в режим FSE, падает видео-драйвер и вылетает BSOD. А это уже плохо, как минимум. Вот если вам удастся исправить поведение и работу режима FSE на более ранних моделях видеокарт, тогда данная задумка имеет место быть, иначе это просто боль. Падение драйвера - тот еще ужас, после восстановления он не всегда продолжает стабильно работать.
В ней переход в FSE происходит не сразу же по переключению в полный экран, а по таймеру в 2 сек, по мне так даже по лучше - если случайно ткнул переход в полный экран можно быстро выйти обратно, ну и при переходе в полный экран картинка "не рвется".
Опция FSE в MPC-BE не имеет никакого отношения, влияет только опция в самом MPC VR.Спасибо, что наконец-то реализовали отдельную опцию конкретно для самого MPC VR. Теперь, хотя бы, на машине с ATI Radeon HD 3650, плеер нормально переходит в обычный полноэкранный режим. До этого, был конфликт, из-за которого при выключенном режиме FSE, плеер все равно переходил именно в него. Но такое явление было только на этой самой машине. Т.е. думаю, что вы сами прекрасно уже видите и понимаете, что конфигурации разные и далеко не на всех из них будет строго одинаковое поведение.
Если падает драйвер - это вопросы к драйверу.Он упал всего лишь один раз, после чего, спустя 2 сек., согласно таймеру, также завис намертво при переключении на FSE-режим. Т.е. просто черный экран самого FSE. Т.е. надо разбираться почему так. Здесь дело вовсе не в драйвере.
В madVR по дефолту тоже таймер - 3 секунды(смотрим настройку эксклюзива). Ну можно тогда и нам добавить опцию ?Я предлагаю сделать таймер опционально, просто добавить отдельную опцию. Пусть будут оба варианта работа режима FSE, а там посмотрим.
Покажи(там же в стеке падения) - CBaseRenderer::Pause().Пожалуйста (https://yadi.sk/i/ZMkpfBEAKzkWxg).
Ну это не падение - это ASSERT в debug версии. Собери релизную версию и проверь на ней.Проверил релизную версию. Также, черный экран FSE, при переходе в режим FSE.
Ну тут я хз :)Это я проверяю на машине с ATI Radeon HD 3650. Именно на данной машине режим FSE ведет себя очень странно и некорректно, т.е. то работает, то не работает. Суть в том, что не на всех конфигурациях (машинах), режим FSE работает нормально и корректно. Да, знаю, что в целом, данный режим реализован корректно и на новом современном, или относительно современном железе (конфигурациях машин), он работает нормально, без проблем. А вот я решил пойти дальше и задал себе такой вопрос - а что если конфигурация не совсем современная, по сегодняшним меркам, как интересно тогда будет работать данный режим. И вот для таких случаев, я и собрал машину с ATI Radeon HD 3650, чтобы быть на все 100% уверенным, что любая реализация какого либо функционала, абсолютно точно, на все 100%, работает совершенно на любом железе и на любых конфигурациях. И в случае с режимом FSE, я убедился, что увы, далеко не на всех конфигурациях он работает корректно и стабильно. А я уверен, что найдутся такие пользователи, у которых как раз вот такие не очень современные конфигурации железа. И они не смогут нормально использовать данный режим. Вот в чем беда и огромный недостаток. Хотелось бы конечно его устранить, чтобы его не было вообще. Именно поэтому я и прошу вас обратить на это внимание, что не стоит вот так просто закрывать на это глаза, говоря о том, что у меня работает, значит оставляем как есть.
EVR-CP, madVR(в режиме DX9) - корректно работает FSE ?Режим FSE нормально и корректно работает на EVR-CP на машине с ATI Radeon HD 3650.
А можешь запустить на debug версии MPC-BE и перейти в FSE на EVR-CP ? Ну и потом лог выложи.Пожалуйста (https://yadi.sk/d/B2L_4pJuBEZ5Qg).
Вот еще просьба проверить работу FSE, особенно на одном мониторе. На нескольких - проверить как работает потеря фокуса.Проверил данный билд. Теперь режим FSE нормально работает на машине с ATI Radeon HD 3650. Также проверил на остальных машинах - аналогично, режим FSE работает нормально. Т.е. основная работа и основные переходы туда и обратно не поломались. Вот теперь смело можно сказать, что режим FSE на MPC VR будет работать на совершенно любых конфигурациях.
https://yadi.sk/d/as7CEKnFWsVQeg
Еще бы вот что проверить - на мультимониторной конфигурации, настроить полный экран на тот же монитор где запускаем, перейти в FSE и проверить "потерю" фокуса - ткнуть мышкой в любое другое окно или просто рабочий стол, не будет ли пропадания окна с FSE.Проверил на Win8, нормально, Alt+Tab мне кажется работает корректно на одном мониторе, но есть одно НО. В отличие от SVN плеер виснет если выйти из FSE, перезапустить файл и опять перейти в FSE = зависание 100%
У себя проверил - вроде все нормально.
Ок, проверю.Да, исправилось.
P.S. Исправил, билд перезалил - ссылка та же.
В случае MPC VR - выводиться картинка на окно самого MPC-BE, поэтому все движения мыши в нем так дже работают, и проигрыватель пытается показать панель и обработать события мышки на немЭто называется - невидимая шкала прогресса и невидимый Flybar. :) )))
Вот "окончательный" вариант, на одном экране переход FSE и обратно стал еще "легче".Проверил данный вариант на машине с ATI Radeon HD 3650. На одном экране режим FSE работает нормально туда и обратно.
https://yadi.sk/d/JoJvbtZLYlpXrA
Вот "окончательный" вариант, на одном экране переход FSE и обратно стал еще "легче".
https://yadi.sk/d/JoJvbtZLYlpXrA
Вот "окончательный" вариант, на одном экране переход FSE и обратно стал еще "легче".
https://yadi.sk/d/JoJvbtZLYlpXrA
На восьмёрке опять выход из FSE, перезапуск файла, опять переход в FSE заканчивается зависанием.
А проверь такой же алгоритм - окно на одном экране, FSE на второй - на EVR-CP, на madVR.Проверил на EVR-CP свой тот же самый алгоритм. В итоге, одно из двух - или сразу происходит падение, при переходе в режим FSE, или окно плеера остается на первом мониторе, а черное окно FSE - на втором мониторе висит намертво.
Ну как я и предполагал - тут вот 100% виновны драйвера, не могут они "на лету" переваривать вызов IDirect3D9Ex::CreateDeviceEx(), ну могу заново создать Direct3D9 устройство.Попробуйте создать Direct3D9 устройство для EVR-CP и MPC VR. Я бы проверил.
Aleksoid1978,ЦитироватьНу как я и предполагал - тут вот 100% виновны драйвера, не могут они "на лету" переваривать вызов IDirect3D9Ex::CreateDeviceEx(), ну могу заново создать Direct3D9 устройство.Попробуйте создать Direct3D9 устройство для EVR-CP и MPC VR. Я бы проверил.
В том то и дело что когда FSE и окно на разных экранах - происходит удаление/создание Direct3D9 устройства, и тут получаем отлуп :) Когда на одном экране - то просто устройство "резетится".Ясно. Да уж, как все непросто. :)
Aleksoid1978,
Заметил, что 60 fps и 30 fps воспроизводятся не совсем корректно. Значит хак 24Hz-60Hz для эксклюзива пока не работает?
Да уж непросто, а если бы еще знать как эта "хрень" под названием "Direct3D9" работает с окнами и потоками - тут как говориться "знал бы заранее - обошел стороной" :)Проверил я свой алгоритм уже на другой машине с ATI Radeon HD 5770. Вот на ней работает нормально режим FSE, при переключении на второй монитор. Но не все так просто... Да, вы правы, дело 100% - в драйверах. На более новых версиях драйверов переключение в режим FSE "на лету", на второй монитор работает нормально.
Ну я смогу только у себя проверить в софтовом декодировании.
Ну у меня все ок.Ну это только у вас все ок. В моем случае - далеко не ок. Все-таки без удаленки эту проблему мы не исправим, а она неприятная. Ну, допустим, у нас есть видео файлы с поддержкой аппаратного декодирования. А как бы с теми, кто не имеет такой поддержки, например DivX, Xvid, msmpeg4 и т.д.?
Короче я заливаю текущий вариант. Дальше уже надо думать про DX11 FSE режим :)Заливайте пока все свои текущие наработки. В целом, режим FSE на DX9, на различных конфигурациях, за исключением некоторых случаев, работает нормально.
MPCfan, в 0.4.6.1332 должно исправиться. Проверь.Хорошо, проверю. Да, ещё вот что: в DX9 субтитры не отображаются, в DX11 - без проблем.
Aleksoid1978,
Re: "Первый запуск FSE". А никуда этот нюанс и не делся. Добрались у меня сегодня руки до другой железяки IntelHD5500/GeForce840mWin8.1. Установил 1.5.5 (build 5330) betax64 и MPC Video Renderer 0.4.6.1333 (git-2020.06.12-33fb4a4) x64. Включил эксклюзив, запускаю файл, перехожу в FSE, перехожу к перезагрузке. Опять пытаюсь перейти в FSE, опять зависаю, на этот раз обошлось без перезагрузки. Правда, после этого эксклюзив заработал. Знал бы , ставил бы debug. Подчеркну, что на этой железяке это был самый "первый раз".
Какого ещё SVN если тут git :)Качал c альтернативы 1 MPCVideoRenderer-v0.4.6.1335_git2020.06.12-54232da, для меня оттуда всё SVN. Если не то, дождусь нужного, проверю. По поводу первого запуска. На этой машине я в первый раз запустил FSE после регистрации фильтров, и при переходе в эксклюзив сразу завис. Теперь только после перезагрузки и только после выхода из FSE. Последующие запуски работают нормально.
А по делу - пропал баг с первым запуском и FSE ?
Странно все это, все же нормально работало :)Да, что-то не постоянное. С перезагрузкой, да, есть константа.
Aleksoid1978, MPCfan,А я уже нет, в смысле не уверен, что дело в MPC-VR. Немного погонял с MPC-HC, а если честно, то одного раза(перезагрузки) хватило. Зависание, как и с MPC-BE. А Потик удивил. Сколько бы я не анреггил и повторно реггил MPC-VR, сколько бы не перезагружал комп, c Даумом, чтобы добиться такого же поведения как с обоями MPC не получилось. Вот и приехали. Прикол: после перезагрузки, и если первым запустить Пот с MPC-VR и перейти/выйти из FSE(успешно), то потом и с MPC проблем нет. > https://yadi.sk/i/UYN_nf4cSmHirQ
Подтверждаю проблему с первым мертвым зависанием при выходе из режима FSE. До этого не зависало. Повлияло какое-то из последних изменений в Git.
На этот раз у себя ну никак не могу поймать зависания.Я так и знал, что всему виной изменение в Git. И вот, пожалуйста, внимательно перепроверил:
Вопрос - как юзаем FSE, с автопереключалкой или нет, если да - то с применением режима по умолчанию после перехода в окно ?Лично я юзаю его без автопереключалки. Опция "Переключать режим монитора в полноэкранном режиме" у меня всегда выключена.
MPCfan,Да. После перезагрузок, при первом запуске теперь нормально.
Проверьте, пожалуйста, эти билды (https://yadi.sk/d/CYxetAG4xiO-yQ). В них я исключил проблемное изменение, которое вызывало мертвое зависание в самый первый раз, при выходе из режима FSE.
Да. После перезагрузок, при первом запуске теперь нормально.Ну вот, мы и выяснили, а также убедились, что именно данный коммит 1f0e7d2 является проблемным и вызывает мертвое зависание в самый первый раз, при выходе из режима FSE.
1.5.5 (build 5333) betax64+ 0.4.6.1338 (git-2020.06.14-1a6e78f) x64. Происходит закрытие в эксклюзиве при переходе на следующий файл.Аналогично. При переходе на следующий файл в режиме FSE, плеер просто падает. Причем, дамп-файл всегда создает нулевой. А при его открытии студия говорит, что работать с ним нельзя. (O_o)
Ошибку с FSE исправил.Исправилось. Пока остаются два нюанса несмотря на последние изменения. Одиночное нажатие Alt+Tab в режиме эксклюзива приводит к отключению работы клавиш и мыши, курсор есть, конечно, но на клики не реагирует. Повторное нажатие Alt+Tab решает этот нюанс. И с переключалкой есть проблемы, корректно работает либо с включённым delay в MPC-VR, либо с "Сменить режим экрана до начала воcпроизведения". Иначе может быть просто чёрный экран при переходе на следующий файл в режиме эксклюзива.
И вот еще просьба погонять тестовый билд - https://yadi.sk/d/F1cY4wzJbYQLfw, проверить как с ним переход в FSE и обратно, в разных комбинациях. Кое что переделал - хочется убедиться что все норм.
Aleksoid1978,Ошибку с FSE исправил.Исправилось. Пока остаются два нюанса несмотря на последние изменения. Одиночное нажатие Alt+Tab в режиме эксклюзива приводит к отключению работы клавиш и мыши, курсор есть, конечно, но на клики не реагирует. Повторное нажатие Alt+Tab решает этот нюанс. И с переключалкой есть проблемы, корректно работает либо с включённым delay в MPC-VR, либо с "Сменить режим экрана до начала воcпроизведения". Иначе может быть просто чёрный экран при переходе на следующий файл в режиме эксклюзива.
И вот еще просьба погонять тестовый билд - https://yadi.sk/d/F1cY4wzJbYQLfw, проверить как с ним переход в FSE и обратно, в разных комбинациях. Кое что переделал - хочется убедиться что все норм.
Ошибку с FSE исправил.Проверил последний Git-commit. Ошибка, при переходе на след. файл в режиме FSE, исправлена.
Вот честно - заниматься с таким "старьем" нет никакого желания, время дороже. Да и никто не будет на такое железо цеплять вторым выводом нормальный ТВ и использовать FSE :) Забываем про этот случай и больше про него не пишем, честно. Там более что это не имеет отношения напрямую к MPC VR.Неужели так сложно это исправить? Что значит, не имеет отношения? Еще как имеет, особенно прямое отношение к работе режима FSE на втором мониторе, при использовании MPC VR. Вот опять началось - "старье"... Если уж грамотно развивать проект, то необходимо устранять такие недостатки, при определенных условиях и нюансах.
Я то вообще ждал чтобы погоняли последний тестовый билд, сравнили с текущей git версией.Я знаю, что вы ждете результатов. Поэтому я сейчас этим и занимаюсь. Я решил сначала прогнать Git, а после - ваш тестовый билд.
А что насчёт тестового билда, все норм с FSE ?В вашем тестовом билде нормально работает режим FSE туда и обратно. Не знаю, что вы в нем изменили, но в целом, основная работа переходов работает нормально.
Что за монитор, как подключён, как его определяет сама система, видео-драйвер ?Монитор LG Flatron L1751SQ. Система определяет его как "Универсальный монитор PnP". Видео-драйвер определяет его как "LG L1751SQ".
Aleksoid1978,ЦитироватьА что насчёт тестового билда, все норм с FSE ?В вашем тестовом билде нормально работает режим FSE туда и обратно. Не знаю, что вы в нем изменили, но в целом, основная работа переходов работает нормально.ЦитироватьЧто за монитор, как подключён, как его определяет сама система, видео-драйвер ?Монитор LG Flatron L1751SQ. Система определяет его как "Универсальный монитор PnP". Видео-драйвер определяет его как "LG L1751SQ".
P.S. Вот проверь - https://yadi.sk/d/X56gX1LYR8NzdAПроверил. Ерунда какая-то... Пытаюсь разобраться, уже запутался.... Боже... Да уж, "спасибо" LG за то, что придумали просто "мозговыносящую" логику определения монитора. Это жесть какая-то...
А что насчёт тестового билда, все норм с FSE ?С FSE нормально, и статистика корректна, по крайней мере Самсунг определяет и всё остальное тоже. Похоже c Alt+Tab тоже понял в чём дело с помощью MadVR. Короче, когда MadVR в FSE при нажатии Alt+Tab, вверху по все длине появляется полоска, c "файл" и т. д. Естественно это просто уже FS, один ЛКМ, полоска исчезает и опять FSE. Возможно на Win8 какой-то конфликт с этим Alt. Хотел отключить, но где? так и не понял.
По поводу Alt-Tab - а как себя ведёт madVR ?
На EVR CP и madVR так же ведёт, сам же сказал что дело в декодере. Надо - создаём отдельно тему в багах касаемо проигрывателя.Проверил поведение DXVA2-декодера на EVR-CP и madVR. Да, действительно, поведение аналогичное, как и на MPC VR.
Ну значит VR все корректно отображает.Соглашусь. Но этот монитор LG мне "весь мозг съел". Самое забавное, так это то, что в статистике EVR-CP даже нет такой строки "Monitor", когда изображение передается именно ему.
Если не определяет - значит для даже нет EDID информации в системе :) А что показывает madVR ?madVR показывает: device type: "Универсальный монитор не PnP".
А кто может сравнит плавность вывода в FSE на телеке - EVR-CP и MPC VR ?В принципе всё хорошо, разницы между FSE EVR-CP и MPC-VR не увидел, пока дело не дошло до файла взятого от > https://drive.google.com/uc?export=download&id=18cLDFgHKfHuq7C17gmqHYsH8TjNvk-bt Тут я почувствовал между ними разницу, не в пользу MPC-VR. Причём использовал dxva2+dxva2vp в обоих случаях. Дело даже не в FSE, просто с MPC-VR DX9 на этом файле почти всегда происходил какой-то ступор во время воспроизведения, c большим количеством дроппов за секунду, иногда более 300 зараз. Возможно косяк с интелом. Но я перепроверил это файл в связке potplayer+mpc-vr dx9 windowed/FSE+built-in dxva2, никаких ступоров, ни дроппов до самого конца файла.
Вот debug версия https://yadi.sk/d/oxHiO_7rIFpEDg - можно на ней проверить и лог потом(если будет черный экран) выложить.Значит, файлы с fps = Hz, выставленными в драйвере всегда имеют полноценный FSE при переходе в эксклюзиве. C другим fps - чёрный экран. Вот лог > https://yadi.sk/d/gjPR4pgZ1LxzlQ В драйвере 60Hz, запускаю плеер, файл с 59,940 fps, далее FSE, успешно, переход на файл с 60 fps, успешно, переход обратно на файл с 59,940 fps, черный экран, выход из FSE, успешно, в окне появляется видео, закрытие.
Aleksoid1978,Вот debug версия https://yadi.sk/d/oxHiO_7rIFpEDg - можно на ней проверить и лог потом(если будет черный экран) выложить.Значит, файлы с fps = Hz, выставленными в драйвере всегда имеют полноценный FSE при переходе в эксклюзиве. C другим fps - чёрный экран. Вот лог > https://yadi.sk/d/gjPR4pgZ1LxzlQ В драйвере 60Hz, запускаю плеер, файл с 59,940 fps, далее FSE, успешно, переход на файл с 60 fps, успешно, переход обратно на файл с 59,940 fps, черный экран, выход из FSE, успешно, в окне появляется видео, закрытие.
Aleksoid1978,Отлично!
Проверил по-быстрому несколько переходов на одном ТВ и на ТВ+монитор, работает корректно. Позже погоняю по-лучше. Будут проблемы, будет и лог.
Прогнал этот тест-билд получше, и в принципе он работает. Проверил на нескольких способах перехода: естественный, клавиатура, и путём клика по невидимым кнопкам перехода, всё отлично. Пробовал ещё возможности таскбара Windows на двух-мониторной конфигурации, здесь были проблемы. Выглядело хаотично и бессистемно, то переходы осуществлялись корректно, то чёрный экран, даже раз FSE полностью пропало, опять появилось, словом - хаос, но без вылетов. Вот лог > https://yadi.sk/d/q5NdVsu5_V9akg на всякий случай.Aleksoid1978,Отлично!
Проверил по-быстрому несколько переходов на одном ТВ и на ТВ+монитор, работает корректно. Позже погоняю по-лучше. Будут проблемы, будет и лог.
Была проблема что после FSE не закрывая плейер выбрать EVR CP и в нем попытаться перейти в FSE - самого окна FSE не было. У меня вроде как этой проблемы уже нет, просьба перепроверить.Перепроверил данную проблему. Ее больше нет. :)
Была проблема что после FSE не закрывая плейер выбрать EVR CP и в нем попытаться перейти в FSE - самого окна FSE не было. У меня вроде как этой проблемы уже нет, просьба перепроверить.На win8 нормально. По поводу таскбара: запускаем плеер на основном мониторе, воспроизведение, отправляем в FSE на ТВ, на основном мониторе наводим курсор на иконку плеера в панели задач, всплывает окно с элементарной панелью инструментов. Вот ею я и делал переходы. Таким способом переходы не всегда получались корректными. Получались и полноценные FSE, и черный экран, было и полное отсутствие FSE, всё вперемешку, хаотично.
Была проблема что после FSE не закрывая плейер выбрать EVR CP и в нем попытаться перейти в FSE - самого окна FSE не было. У меня вроде как этой проблемы уже нет, просьба перепроверить.И только я обрадовался, как...
,Она видоизменилась. И ее поведение отличается от версий ОС. Пытаюсь поймать ее повторно у себя на семерке.
На восьмёрке нормально, но именно переход с MPC-VR FSE на EVR-CP FSE не всегда срабатывает. Так что проблема не ушла.
*** Exception 0xC0000005 occured ***
C:\Windows\system32\d3d9.dll : Direct3DShaderValidatorCreate9()
C:\Windows\system32\d3d9.dll : Direct3DShaderValidatorCreate9()
C:\Windows\system32\USER32.dll : TranslateMessageEx()
C:\Windows\system32\USER32.dll : SetWindowTextW()
C:\Windows\system32\USER32.dll : IsDialogMessageW()
C:\Windows\SYSTEM32\ntdll.dll : KiUserCallbackDispatcher()
C:\Windows\system32\USER32.dll : SfmDxSetSwapChainStats()
C:\Windows\system32\USER32.dll : GetMessageW()
C:\Program Files\MPC-BE x64\mpc-be64.exe : GetMessageW()
C:\Program Files\MPC-BE x64\mpc-be64.exe : GetMessageW()
C:\Program Files\MPC-BE x64\mpc-be64.exe : GetMessageW()
C:\Program Files\MPC-BE x64\mpc-be64.exe : GetMessageW()
C:\Windows\system32\kernel32.dll : BaseThreadInitThunk()
C:\Windows\SYSTEM32\ntdll.dll : RtlUserThreadStart()
Обновился до 1.5.5 (build 5337) beta+0.4.6.1350 (git-2020.06.17-f909ba2) и могу точно сказать, что на Win8 нюанс с переходом с MPC-VR FSE на EVR-CP FSE никуда не делся, немного изменился сам алгоритм, но картина получается такая же. Нужно лишь во время воспроизведения в FSE(MPC-VR) кликнуть по кнопке закрыть(теперь есть такая возможность), или же Ctrl+C, затем перейти на EVR-CP FSE, перезапустить файл и перейти опять в FSE, на Win8 точно FSE уже не будет.Проверил ваш алгоритм. Подтверждаю! Действительно, если выполнить данный алгоритм, то на EVR-CP окна FSE не будет, оно будет невидимым. Согласен с вами! На Windows 7 - аналогично. Т.е. видите, оказывается есть нюансы с сочетанием клавиш "Ctrl+C". Молодцы, что смогли это обнаружить.
И ещё. Проверьте у себя вот что: прикрепите сначала плейлист снизу, запустите файл и перейдите в FSE(MPC-VR), нажмите Ctrl+7 и посмотрите, будет ли после этого работать seekbar.Проверил. Подтверждаю! У меня на Win7 шкала прогресса (seekbar) некорректно работает в режиме FSE. Если пытаешься навести курсор мышки на нее, она сразу же пропадает. А если вести курсор мышки, не доходя до сикбара, то он появляется раньше. Это связано с тем, что мы вызвали плейлист, которого не видно в режиме FSE и соответственно изменилось положение самого seekbar. Т.е. он располагается выше своего изначального уровня. Это нужно доработать, т.к. такое условие не учтено.
Теперь закрепите плейлист сверху или справа, запустите файл и перейдите в FSE(MPC-VR), нажмите Ctrl+7 и посмотрите, будет ли после этого корректно работать две кнопки в верхнем правом углу.Проверил сначала верхнее положение плейлиста. Обе кнопки работают корректно.
Evgeniy1990,Нестрашно. Это, наоборот, еще один нюанс, еще одно условие - опция "Скрывать на полном экране".
Я немного ошибся, нужно в плейлисте поставить галочку на " Скрывать на по полном экране". И тогда нажимать Ctrl+7. У меня именно так было.
Есть вопрос по настройкам "Полный экран". Там есть твик "Выход ..... по окончании воспроизведения" Просто интересно, включена ли эта опция или нет,По умолчанию данная опция включена.
с EVR-CP FSE плеер всегда выходит по окончании воспроизведения из FSE и вообще из FS, а c MPC-VR FSE плеер ведёт себя корректно согласно данной опции, как мне кажется. Или тут всё наоборот?Просто реализация режима FSE на EVR-CP и MPC VR - разная.
Evgeniy1990,В том-то и дело, что из-за разной реализации режима FSE на двух разных видео-рендерерах EVR-CP и MPC VR и возникают различные конфликты в течении одной текущей сессии. Просто, после перезапуска, сбрасывается предыдущая рабочая конфигурация работы режима FSE, отсюда и проблем нет.
Спасибо за ответ и за подтверждения. По поводу разной реализации: не есть ли эта разная реализации причина некорректного перехода c MPC-VR FSE на EVR-CP FSE в одной сессии, ведь если это делать с перезапуском плеера, то и проблемы нет.
P.S. Вот пробуем - https://yadi.sk/d/LKWRjUjbEOLUHg. Когда будет использоваться MPC VR + FSE - сделал скрытие плейлиста(даже если не выставлена галка не его авто-скрытие) и запретил "отображение" различных панелей/котроллов.Проверил тестовый билд. С опцией "Скрывать на по полном экране" плейлист, проблемы исправились. А вот без данной опции, пока, к сожалению, остались.
Aleksoid1978,ЦитироватьP.S. Вот пробуем - https://yadi.sk/d/LKWRjUjbEOLUHg. Когда будет использоваться MPC VR + FSE - сделал скрытие плейлиста(даже если не выставлена галка не его авто-скрытие) и запретил "отображение" различных панелей/котроллов.Проверил тестовый билд. С опцией "Скрывать на по полном экране" плейлист, проблемы исправились. А вот без данной опции, пока, к сожалению, остались.
Осталось что именно - присутствует невидимый плейлист или только некорректно определяются координаты для отображения полосы прокрутки и FlyBar ?Некорректно определяются координаты для отображения полосы прокрутки.
Обновил, ссылка та же.При нажатии ПКМ, есть невидимое контекстное меню, потому что если кликнуть два раза ЛКМ в область, где располагается контекстное меню, невозможно выйти из режиме FSE (вернуться обратно в оконный режим).
Еще проверьте будут ли показываться меню по нажатию на правую кнопку меню(если можно проверить так же и с madVR FSE режиме).
А что насчет плейлиста и всего такого :) ?В вашем втором обновленном тестовом билде координаты исправились. Теперь корректно отображается полоса прокрутки в режиме FSE совместно с курсором мышки, при его наведении на нее. Также теперь нормально отображаются две кнопки в правом верхнем углу экрана FSE, при взаимодействии с плейлистом. Больше они не пропадают.
Да я бы вообще выкинул этот Sync. Я его не трогал и трогать не собираюсь.Чем он вам не угодил? Чем он так плох? В некоторых местах, у него даже код схожий с EVR-CP.