Проще говоря - сломан "MPC MKV Source" ну и алгоритмы перемотки, после последних изменений, связанных с видео-рендерерами. В результате чего, после открытия элементарных матрешек, при попытке их перемотать в произвольные места, плеер просто падает с кодом ошибки под номером 5.
Вот видеозапись (https://yadi.sk/i/QmY1fPYbDzLwug) с воспроизведением элементарного падения на элементарной матрешке.
Сам "проблемный" видео файл здесь (https://yadi.sk/i/ZDtU2m_TLZ9zyw).
Как воспроизвести падение? Да очень просто - открыть видео файл и перематывать его мышкой по шкале прогресса воспроизведения в произвольные места, как на видеозаписи. И в любом из мест проявится падение.
Как говорится - на раз, два, три...
Вообще то код ошибки 5 - это ошибка создания дампа.
Проверь без превьюшки.
Цитата: Aleksoid1978Вообще то код ошибки 5 - это ошибка создания дампа.
А точно, тьфу, с толку сбила эта ошибка. Будь проклят этот UAC на десятке, точнее его самовольное авто-включение, как и антивируса-защитника. Да что ты будешь делать, только выключишь всю эту хренотень десятки, как через некоторое время она сама самовольно автоматически запускается.... Вот после такого, так и хочется сказать в 1000101 раз -
верните обратно поддержку XP, дабы не терпеть эту доставучесть корпорации Майкрософт.
Ладно, это всего лишь лирика...
Цитата: Aleksoid1978Проверь без превьюшки.
Проверил,
также падает.
Также проверил
матрешку с главами и переход строго по главам, в итоге, падает даже при переходе на определенную, или же произвольную главу.
Уже, исходя из этого, можно сделать вывод, что встроенный MPC MKV Source имеет поломку. Но это еще не все. Тут также имеют место быть последние изменения, связанные с перемоткой.
Придется смотреть где и в каком месте происходит падение, а также искать с какого билда началась конкретно данная поломка.
Что же, начинаю поиск...
Прилагаю
скриншот с местом падения.
Вот теперь стало ясно, что падение происходит именно в MPC Video Renderer, точнее в "DX9VideoProcessor.cpp".
Строка падения показана на самом скриншоте. Поломка именно в DX9. Раньше не падало - это 100%.
Падение
не повторяется (https://yadi.sk/i/MY7HPYRfkppMKw). :-|
Добавлено: 2019-10-03 20:14:38ЦитироватьПрилагаю скриншот с местом падения.
Не уверен, но похоже DXVA2 VP отвалился. :-)
В любом случае будет переделка касаемая видеопроцессоров DXVA2 и D3D11. Возможно этот баг сам уйдет.
Цитата: V0ltПадение не повторяется. :-|
И почему я не удивлен? Оно и понятно - типичные ответы в стиле - "я не смог воспроизвести у себя падение". :)
ЦитироватьНе уверен, но похоже DXVA2 VP отвалился. :-)
Странно, что он как-то работает и выдает изображение. Но стоит только перемотать и бац - хана плееру.
ЦитироватьВ любом случае будет переделка касаемая видеопроцессоров DXVA2 и D3D11. Возможно этот баг сам уйдет.
Отличная и обнадеживающая новость от вас. Эх, хотелось мне, чтобы все было именно так, чтобы этот баг исчез сам собой, но вспоминая случай с переделкой кода субтитров, когда код был изменен, а падение осталось, пока верится в это не так сильно, скажем так, не так твердо и убедительно.
В любом случае, я всегда в вас верю - вы сможете и преодолеете все! :)
Evgeniy1990
Я видео сделал, перематываю я там довольно усердно.
Цитата: V0ltЯ видео сделал, перематываю я там довольно усердно.
Попробуйте воспроизвести падение на Debug-билде MPC Video Renderer в режиме DX9, только не в самой студии, а в обычном состоянии.
Тут прикол в том, что само падение через внешние сторонние связанные приложения между собой может просто не проявиться.
Добавлено: 2019-10-04 00:01:48V0ltВам проще всего в самой студии, именно в отладочной версии MPC Video Renderer, воспроизвести данное падение на матрешках, содержащих главы. Для этого достаточно просто поочередно переключаться мышкой на следующую главу в видео файлах, содержащих эти самые главы.
Вот, прилагаю для вас
примеры.
P.S. Aleksoid1978Для вас аналогично.
Проверил, именно на Debug версии, на DX9(все настройки выставил дефолтные). Проверял и в студии и без.
Никакого падения - перематывал по разному, все гуд :)
Ах да - у меня же нет старого радеона )) Судя по скрину - ошибка именно в их дровах.
Цитата: Aleksoid1978Проверил, именно на Debug версии, на DX9(все настройки выставил дефолтные). Проверял и в студии и без.
Никакого падения - перематывал по разному, все гуд :)
Неудивительно...
Цитата: Aleksoid1978Ах да - у меня же нет старого радеона )) Судя по скрину - ошибка именно в их дровах.
Ну началось... Теперь уже драйверы виноваты. Вот так ответ...
После таких ответов сидишь и думаешь - вот я "идиот", драйвера не в состоянии обновить или переустановить...
Вот серьезно, тот же EVR-CP использует тот же самый DX9 и при этом, на нем данного падения нет. А в MPC Video Renderer на том же DX9 падение есть, но его нет на DX11. О чем это говорит? Да о том, что причина явно не в драйверах. Я даже, ради проверки и интереса, установил другие драйверы. В итоге, падение так и осталось, что еще раз доказало и подтвердило мои слова.
Ладно, как всегда, остается только сидеть и ждать переделки самих DX9 и DX11, как говорил V0lt.
Особенно меня интересует DX9. Он по всем здравым смыслам должен работать просто идеально (образно говоря), т.е. абсолютно нормально, как и на EVR-CP.
Да при чем здесь сам DX9 и VR. VR просто использует его для обработки/вывода картинки. Как можно сравнить EVR/EVR-CP и MPC VR, это совершенно разные вещи. И да - могут быть(да и 100% есть) разные косяки и т.д. Все таки все пишется самими, с нуля, без особых знаний и т.д.
Про дрова AMD я написал не для того чтобы "поругать" их, а просто факт того что видно на скрине. Ошибка в драйвере - а вот чем вызвано - не известно.
Цитата: Aleksoid1978Да при чем здесь сам DX9 и VR. VR просто использует его для обработки/вывода картинки. Как можно сравнить EVR/EVR-CP и MPC VR, это совершенно разные вещи. И да - могут быть(да и 100% есть) разные косяки и т.д. Все таки все пишется самими, с нуля, без особых знаний и т.д.
Умеете же вы удивлять. Исходя из вашего ответа, у каждого видео-рендерера свой собственный вариант этого DX9.
Цитата: Aleksoid1978Про дрова AMD я написал не для того чтобы "поругать" их, а просто факт того что видно на скрине. Ошибка в драйвере - а вот чем вызвано - не известно.
Конечно ошибка "
atiumd6a.dll". А все почему? Естественно в угоду RX с его иной логикой. Ведь новые радеоны работают иначе, чем старые. А как же компромисс?
Evgeniy1990
Сделай лог MPC VR, когда падает. Может что-нибудь высветиться.
Добавлено: 2019-10-05 08:36:45
Версию драйвера укажи еще. Надеюсь драйвер из стабильных.
Цитата: V0ltСделай лог MPC VR, когда падает. Может что-нибудь высветиться.
Сделал.
Цитата: V0ltВерсию драйвера укажи еще. Надеюсь драйвер из стабильных.
Пожалуйста.
Разумеется, драйвер из стабильных - стабильная версия, полностью проверена и тщательно протестирована.
К тому же, я уже говорил ранее, что раньше данного падения не было. Он появилось как раз в тот момент, когда вы уклонились (взяли курс) в сторону Radeon RX-серии. Вот тогда-то и посыпались несчастья.
Первое, что меня смутило - это периодические переделки алгоритмов перемотки для MPC VR, якобы были зависания, при перемотке. Скажу абсолютно точно, никаких зависаний не было - ни на AMD, ни на NVIDIA подавно. Сам лично проверял и не один раз, к тому же, перематываю я видео файлы достаточно часто, не так уж и редко. Если бы действительно было нечто подобное, я бы молчать не стал. Вот отсюда и начались проблемы с перемоткой на MPC VR.
Далее, были изменения входного формата для AMD RX. После них, лично мной, было замечено, что плеер странно стал реагировать на P010. Странность в том, что при открытии происходит жестокое подвисание плеера (резко до 100% увеличивается на него нагрузка ровно на 1-2 секунды после чего видео файл открывается с микрофризами).
Ну, а уже после, - словил падения при перемотке матрешек.
Все эти беды и несчастья были именно на DX9. Так как я, в первую очередь, проверяю тщательно именно его.
До DX11 мы еще дойдем и доберемся. Там то же есть свои поломки, причем более жуткие, чем на DX9.
По логу уж очень тихо падает, ни одной ошибки.
Релиз v0.3.2.860 так же себя ведет?
Цитата: 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:16V0ltПродолжаю поиск проблемного изменения в GitHub.
Новый диапазон поиска:
[v0.3.3.863 -> v0.3.3.867].
863 билд - не падает!
864 билд - падает!
Итоговый диапазон поиска:
[v0.3.3.863 -> v0.3.3.864].
Вывод: коммит в GitHuib:
9fe173 является некорректным.
Данное изменение не работает для AMD-видеокарт.
Все верно - встроенный декодер на AMD при проигрывании H.264 при перемотке пересоздает DXVA2 декодер. А у нас получается что используем "устаревшую" текстуру.
Короче надо будет более тщательно потестировать.
Aleksoid1978, сделай патч, пожалуйста, чтобы декодер вел себя так на всех видеокартах.
Хочу потестировать, проверить идеи.
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 контента). Но никакого падения :)
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()
Добавлено:
Увы, не работает.
Цитата: V0ltEvgeniy1990
Выложил mpcvr-v0.3.3.868_dx9_dxva2vp_amd_1. Прошу проверить.
Проверил тестовый билд. К сожалению, падает при перемотке матрешек.
Добавлено: 2019-10-06 12:43:31V0ltНа всякий случай прилагаю
лог-файл и
скриншот со строкой падения в вашем тестовом билде.
Это скрин в декодере - а нужен в самом VR, ну самое последнее место в цепочке.
Добавлено: 2019-10-06 19:57:54
И вот попробуй - https://yadi.sk/d/9XgoQzKpcC63FA
Цитата: Aleksoid1978И вот попробуй - https://yadi.sk/d/9XgoQzKpcC63FA
Проверил тестовый билд. Прогнал несколько матрешек, в том числе и с главами.
В итоге, данного падения больше нет и оно более не проявляется вообще.
Наконец-то данное падение полностью устранено! Вы поняли причину и вам удалось его устранить! :)
Вот патч - https://yadi.sk/d/TfY_uwPMih_tvA
Я специально убрал проверку на AMD, т.к. по хорошему при перемотке в любом случае нам не нужны "старые" данные.
Цитата: Aleksoid1978Вот патч - https://yadi.sk/d/TfY_uwPMih_tvA
Я специально убрал проверку на AMD, т.к. по хорошему при перемотке в любом случае нам не нужны "старые" данные.
С вашим патчем - аналогично, не падает. Применил патч, собрал билд и проверил. В итоге - перемотка матрешек работает полностью нормально, без падений. Молодцы! ;)