MPC Audio Renderer - пропадание звука и мертвое зависание плеера

Автор Evgeniy1990, 25 апреля 2018, 10:20:50

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

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

Evgeniy1990

Тема: "MPC Audio Renderer" - пропадание звука и мертвое зависание плеера, при переключении режимов WASAPI и звуковых устройств на лету, во время воспроизведения, туда и обратно несколько раз.

Описание проблемы:

В переделанном "MPC Audio Renderer" была обнаружена проблема, когда во время воспроизведения различных видео файлов, в том числе "особых" редких видео файлов, при переключении режимов WASAPI и звуковых устройств на лету, туда и обратно несколько раз, происходит пропадание звука, что в конечном итоге приводит к самовольной остановке воспроизведения видео кадров самого видео и мертвому зависанию самого плеера, если после остановки кадров видео, попробовать закрыть сам воспроизводимый видео файл (Файл -> Закрыть (Ctrl+C), или ПКМ по кнопке "Стоп").

Алгоритм воспроизведения:

1. Найти и открыть любой видео файл
2. После его открытия, во время воспроизведения видео файла, переключить режимы WASAPI с "Exclusive" на "Shared" и обратно с "Shared" на "Exclusive", а также и звуковые устройства туда и обратно и так несколько раз, пока не произойдет пропадание звука и остановки воспроизведения кадров видео.

Фактический результат:

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

Ожидаемый результат:

При переключении режимов WASAPI и звуковых устройств на лету, во время воспроизведения, туда и обратно, несколько раз, не должно быть пропадания звука, остановки воспроизведения кадров видео и мертвого зависания самого плеера, при попытке закрыть воспроизводимый видео файл.

P.S. Изначально, данная проблема (баг) с пропаданием звука, при переключении звуковых устройств и режимов WASAPI на лету, во время воспроизведения и дальнейшими ее последствиями - остановкой воспроизведения кадров видео и мертвым зависанием плеера, при попытках закрыть видео файл, или же сам плеер, является плавающей.

Но, если несколько раз, как можно чаще, во время воспроизведения на лету, переключать звуковые устройства, и режимы WASAPI туда и обратно, то она обязательно проявится.
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

Даже если такое и есть - то более как надуманная, синтетическая проблема. Ни один пользователь во время использования для просмотра такое делать не будет - это 100%. Примеры ради поимки багов не считаются.

Откладываем в самый дальний ящик...
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Даже если такое и есть - то более как надуманная, синтетическая проблема. Ни один пользователь во время использования для просмотра такое делать не будет - это 100%. Примеры ради поимки багов не считаются.

Откладываем в самый дальний ящик...
Не надуманная, а подтвержденная проблема. Да, я согласен с тем, что никто такое, во время воспроизведения проделывать не будет, но ради того, чтобы довести наш встроенный "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

Ну я проделал все этим изменения несколько раз, наверное раз по 5-6 менял и устройства, и настройки. Все отлично. А искать баги ради их нахождения - зачем оно нужно ?? Спортивный интерес разве только ))
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Ну я проделал все этим изменения несколько раз, наверное раз по 5-6 менял и устройства, и настройки. Все отлично. А искать баги ради их нахождения - зачем оно нужно ?? Спортивный интерес разве только ))
Я готов предоставить вам видео, где проявляется данная проблема.
Пожалуйста, ссылка на видео файл.
Вы просто, во время воспроизведения, попереключайте режимы WASAPI несколько раз, пока не проявится данная проблема. Я уверен, что вы сможете ее воспроизвести.
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

Сделал несколько подходов, каждый раз менял с Exclusive -> Shared -> Exclusive, а так же настройки, раз по 20-30. Все гуд.
[merge_posts_bbcode]Добавлено: 2018-04-25 21:10:14[/merge_posts_bbcode]

Могу посоветовать вот что - запустить Debug билд, потыкаться - а debug вывод( из Dbgview.exe), после того как пропадет звук/зависнет воспроизведение, выложить мне.
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Сделал несколько подходов, каждый раз менял с Exclusive -> Shared -> Exclusive, а так же настройки, раз по 20-30. Все гуд.
Странно, что у вас вообще не проявляется данная проблема...
Цитата: Aleksoid1978Могу посоветовать вот что - запустить Debug билд, потыкаться - а debug вывод( из Dbgview.exe), после того как пропадет звук/зависнет воспроизведение, выложить мне.
Собрал я Debug-билд и попробовал переключать режимы WASAPI и звуковые устройства на лету, во время воспроизведения различных видео файлов. К сожалению, в отладочном билде с использованием утилиты DebugView, воспроизвести эту проблему не удалось никак. Зато в релизных билдах она воспроизводится очень даже легко, со второго - третьего раза.

Предлагаю такой вариант - сделайте пожалуйста специальный релизный билд с созданием лог-файла на рабочем столе.
Я попробую получить данную проблему вместе с лог-файлом таким способом, после чего выложу вам сам лог.

Пока пытался поймать проблему в отладочном билде, обнаружил еще некоторые баги, например:

1. В отладочном билде выскакивает Assert, при открытии видео файлов с PCM-аудио.

Выглядит он вот так.
Ссылка на Debug-log

2. При переходе на следующий файл в папке вообще теряется напрочь "MPC Audio Renderer".
Вместо него подключается "DirectSound Audio Renderer", при этом происходит одно из двух - либо плеер просто намертво висит, сразу же после перехода на следующий файл в папке, либо воспроизводится через DirectSound, но без звука.

Выглядит это вот так.

Хочу отметить, что вторая проблема связана с основной проблемой данного баг-репорта.
Что интересно, в лог-файлах присутствует такая строка:

Oops, somebody was trying to be naughty! (called IsDebuggerPresent)

P.S. На всякий случай прилагаю вам 7 различных лог файлов. Посмотрите их пожалуйста. Чтобы вам было быстрее, пролистайте каждый из них в самый низ и обратите внимание на строчки ближе к концу.
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

Теряется при переходе когда висит сообщение assert ??
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Теряется при переходе когда висит сообщение assert ??
Нет. Assert, который показан у меня на скриншоте, возникает сразу же при открытии видео файла с PCM-аудио, т.е. с прямым выводом звука, минуя аудио декодер.

А "MPC Audio Renderer" теряется именно при переходе на следующий файл в папке, т.е. после перехода аудио-рендерер меняется уже на "Default DirectSound Device" и при этом происходит одно из двух - или после перехода, само воспроизведение намертво висит, что как раз-таки и показано в моей видеозаписи, или воспроизводится, но без звука.
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

Цитата: Evgeniy1990Что интересно, в лог-файлах присутствует такая строка:
Oops, somebody was trying to be naughty! (called IsDebuggerPresent)
Не обращай внимание на эту строку. У нее очень узкое предназначение.

Evgeniy1990

Aleksoid1978

Наконец-то мне все-таки удалось получить мертвое зависание плеера и потерю звука, при переключении режимов WASAPI и звуковых устройств на лету, во время воспроизведения.

Прилагаю лог-файл.

Также прилагаю скриншот мертвого зависания отладочного билда вместе с DebugView.
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

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К сожалению логи ничего не дают.
Я выяснил, откуда взялась эта проблема. Она появилась начиная с SVN r3545, причем - это поломка по ходу корректировки переделанного встроенного "MPC Audio Renderer".

Итоговый диапазон поиска: [3542 -> 3545]
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.