Падение MPC AudioRenderer при смене ролика YouTube [Исправлено]

Автор Evgeniy1990, 14 декабря 2020, 16:56:23

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Evgeniy1990

Aleksoid1978,
Цитата: Aleksoid1978 от 14 декабря 2020, 15:47:48
Готово, пробуем!
Проверил нововведение. На данный момент не совсем корректно работает "WebM/Opus Audio". При попытке на него перейти, плеер может упасть.
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.

Evgeniy1990

#1
V0lt,
Возможные варианты падения:

*** Exception 0xC0000005 occured ***

C:\Windows\SYSTEM32\ntdll.dll : RtlWaitOnAddress()
C:\Windows\SYSTEM32\ntdll.dll : RtlEnterCriticalSection()
C:\Windows\SYSTEM32\ntdll.dll : RtlEnterCriticalSection()
C:\Windows\SYSTEM32\AUDIOSES.DLL : DllGetActivationFactory()
C:\mpc-be\src\filters\renderer\MpcAudioRenderer\AudioSyncClock.cpp(68) : CAudioSyncClock::Slave()
C:\mpc-be\src\filters\renderer\MpcAudioRenderer\MpcAudioRenderer.cpp(759) : CMpcAudioRenderer::Run()
C:\Windows\System32\quartz.dll : AMGetErrorTextW()
C:\Windows\System32\quartz.dll : AMGetErrorTextW()
C:\Windows\System32\quartz.dll : AMGetErrorTextW()
C:\Windows\System32\quartz.dll : AMGetErrorTextW()
C:\Windows\System32\quartz.dll : AMGetErrorTextW()
C:\Windows\System32\USER32.dll : CallWindowProcW()
C:\Windows\System32\USER32.dll : DispatchMessageW()
C:\Windows\System32\quartz.dll : AMGetErrorTextW()
C:\Windows\System32\KERNEL32.DLL : BaseThreadInitThunk()
C:\Windows\SYSTEM32\ntdll.dll : RtlUserThreadStart()

и

C:\Windows\SYSTEM32\ntdll.dll : RtlWaitOnAddress()
C:\Windows\SYSTEM32\ntdll.dll : RtlEnterCriticalSection()
C:\Windows\SYSTEM32\ntdll.dll : RtlEnterCriticalSection()
C:\Windows\SYSTEM32\AUDIOSES.DLL : DllGetActivationFactory()
C:\Program Files\MPC-BE x64\mpc-be64.exe : DllGetActivationFactory()
C:\Program Files\MPC-BE x64\mpc-be64.exe : DllGetActivationFactory()
C:\Windows\System32\quartz.dll : AMGetErrorTextW()
C:\Windows\System32\quartz.dll : AMGetErrorTextW()
C:\Windows\System32\quartz.dll : AMGetErrorTextW()
C:\Windows\System32\quartz.dll : AMGetErrorTextW()
C:\Windows\System32\quartz.dll : AMGetErrorTextW()
C:\Windows\System32\USER32.dll : CallWindowProcW()
C:\Windows\System32\USER32.dll : DispatchMessageW()
C:\Windows\System32\quartz.dll : AMGetErrorTextW()
C:\Windows\System32\KERNEL32.DLL : BaseThreadInitThunk()
C:\Windows\SYSTEM32\ntdll.dll : RtlUserThreadStart()

И снова я натыкаюсь на эту, до сих пор неисправленную, ошибку, приводящую к падению.
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.

V0lt

#2
Цитата: Evgeniy1990 от 14 декабря 2020, 16:56:23Проверил нововведение. На данный момент не совсем корректно работает "WebM/Opus Audio". При попытке на него перейти, плеер может упасть.
Хмм. Проверил около десятка клипов, всегда переключался на Opus - ни разу не падало.

Evgeniy1990

#3
V0lt,
ЦитироватьХмм. Проверил около десятка клипов, всегда переключался на Opus - ни разу не падало.

Я уже далеко ни в первый раз натыкаюсь на эту проклятую ошибку, вызывающую падение. Также, я несколько раз писал и отправлял вам баг-репорты о ее проявлении в различных местах. Сама ошибка имеет двойное название, она же - "AUDIOSES.DLL" и она же "AudioSyncClock.cpp", но суть у нее одна - приведение к падению. Чаще всего, она проявляется на FLV и MPEG-PS/TS, так как в них аудиоданные (сегменты аудио) могут располагаться и воспроизводится в произвольном порядке, а не всегда с самого начала. Например, в неком видео, или аудио файле, аудиоданные начинаются не с начала, а с произвольного места. И именно в таких случаях и проявляется данная ошибка, вызывающая падение плеера. И проявляется она именно при использовании "MPC Audio Renderer".

P.S. Вот один из моих баг-репортов по поводу данной ошибки. Куда делись остальные - непонятно...
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.

Evgeniy1990

#4
V0lt,
Обратите внимание, проблема именно в нашем "MPC Audio Renderer". Не зря же отладчик ссылается на его "часы" - "AudioSyncClock.cpp". Что-то у нас не совсем корректно работает этот SyncClock. Обязательно потом посмотрите эту проблему и устраните. Только за 2020-ый год я наткнулся на нее уже 5 раз. Четыре баг-репорта уже были у меня готовы в разные времена года. И везде эта проклятая ошибка.
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.

Evgeniy1990

#5
V0lt,
Суть в том, что если в неком видео, или аудио файлах присутствуют неровные сегменты аудио, то при попадании на них, вылетит эта ошибка, приводящая к падению. Для наглядности, изобразил для вас эти сегменты. Я думаю, что разница вам понятна, в какой именно момент возникает ее проявление. Если непонятно, тогда такой еще один пример: открываем некий файл с ровным сегментами аудио и слышим: "Я прекрасная воительница в матроске - Сейлор Мун" - данной ошибки нет, а теперь с неровными сегментами аудио: "...тельница в матроске - Сейлор Мун" - и сразу получили падение.

А в случаях с потоковыми видео, или аудио файлами, все тоже самое, ведь мы резко переходим и практически всегда попадаем на неровные сегменты аудио и если удалось попасть - падение гарантировано! Вот так-то и никак иначе!

По моему предположению, получается, что SyncClock в MPC Audio Renderer, в момент резкого перехода, почему-то сбивается.
Помнится, Aleksoid1978 говорил, что у нас теперь более жесткая работа с часами, ну чтобы не было рассинхрона. Вот только эти моменты с переходами как-то не учли видимо...
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.

V0lt

#6
Evgeniy1990
Новая фича нормально работает, если использовать DirectSound?

Evgeniy1990

#7
V0lt,
ЦитироватьНовая фича нормально работает, если использовать DirectSound?
Нормально.
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

#8
Evgeniy1990
Цитировать
Проверил нововведение. На данный момент не совсем корректно работает "WebM/Opus Audio". При попытке на него перейти, плеер может упасть.

Это на релизной версии или Debug ? Ну и ты же можешь даже в релизной через дамп хотя бы найти место в нашем коде где падает.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

#9
Aleksoid1978,
ЦитироватьЭто на релизной версии или Debug ? Ну и ты же можешь даже в релизной через дамп хотя бы найти место в нашем коде где падает.
Я проверял на SVN r5814, на релизном билде, не на дебаг.
Да я и хотел это сделать, вот только дамп-файл, после открытия, выглядит вот так.

Ага, понял причину - мерзкий UAC. Вот, пожалуйста, само место падения.
Обратите внимание на эту строчку в которой происходит падение. Это как раз именно то, о чем я вам и говорил. Особенно GetPosition, когда происходит переход на текущую позицию. Именно в момент перехода и проявляется падение.
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

#10
Покажи настройки самого MPC Audio Renderer ?

По поводу GetPosition() в AR - это совершенно не то и никакого отношения к переходу позиции в самом файле не имеет :)
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

#11
Aleksoid1978,
ЦитироватьПокажи настройки самого MPC Audio Renderer ?
Пожалуйста. Но не думаю, что дело в настройках аудио-рендерера, поскольку они итак все по умолчанию стоят.
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

Ясно. Ну тут не знаю что сказать - я каждый день смотрю "не мало" фильмов/сериалов уже несколько лет используя MPC AR(правда использую Exclusive режим и битстрим в аудио-декодере) - не разу не ловил никакого падения.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Aleksoid1978

#13
Пробуем - https://yadi.sk/d/5EfIGGSVaBiH3g
В архиве тестовый х86 билд + сам патч(если захочется собрать самим или х64).

P.S. Хотя у себя смог поймать падение только на Exclusive и если включена галка освобождения устройства.
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

Evgeniy1990

Aleksoid1978,
Цитата: Aleksoid1978 от 16 декабря 2020, 09:54:52
Пробуем - https://yadi.sk/d/5EfIGGSVaBiH3g
В архиве тестовый х86 билд + сам патч(если захочется собрать самим или х64).

P.S. Хотя у себя смог поймать падение только на Exclusive и если включена галка освобождения устройства.
Вот так новость! Я даже и не ожидал, что вам все-таки удастся получить у себя падение. Да еще и при определенных условиях.
Проверил тестовый билд. Больше не падает. Падение устранено. Ну наконец-то! Больше меня не будет доставать эта мерзкая ошибка, вызывающая падение. Уж надеюсь. :)

За патч вам также огромное спасибо! Соберу x64-билд, прогоню еще его. Также надо будет проверить форматы FLV и MPEG-PS/TS.
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.