Автор Тема: MPC Video Renderer  (Прочитано 72266 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2208
MPC Video Renderer
« Ответ #75 : 10 Март 2018, 08:22:22 »
V0lt
Слушай, пока не обросло сильно кодом, может попробуешь прикрутить рендеринг DX11, хотя бы для софта. Ну так проверить - возможно или нет :)
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1810
MPC Video Renderer
« Ответ #76 : 10 Март 2018, 08:36:27 »
На Win7 видеопроцессор D3D11 не заработает. Надо на Win8.1 проверять, но это у меня не основная система.

Есть еще пример, но он какой-то странный, на выходе dll, которую непонятно как использовать.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2208
MPC Video Renderer
« Ответ #77 : 10 Март 2018, 08:42:38 »
ну так блин, давно пора уже поставить ченить по новее 7, лучше уж сразу 10. И заняться делом ))
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

  • Ветеран
  • *****
  • Сообщений: 1453
MPC Video Renderer
« Ответ #78 : 10 Март 2018, 08:54:53 »
Цитата: Aleksoid1978
По поводу зелени - Evgeniy1990 если не лень, попробуй методом перебора выяснить коммит после которого началось.
Я выяснил, с какого коммита появилась зелень - с билда 66, коммит db9e49e.
[merge_posts_bbcode]Добавлено: 2018-03-10 11:54:53[/merge_posts_bbcode]

Изменение : По возможности всегда используем видео-процессор с поддер…

…жкой деинтерлейса(т.к. встречается смешанный контент). Для прогрессивного контента всегда обрабатываем по одному кадру.
Motherboards: ASUS P5Q/GIGABYTE EP35C-DS3R, CPU: Core 2 Duo E8300/E8400, Memory: DDR2/DDR3, Video: MSI GTX 465/ASUS EAH5770/GTX 650 Ti, Audio: ASUS Xonar DG 5.1/Creative SB 5.1. VX/X-Fi Xtreme Gamer.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2208
MPC Video Renderer
« Ответ #79 : 10 Март 2018, 10:05:50 »
Ага, есть такое. На Radeon требуется чтобы полностью все сэмплы были заполнены данными, а в случае использования видео-процессора с деинтерлейсом - их получается 1 + 2. Надо бы подкорректировать код, подумаю как красивее сделать. Т.е. нам надо сперва полностью наполнить m_SrcSamples, и только потом обрабатывать через DXVA2-VP.
[merge_posts_bbcode]Добавлено: 2018-03-10 20:05:50[/merge_posts_bbcode]

Короче я выяснил, по крайней мере для Radeon, не важно в какой последовательности заполнять m_SrcSamples(от начала или от конца). Он выдает зелень если m_SrcSamples не полностью заполнено. Получается что рендерить можно только(на примере с Radeon) после получения 3 кадра(1 кадра + 2 backward).
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1810
MPC Video Renderer
« Ответ #80 : 10 Март 2018, 10:15:43 »
Там немного не так. Заполнять поверхность данными не нужно.
Но строка
const size_t numSamples = m_SampleFormat == DXVA2_SampleProgressiveFrame ? 1 : m_DXVA2Samples.size();конечно та еще. Я ее должен был прибить в af6daca, но пропустил.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2208
MPC Video Renderer
« Ответ #81 : 10 Март 2018, 10:27:16 »
В том то и дело что обязательно - по крайне мере на Radeon, пока все 3 поверхности не заполнены данными - проскакивает зелень. Это я уже выяснил опытным путем. Причем - пустые поверхности у нас уже заполнены черным цветом - не помогает.

А эту строку кода я уже "откатил".
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1810
MPC Video Renderer
« Ответ #82 : 10 Март 2018, 10:59:57 »
Какими данными?
[merge_posts_bbcode]Добавлено: 2018-03-10 13:59:57[/merge_posts_bbcode]

Я примерно нашел причину. Сделаю билд.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2208
MPC Video Renderer
« Ответ #83 : 10 Март 2018, 11:01:17 »
Короче - пока мы не получили 3 сэмпла и не заполнили ими поверхности, на экране зелень. Я хз что там не так у этого долбанного Radeon.
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1810
MPC Video Renderer
« Ответ #84 : 10 Март 2018, 11:13:28 »
Проверьте этот однострочный комит.
Сделал принудительное зануление SampleFormat.SampleFormat при инициализации, т.к. у нас оно заполняется из m_srcExFmt, хотя ранее там тоже ноль был.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2208
MPC Video Renderer
« Ответ #85 : 10 Март 2018, 11:16:27 »
Не помогает. И, кстати, это я уже пробовал :)
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1810
MPC Video Renderer
« Ответ #86 : 10 Март 2018, 12:06:59 »
Кстати у меня на Intel при аппаратном декоде нет картинки. :(
Типа будет на чем тестить.
[merge_posts_bbcode]Добавлено: 2018-03-10 15:00:18[/merge_posts_bbcode]

Evgeniy1990
Собери последнюю версию, запусти, и скопируй информацию из "статистики" фильтра.

[merge_posts_bbcode]Добавлено: 2018-03-10 15:06:59[/merge_posts_bbcode]

На Intel обламывается StretchRect.
hr = m_pD3DDevEx->StretchRect(pSurface, nullptr, m_SrcSamples.Get().pSrcSurface, nullptr, D3DTEXF_POINT);Пробовал D3DTEXF_NONE и D3DTEXF_LINEAR - бестолку.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2208
MPC Video Renderer
« Ответ #87 : 10 Март 2018, 12:44:03 »
Смотри код ошибки.
[merge_posts_bbcode]Добавлено: 2018-03-10 22:44:03[/merge_posts_bbcode]

А возможно поверхность надо создавать тем способом, что я недавно делал - в любом случае надо смотреть код ошибки, а потом искать ее в дебрях VS.
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1810
MPC Video Renderer
« Ответ #88 : 10 Март 2018, 12:45:51 »
0x876086c

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 2208
MPC Video Renderer
« Ответ #89 : 10 Март 2018, 13:17:54 »
D3DERR_INVALIDCALL - хотя что это значит )) Пробуй создать поверхность как это я делал, ну мало ли. Только без ALIGN.
[merge_posts_bbcode]Добавлено: 2018-03-10 23:17:54[/merge_posts_bbcode]

Вот еще что нашел, надо смотреть CAPS:
"аппаратная поддержка StretchRect определяется по флагу D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES"
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215