MPC-BE forum

MPC-BE => Баг Репорт / The bug report => Архив / Archive => Тема начата: Evgeniy1990 от 03 октября 2019, 12:50:22

Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Evgeniy1990 от 03 октября 2019, 12:50:22
Проще говоря - сломан "MPC MKV Source" ну и алгоритмы перемотки, после последних изменений, связанных с видео-рендерерами. В результате чего, после открытия элементарных матрешек, при попытке их перемотать в произвольные места, плеер просто падает с кодом ошибки под номером 5.

Вот видеозапись (https://yadi.sk/i/QmY1fPYbDzLwug) с воспроизведением элементарного падения на элементарной матрешке.

Сам "проблемный" видео файл здесь (https://yadi.sk/i/ZDtU2m_TLZ9zyw).

Как воспроизвести падение? Да очень просто - открыть видео файл и перематывать его мышкой по шкале прогресса воспроизведения в произвольные места, как на видеозаписи. И в любом из мест проявится падение.

Как говорится - на раз, два, три...
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Aleksoid1978 от 03 октября 2019, 15:56:03
Вообще то код ошибки 5 - это ошибка создания дампа.

Проверь без превьюшки.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Evgeniy1990 от 03 октября 2019, 16:50:49
Цитата: Aleksoid1978Вообще то код ошибки 5 - это ошибка создания дампа.
А точно, тьфу, с толку сбила эта ошибка. Будь проклят этот UAC на десятке, точнее его самовольное авто-включение, как и антивируса-защитника.  Да что ты будешь делать, только выключишь всю эту хренотень десятки, как через некоторое время она сама самовольно автоматически запускается.... Вот после такого, так и хочется сказать в 1000101 раз - верните обратно поддержку XP, дабы не терпеть эту доставучесть корпорации Майкрософт.

Ладно, это всего лишь лирика...

Цитата: Aleksoid1978Проверь без превьюшки.
Проверил, также падает.

Также проверил матрешку с главами и переход строго по главам, в итоге, падает даже при переходе на определенную, или же произвольную главу.

Уже, исходя из этого, можно сделать вывод, что встроенный MPC MKV Source имеет поломку. Но это еще не все. Тут также имеют место быть последние изменения, связанные с перемоткой.

Придется смотреть где и в каком месте происходит падение, а также искать с какого билда началась конкретно данная поломка.

Что же, начинаю поиск...

Прилагаю скриншот с местом падения.

Вот теперь стало ясно, что падение происходит именно в MPC Video Renderer, точнее в "DX9VideoProcessor.cpp".
Строка падения показана на самом скриншоте. Поломка именно в DX9. Раньше не падало - это 100%.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: V0lt от 03 октября 2019, 20:14:38
Падение не повторяется (https://yadi.sk/i/MY7HPYRfkppMKw). :-|

Добавлено: 2019-10-03 20:14:38

ЦитироватьПрилагаю скриншот с местом падения.
Не уверен, но похоже DXVA2 VP отвалился. :-)

В любом случае будет переделка касаемая видеопроцессоров DXVA2 и D3D11. Возможно этот баг сам уйдет.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Evgeniy1990 от 03 октября 2019, 20:28:03
Цитата: V0ltПадение не повторяется. :-|
И почему я не удивлен? Оно и понятно - типичные ответы в стиле - "я не смог воспроизвести у себя падение". :)
ЦитироватьНе уверен, но похоже DXVA2 VP отвалился. :-)
Странно, что он как-то работает и выдает изображение. Но стоит только перемотать и бац - хана плееру.
ЦитироватьВ любом случае будет переделка касаемая видеопроцессоров DXVA2 и D3D11. Возможно этот баг сам уйдет.
Отличная и обнадеживающая новость от вас. Эх, хотелось мне, чтобы все было именно так, чтобы этот баг исчез сам собой, но вспоминая случай с переделкой кода субтитров, когда код был изменен, а падение осталось, пока верится в это не так сильно, скажем так, не так твердо и убедительно.

В любом случае, я всегда в вас верю - вы сможете и преодолеете все! :)
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: V0lt от 03 октября 2019, 20:52:21
Evgeniy1990
Я видео сделал, перематываю я там довольно усердно.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Evgeniy1990 от 04 октября 2019, 00:01:48
Цитата: V0ltЯ видео сделал, перематываю я там довольно усердно.
Попробуйте воспроизвести падение на Debug-билде MPC Video Renderer в режиме DX9, только не в самой студии, а в обычном состоянии.

Тут прикол в том, что само падение через внешние сторонние связанные приложения между собой может просто не проявиться.

Добавлено: 2019-10-04 00:01:48

V0lt

Вам проще всего в самой студии, именно в отладочной версии MPC Video Renderer, воспроизвести данное падение на матрешках, содержащих главы. Для этого достаточно просто поочередно переключаться мышкой на следующую главу в видео файлах, содержащих эти самые главы.

Вот, прилагаю для вас примеры.

P.S.

Aleksoid1978

Для вас аналогично.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Aleksoid1978 от 04 октября 2019, 02:02:11
Проверил, именно на Debug версии, на DX9(все настройки выставил дефолтные). Проверял и в студии и без.
Никакого падения - перематывал по разному, все гуд :)

Ах да - у меня же нет старого радеона )) Судя по скрину - ошибка именно в их дровах.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Evgeniy1990 от 04 октября 2019, 06:20:28
Цитата: Aleksoid1978Проверил, именно на Debug версии, на DX9(все настройки выставил дефолтные). Проверял и в студии и без.
Никакого падения - перематывал по разному, все гуд :)
Неудивительно...
Цитата: Aleksoid1978Ах да - у меня же нет старого радеона )) Судя по скрину - ошибка именно в их дровах.
Ну началось... Теперь уже драйверы виноваты. Вот так ответ...

После таких ответов сидишь и думаешь - вот я "идиот", драйвера не в состоянии обновить или переустановить...

Вот серьезно, тот же EVR-CP использует тот же самый DX9 и при этом, на нем данного падения нет. А в MPC Video Renderer на том же DX9 падение есть, но его нет на DX11. О чем это говорит? Да о том, что причина явно не в драйверах.  Я даже, ради проверки и интереса, установил другие драйверы. В итоге, падение так и осталось, что еще раз доказало и подтвердило мои слова.

Ладно, как всегда, остается только сидеть и ждать переделки самих DX9 и DX11, как говорил V0lt.

Особенно меня интересует DX9. Он по всем здравым смыслам должен работать просто идеально (образно говоря), т.е. абсолютно нормально, как и на EVR-CP.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Aleksoid1978 от 04 октября 2019, 07:24:16
Да при чем здесь сам DX9 и VR. VR просто использует его для обработки/вывода картинки. Как можно сравнить EVR/EVR-CP и MPC VR, это совершенно разные вещи. И да - могут быть(да и 100% есть) разные косяки и т.д. Все таки все пишется самими, с нуля, без особых знаний и т.д.

Про дрова AMD я написал не для того чтобы "поругать" их, а просто факт того что видно на скрине. Ошибка в драйвере - а вот чем вызвано - не известно.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Evgeniy1990 от 04 октября 2019, 20:31:02
Цитата: Aleksoid1978Да при чем здесь сам DX9 и VR. VR просто использует его для обработки/вывода картинки. Как можно сравнить EVR/EVR-CP и MPC VR, это совершенно разные вещи. И да - могут быть(да и 100% есть) разные косяки и т.д. Все таки все пишется самими, с нуля, без особых знаний и т.д.
Умеете же вы удивлять. Исходя из вашего ответа, у каждого видео-рендерера свой собственный вариант этого DX9.
Цитата: Aleksoid1978Про дрова AMD я написал не для того чтобы "поругать" их, а просто факт того что видно на скрине. Ошибка в драйвере - а вот чем вызвано - не известно.
Конечно ошибка "atiumd6a.dll". А все почему? Естественно в угоду RX с его иной логикой. Ведь новые радеоны работают иначе, чем старые. А как же компромисс?
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: V0lt от 05 октября 2019, 08:36:45
Evgeniy1990
Сделай лог MPC VR, когда падает. Может что-нибудь высветиться.

Добавлено: 2019-10-05 08:36:45

Версию драйвера укажи еще. Надеюсь драйвер из стабильных.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Evgeniy1990 от 05 октября 2019, 22:19:37
Цитата: V0ltСделай лог MPC VR, когда падает. Может что-нибудь высветиться.
Сделал.
Цитата: V0ltВерсию драйвера укажи еще. Надеюсь драйвер из стабильных.
Пожалуйста.

Разумеется, драйвер из стабильных - стабильная версия, полностью проверена и тщательно протестирована.
К тому же, я уже говорил ранее, что раньше данного падения не было. Он появилось как раз в тот момент, когда вы уклонились (взяли курс) в сторону Radeon RX-серии. Вот тогда-то и посыпались несчастья.

Первое, что меня смутило - это периодические переделки алгоритмов перемотки для MPC VR, якобы были зависания, при перемотке. Скажу абсолютно точно, никаких зависаний не было - ни на AMD, ни на NVIDIA подавно. Сам лично проверял и не один раз, к тому же, перематываю я видео файлы достаточно часто, не так уж и редко. Если бы действительно было нечто подобное, я бы молчать не стал. Вот отсюда и начались проблемы с перемоткой на MPC VR.

Далее, были изменения входного формата для AMD RX. После них, лично мной, было замечено, что плеер странно стал реагировать на P010. Странность в том, что при открытии происходит жестокое подвисание плеера (резко до 100% увеличивается на него нагрузка ровно на 1-2 секунды после чего видео файл открывается с микрофризами).

Ну, а уже после, - словил падения при перемотке матрешек.

Все эти беды и несчастья были именно на DX9. Так как я, в первую очередь, проверяю тщательно именно его.

До DX11 мы еще дойдем и доберемся. Там то же есть свои поломки, причем более жуткие, чем на DX9.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: V0lt от 05 октября 2019, 22:53:33
По логу уж очень тихо падает, ни одной ошибки.
Релиз v0.3.2.860 так же себя ведет?
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Evgeniy1990 от 06 октября 2019, 00:23:16
Цитата: V0ltПо логу уж очень тихо падает, ни одной ошибки.
Релиз v0.3.2.860 так же себя ведет?
Попытка №2 - второй лог-файл. Посмотрите пожалуйста.

Еще отрезал один кусок мяса дрянной десятки. Теперь понятно, что ключом является именно DXVA2VPPass.

Релиз v0.3.2.860 так себя не ведет. Я проверил тщательно. Падения нет. Даже на матрешках с главами не падает.

Вот мы наконец-то и определили диапазон поиска поломки: [v0.3.2.860 -> v0.3.3.867].

Так что очевидно, что следующие изменения в MPC VR - некорректные.

Добавлено: 2019-10-06 00:23:16

V0lt

Продолжаю поиск проблемного изменения в GitHub.

Новый диапазон поиска: [v0.3.3.863 -> v0.3.3.867].

863 билд - не падает!

864 билд - падает!

Итоговый диапазон поиска: [v0.3.3.863 -> v0.3.3.864].

Вывод: коммит в GitHuib: 9fe173 является некорректным.
Данное изменение не работает для AMD-видеокарт.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Aleksoid1978 от 06 октября 2019, 04:05:17
Все верно - встроенный декодер на AMD при проигрывании H.264 при перемотке пересоздает DXVA2 декодер. А у нас получается что используем "устаревшую" текстуру.

Короче надо будет более тщательно потестировать.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: V0lt от 06 октября 2019, 06:58:14
Aleksoid1978, сделай патч, пожалуйста, чтобы декодер вел себя так на всех видеокартах.
Хочу потестировать, проверить идеи.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Aleksoid1978 от 06 октября 2019, 07:00:16
Index: src/filters/transform/MPCVideoDec/MPCVideoDec.cpp
===================================================================
--- src/filters/transform/MPCVideoDec/MPCVideoDec.cpp    (revision 4795)
+++ src/filters/transform/MPCVideoDec/MPCVideoDec.cpp    (working copy)
@@ -2688,7 +2688,7 @@
             InitDecoder(&m_pCurrentMediaType);
         }
 
-        if (UseDXVA2() && m_nCodecId == AV_CODEC_ID_H264 && m_nPCIVendor == PCIV_ATI) {
+        if (UseDXVA2() && m_nCodecId == AV_CODEC_ID_H264/* && m_nPCIVendor == PCIV_ATI*/) {
             HRESULT hr = ReinitDXVA2Decoder();
             if (FAILED(hr)) {
                 return hr;

Проверил у себя на Nvidia 960 с патчем - да, на каждую перемотку происходит пересоздание DXVA2 декодера(при просмотре H.264 контента). Но никакого падения :)
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: V0lt от 06 октября 2019, 07:53:23
Evgeniy1990
Выложил mpcvr-v0.3.3.868_dx9_dxva2vp_amd_1 (https://yadi.sk/d/uwBu4owfK9vOwg). Прошу проверить.

Патч:
Source/DX9VideoProcessor.cpp | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/Source/DX9VideoProcessor.cpp b/Source/DX9VideoProcessor.cpp
index 42df164..5c2b92d 100644
--- a/Source/DX9VideoProcessor.cpp
+++ b/Source/DX9VideoProcessor.cpp
@@ -998,6 +998,10 @@ BOOL CDX9VideoProcessor::InitMediaType(const CMediaType* pmt)
 void CDX9VideoProcessor::Start()
 {
     m_rtStart = 0;
+
+    if (m_bSrcFromGPU && m_pDXVA2_VP && m_VendorId == PCIV_AMDATI) {
+        m_SrcSamples.Resize(m_SrcSamples.Size(), m_srcExFmt.value);
+    }
 }
 
 void CDX9VideoProcessor::Stop()

Добавлено:
Увы, не работает.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Evgeniy1990 от 06 октября 2019, 12:43:31
Цитата: V0ltEvgeniy1990
Выложил mpcvr-v0.3.3.868_dx9_dxva2vp_amd_1. Прошу проверить.
Проверил тестовый билд. К сожалению, падает при перемотке матрешек.

Добавлено: 2019-10-06 12:43:31

V0lt

На всякий случай прилагаю лог-файл и скриншот со строкой падения в вашем тестовом билде.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Aleksoid1978 от 06 октября 2019, 12:57:54
Это скрин в декодере - а нужен в самом VR, ну самое последнее место в цепочке.

Добавлено: 2019-10-06 19:57:54

И вот попробуй - https://yadi.sk/d/9XgoQzKpcC63FA
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Evgeniy1990 от 06 октября 2019, 14:44:31
Цитата: Aleksoid1978И вот попробуй - https://yadi.sk/d/9XgoQzKpcC63FA
Проверил тестовый билд. Прогнал несколько матрешек, в том числе и с главами.
В итоге, данного падения больше нет и оно более не проявляется вообще.

Наконец-то данное падение полностью устранено! Вы поняли причину и вам удалось его устранить! :)
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Aleksoid1978 от 06 октября 2019, 14:52:31
Вот патч - https://yadi.sk/d/TfY_uwPMih_tvA
Я специально убрал проверку на AMD, т.к. по хорошему при перемотке в любом случае нам не нужны "старые" данные.
Название: Падение плеера при перемотке некоторых матрешек [Исправлено]
Отправлено: Evgeniy1990 от 08 октября 2019, 17:44:40
Цитата: Aleksoid1978Вот патч - https://yadi.sk/d/TfY_uwPMih_tvA
Я специально убрал проверку на AMD, т.к. по хорошему при перемотке в любом случае нам не нужны "старые" данные.
С вашим патчем - аналогично, не падает. Применил патч, собрал билд и проверил. В итоге - перемотка матрешек работает полностью нормально, без падений. Молодцы! ;)