WASAPI - Зависание при перемотке. [Исправлено]

Автор Aleksoid1978, 11 июля 2016, 11:56:25

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

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

Aleksoid1978

Ок - завтра дома попробую.
[merge_posts_bbcode]Добавлено: 2016-07-26 23:47:32[/merge_posts_bbcode]

Ну а пока вот 3 тестовых билда.
https://yadi.sk/d/U9_r4IaKteAPv
https://yadi.sk/d/tjcts61QteAPx
https://yadi.sk/d/Zhw08HHNteAQD

[merge_posts_bbcode]Добавлено: 2016-07-27 10:27:27[/merge_posts_bbcode]

Так - погонял последний набор видео. Запускал 5 раз и прогонял раз по 5-7 все файлы по кругу ... и ни намека на зависание.
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Ну а пока вот 3 тестовых билда.
https://yadi.sk/d/U9_r4IaKteAPv
https://yadi.sk/d/tjcts61QteAPx
https://yadi.sk/d/Zhw08HHNteAQD
Проверил все три тестовых билда на разных машинах, разных системах и на разных звуковых картах.
Во всех трех тестовых билдах полностью отсутствует зависание, при переходе и открытии следующего файла в папке, в отличие от SVN-билдов.
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

Цитата: Evgeniy1990
Цитата: Aleksoid1978Ну а пока вот 3 тестовых билда.
https://yadi.sk/d/U9_r4IaKteAPv
https://yadi.sk/d/tjcts61QteAPx
https://yadi.sk/d/Zhw08HHNteAQD
Проверил все три тестовых билда на разных машинах, разных системах и на разных звуковых картах.
Во всех трех тестовых билдах полностью отсутствует зависание, при переходе и открытии следующего файла в папке, в отличие от SVN-билдов.

Очень странно ... В них отключал 3 разных участка кода(т.е. один отключаю - остальные 2 включены). И как-то странно что все 3 работают :)
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Очень странно ... В них отключал 3 разных участка кода(т.е. один отключаю - остальные 2 включены). И как-то странно что все 3 работают :)

Продолжаю очень тщательную прогонку...

Теперь я смог получить пока всего лишь один раз зависание на Windows 10 в третьем тестовом билде.

На первых двух тестовых билдах я по прежнему не могу получить ни одного зависания.
[merge_posts_bbcode]Добавлено: 2016-07-27 11:04:40[/merge_posts_bbcode]

Да, так и есть - третий тестовый билд виснет.

[merge_posts_bbcode]Добавлено: 2016-07-27 11:09:23[/merge_posts_bbcode]

Aleksoid1978:

Окончательные точные результаты такие:

1 тестовый билд - зависания нет, подтверждаю!
2 тестовый билд - зависание есть, подтверждаю!
3 тестовый билд - зависание есть, подтверждаю!

[merge_posts_bbcode]Добавлено: 2016-07-27 11:17:46[/merge_posts_bbcode]

Вот такие точные результаты я смог получить у себя на Windows 10. На втором и третьем тестовых билдах зависание я смог получить два раза, на первом я ни в какую не могу его получить.

Просто в тестовых билдах, особенно во втором и третьем это зависание стало проявляться гораздо реже, чем в SVN, где я его получал с первого раза на Windows 7.

Aleksoid1978:

Для увеличения вероятности проявления данного зависания, включите пожалуйста опцию "Автомасштаб = 100%" и пробегитесь несколько раз по моим видео файлам.
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

Вот другое дело,  теперь знаю в чем дело. Чуть позже выложу билд.
[merge_posts_bbcode]Добавлено: 2016-07-27 19:01:47[/merge_posts_bbcode]

Хотя нет, не все понятно - не должен 3 совсем виснуть, в нем убраны участки кода из 1 и 2 билда. :)
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Вот другое дело,  теперь знаю в чем дело. Чуть позже выложу билд.
[merge_posts_bbcode]Добавлено: 2016-07-27 19:01:47[/merge_posts_bbcode]

Хотя нет, не все понятно - не должен 3 совсем виснуть, в нем убраны участки кода из 1 и 2 билда. :)
В третьем тестовом билде зависание произошло в самом процессе зажатой перемотки и было похоже на мертвое зависание, которое вы уже исправили, но оно было не мертвым и выглядело точно также как и при переходе и открытии следующего файла в папке.

Конечно очень странно... Но я еще более тщательно прогоню у себя третий тестовый билд. Позже сообщу свои результаты и наблюдения.
[merge_posts_bbcode]Добавлено: 2016-07-27 13:14:33[/merge_posts_bbcode]

Aleksoid1978:

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

Скриншот зависания, при переходе и открытии след. файла в 3 билде: https://yadi.sk/i/xooAq75EtfewT
Скриншот зависания в процессе перемотки, в 3 билде: https://yadi.sk/i/Rw5bC36rtfg93

И только лишь в первом тестовом билде полностью отсутствует зависание.
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Вот пробуем - https://yadi.sk/d/Y5HhUaRptg6KN
Тщательно прогнал тестовый билд.

Зависание присутствует, но теперь можно сказать, что оно, практически, не проявляется в большинстве случаев, т.е. шанс его проявления очень низкий. Отсюда смело можно сказать, что прогресс в устранении данной поломки есть.
В данном тестовом билде непросто получить зависание в отличие от SVN-билдов.

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

На DirectSound его можно воспроизвести, но с трудом, а все потому, что для WASAPI вы сделали фичу так называемой "мгновенной перемотки", чтобы не ждать окончания воспроизведения данных. Вот именно поэтому в случае использования DirectSound приходится отпускать клавишу "стрелка вправо", иначе переход на следующий файл в папке не произойдет, или просто может не произойти для некоторых видео файлов.

Скриншот: https://yadi.sk/i/iUBcSJHMthns5

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

Выводы:

1. Зависание, при переходе и открытии следующего файла в папке, теперь наблюдается чаще всего только на "MPC Audio Renderer (WASAPI)" и реже на DirectSound.
2. При использовании "MPC Audio Renderer (WASAPI)", в случае быстрой перемотки вперед и перехода на следующий файл в папке, зависание может проявиться только на определенных видео файлах.
3. В данном тестовом билде r1777 полностью отсутствует зависания во время самого процесса мгновенной перемотки, как на DirectSound, на и на WASAPI, в отличие от третьего тестового билда.
4. Прогресс в исправлении данной поломки постепенно идет вперед, т.е. становится и стало гораздо лучше.
Тестовый билд r1777 работает лучше, чем все последние SVN-билды, после изменений в r1102.

Основное отличие тестового билда от SVN-билдов:

В тестовом билде зависание проявляется очень редко, на определенных видео файлах, в основном только при использовании "MPC Audio Renderer (WASAPI)", но может быть и при использовании DirectSound, но тоже очень редко, в отличие от SVN-билдов, где зависание проявлялось совершенно на любом аудио рендерере, даже на внешних, типа "Sanear" и при том очень часто, буквально сразу же, после перехода с одного (первого запущенного) видео файла в папке на другой (следующий по алфавиту).

P.S.

Вот смотрите, как интересно получается:

В одной папке лежат несколько файлов формата "MP4" и два формата "WebM (MKV)".
При использовании "MPC Audio Renderer (WASAPI)" в тестовом билде чаще всего зависание проявляется именно при переходе и открытии видео файлов, формата "WebM (MKV)" и реже на "MP4".

Скриншот: https://yadi.sk/i/kKjCwS5pthrZo

Мои два скриншота - это как раз два видео файла в формате "WebM (MKV)", на которых, как раз, чаще всего и проявляется зависание, при переходе на них.

Можно конечно предположить, что изменения в SVN r1102 некорректно работают с изменениями перемотки окончания данных в "MPC Audio Renderer (WASAPI)". Или наоборот, изменения перемотки окончания данных в "MPC Audio Renderer (WASAPI) некорретно работают после изменений в SVN r1102.

Ведь основное отличие в том, что при использовании "MPC Audio Renderer (WASAPI)" не нужно отпускать клавишу "стрелка вправо", чтобы перейти на следующий файл в папке, в отличие от "DirectSound 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

Перемотка никак не зависит от аудио вывода.

Код я залил в svn - посмотрим.
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 - посмотрим.

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

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

Но есть здесь еще кое-что, что меня удивило - это сама панель управления, или же просто сам "сикбар".

Не один раз я замечал случаи, когда во время зависания вообще напрочь полностью отсутствовала панель управления и соответственно сам "сикбар". Это действительно самая настоящая странность, поскольку панель управления в любом случае должна была сначала появиться.

И вот сегодня я эту странность смог воспроизвести полностью, на все 100%,  в последнем SVN-билде.
Меня удивило то, что во время перемотки или вообще отсутствует сикраб, или вообще полностью отсутствует сама панель управления, или же, во время мгновенной зажатой перемотки, с помощью клавиши "стрелка вправо", сикраб вообще просто стоит на месте, хотя по здравой логике он должен вообще-то двигаться дальше вперед.

Для многочисленных тестов я использовал несколько различных аудио декодеров и соответственно аудио-рендереров.

Аудио декодеры:

1. Наш встроенный "MPC Audio Decoder"
2. Внешний системный "Microsoft DTV-DVD Audio Decoder"
3. Внешний "LAV Audio Decoder"
4. Внешний "CoreAAC Audio Decoder"

Аудио-рендереры:

1. Наш встроенный "MPC Audio Renderer (WASAPI: Shared/Exсlusive Mode\'s)"
2. Внешний "Sanear Audio Renderer"
3. "DirectSound Audio Renderer"
4. Внешний "ReClock Audio Renderer"

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

Aleksoid1978:

Раз уж вы не можете воспроизвести у себя зависание на встроенном аудио декодере, попробуйте пожалуйста воспроизвести его на внешних аудио декодерах из данного списка, на моих выложенных для вас видео файлах, например, при использовании "Microsoft DTV-DVD Audio Decoder" в последних SVN-билдах, начиная с SVN r1779 и выше.
А также попробуйте пожалуйста вместо "Exclusive Mode" выбрать "Shared Mode".
[merge_posts_bbcode]Добавлено: 2016-07-30 19:07:47[/merge_posts_bbcode]

Aleksoid1978:

Я нашел способ стабильного воспроизведения зависания, при переходе и открытии следующего файла в папке - это через системный "Microsoft DTV-DVD Video Decoder". Т.е. достаточно просто подключить именно этот видео декодер и попытаться с ним прогнать мою первую, или вторую партии выложенных видео файлов, т.е. выполнить мгновенную перемотку, с помощью клавиши "стрелка вправо и дожидаться перехода на следующий файл в папке.

По поводу проблемы с панелью управления и с самим "сикбаром", я создал отдельную тему:
http://mpc-be.org/forum/viewtopic.php?pid=1967#p1967
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