76

Re: MPC Video Renderer

V0lt
Слушай, пока не обросло сильно кодом, может попробуешь прикрутить рендеринг DX11, хотя бы для софта. Ну так проверить - возможно или нет smile

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

77

Re: MPC Video Renderer

На Win7 видеопроцессор D3D11 не заработает. Надо на Win8.1 проверять, но это у меня не основная система.

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

78

Re: MPC Video Renderer

ну так блин, давно пора уже поставить ченить по новее 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

79

Re: MPC Video Renderer

Aleksoid1978 пишет:

По поводу зелени - Evgeniy1990 если не лень, попробуй методом перебора выяснить коммит после которого началось.

Я выяснил, с какого коммита появилась зелень - с билда 66, коммит db9e49e.

Добавлено: 2018-03-10 11:54:53

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

…жкой деинтерлейса(т.к. встречается смешанный контент). Для прогрессивного контента всегда обрабатываем по одному кадру.
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.

80

Re: MPC Video Renderer

Ага, есть такое. На Radeon требуется чтобы полностью все сэмплы были заполнены данными, а в случае использования видео-процессора с деинтерлейсом - их получается 1 + 2. Надо бы подкорректировать код, подумаю как красивее сделать. Т.е. нам надо сперва полностью наполнить m_SrcSamples, и только потом обрабатывать через DXVA2-VP.

Добавлено: 2018-03-10 20:05:50

Короче я выяснил, по крайней мере для 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

81

Re: MPC Video Renderer

Там немного не так. Заполнять поверхность данными не нужно.
Но строка

const size_t numSamples = m_SampleFormat == DXVA2_SampleProgressiveFrame ? 1 : m_DXVA2Samples.size();

конечно та еще. Я ее должен был прибить в af6daca, но пропустил.

82

Re: MPC Video Renderer

В том то и дело что обязательно - по крайне мере на 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

83

Re: MPC Video Renderer

Какими данными?

Добавлено: 2018-03-10 13:59:57

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

84

Re: MPC Video Renderer

Короче - пока мы не получили 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

85

Re: MPC Video Renderer

Проверьте этот однострочный комит.
Сделал принудительное зануление SampleFormat.SampleFormat при инициализации, т.к. у нас оно заполняется из m_srcExFmt, хотя ранее там тоже ноль был.

86

Re: MPC Video Renderer

Не помогает. И, кстати, это я уже пробовал smile

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

87

Re: MPC Video Renderer

Кстати у меня на Intel при аппаратном декоде нет картинки. sad
Типа будет на чем тестить.

Добавлено: 2018-03-10 15:00:18

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

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

На Intel обламывается StretchRect.

hr = m_pD3DDevEx->StretchRect(pSurface, nullptr, m_SrcSamples.Get().pSrcSurface, nullptr, D3DTEXF_POINT);

Пробовал D3DTEXF_NONE и D3DTEXF_LINEAR - бестолку.

88

Re: MPC Video Renderer

Смотри код ошибки.

Добавлено: 2018-03-10 22:44:03

А возможно поверхность надо создавать тем способом, что я недавно делал - в любом случае надо смотреть код ошибки, а потом искать ее в дебрях 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

89

Re: MPC Video Renderer

0x876086c

90

Re: MPC Video Renderer

D3DERR_INVALIDCALL - хотя что это значит )) Пробуй создать поверхность как это я делал, ну мало ли. Только без ALIGN.

Добавлено: 2018-03-10 23:17:54

Вот еще что нашел, надо смотреть 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

91

Re: MPC Video Renderer

V0lt пишет:

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
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.

92

Re: MPC Video Renderer

Aleksoid1978
В общем Я психанул и написал Мадши. :-)

93

Re: MPC Video Renderer

Вот пробуй на Intel патч - https://yadi.sk/d/p-r1PJHL3TELQB
Он проверяет возможность StretchRect по флагу D3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES, если нет - то тогда просто копирование с помощью memcpy(), что конечно же намного медленнее.

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

94

Re: MPC Video Renderer

А почему бы просто по облому StretchRect не делать тоже самое? Дольше?

95

Re: MPC Video Renderer

Да ну - так не красиво. Ну ты проверил, так работает. В отладчике глянь - у тебя 100% нет поддержки 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

96

Re: MPC Video Renderer

Хмм. Тут какая-то неведомая хрень. Вчера подключал втором дисплеем TB на Intel. Сегодня подрубил к Intel-у основной монитор и все нормально стало.
Я попозже перепроверю, сейчас никак.

97

Re: MPC Video Renderer

Где-то вычитал что у Intel влияет какие-то там настройки 3D smile
Как сможешь - проверь(в отладчике) при выводе с Intel на моник и на телек, на наличие/отсутствие поддержки 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

98

Re: MPC Video Renderer

В общем проверка на флаг не работает. Просто если вывожу на дополнительный ТВ, то StretchRect обламывается. Проблему обошел, изменения залил.

99

Re: MPC Video Renderer

Эх - надо было еще проверить создание поверхностей через CreateOffscreenPlainSurface(), может быть для Intel это как-то играет роль. Сделай - проверь. Ибо memcpy() ну намного медленее чем StretchRect().

Добавлено: 2018-03-11 20:44:08

Думаю на днях прикрутить вывод текста(наподобие статистики в MPC-BE, но без D3Dx, средствами поверхностей + GDI).
Думаю либо в основной код, либо как отдельный класс замутить.

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

100

Re: MPC Video Renderer

Aleksoid1978 пишет:

Эх - надо было еще проверить создание поверхностей через CreateOffscreenPlainSurface(), может быть для Intel это как-то играет роль.

Сделай патч, пожалуйста.

Добавлено: 2018-03-11 14:34:22

Я там добавил немного кода для Direct3D11. Windows 7 почти на старте сошла с дистанции.