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

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

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

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

Evgeniy1990

Цитата: Aleksoid1978Вот пробуем еще - https://yadi.sk/d/xgB7J9ddtDYCG
Проверил второй тестовый билд. К сожалению, пока вообще без изменений, обе проблемы пока по прежнему остались.
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Меня интересует ТОЛЬКО перемотка.
Проверил перемотку во втором тестовом билде на различных форматах видео файлов.
Аналогично, как и в первом тестовом билде, при перемотке, мертвое зависание больше не проявляется.

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

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.

Aleksoid1978

Второй тестовый билд щас хорошенько гоняю - вроде бы зависаний нет. На первом были.
[merge_posts_bbcode]Добавлено: 2016-07-13 18:20:38[/merge_posts_bbcode]

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

Ну это и не сильно страшно :)
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-13 18:20:38[/merge_posts_bbcode]

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

Цитата: Aleksoid1978Ну это и не сильно страшно :)
Согласен, это вообще отдельный случай, отдельная проблема.

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

С "мертвым зависанием, при перемотке", вы разобрались, останется еще потом попытаться разобраться с "зависанием, при переходе и открытии следующего файла в папке".

Еще раз напомню, что в случае "зависания, при переходе и открытии следующего файла в папке", само зависание происходит после вызова функции "WasapiBeginFlush()", если прогнать отладочный билд через "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

Цитата: Evgeniy1990Еще раз напомню, что в случае "зависания, при переходе и открытии следующего файла в папке", само зависание происходит после вызова функции "WasapiBeginFlush()", если прогнать отладочный билд через "DebugView".

Такое не разу не наблюдал и воспроизвести не могу - хотя сериалы частенько смотрю на работе на перемотке и переходами от одного файла к следующему.
[merge_posts_bbcode]Добавлено: 2016-07-14 19:41:24[/merge_posts_bbcode]

У меня есть одна просьба - погонять на обычных авишках с мп3 звуком, погонять 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А то что-то мне эта ситуация с зависанием совершенно не нравиться, аж клинит.
Вы имеете в виду мой случай - "зависание, при переходе и открытии следующего файла в папке"?
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:

По поводу "зависания, при переходе и открытии следующего файла в папке" - выяснил, что причина зависания происходит не из-за аудио-рендереров, а из-за нашего аудио декодера. Баг именно в нашем "MPC Audio Decoder".

Причем, это действительно поломка.

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

Итак, пока текущий диапазон поиска: [1093 ->1749]
[merge_posts_bbcode]Добавлено: 2016-07-19 13:06:26[/merge_posts_bbcode]

По поводу "AVI + MP3" - аналогично, есть зависание, при перемотке и снова виснет из-за нашего аудио декодера.
Зависание тоже самое, что и при переходе и открытии следующего файла в папке.
Причем, в зависимости от различных форматов, оно может проявляться, а может и вообще не проявиться.

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

В общем, надо будет найти проблемные изменения в SVN.

По логу вообще непонятно из-за чего виснет.

Вот, пожалуйста, сам лог:

Извините, вам запрещён просмотр содержимого спойлеров.


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

И еще меня просто удивило это: "450х10" О_о  Несмотря на то, что разрешение видео файла "450х360". Странно...

[merge_posts_bbcode]Добавлено: 2016-07-19 13:12:13[/merge_posts_bbcode]

Продолжаю поиски проблемного билда и проблемных изменений в SVN,

[merge_posts_bbcode]Добавлено: 2016-07-19 13:43:02[/merge_posts_bbcode]

Текущий диапазон поиска: [1093 -> 1119].
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-19 21:50:41[/merge_posts_bbcode]

Я сам смотрю сериалы "на перемотке" - но такой "фигней" не страдаю :)
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-19 21:50:41[/merge_posts_bbcode]

Я сам смотрю сериалы "на перемотке" - но такой "фигней" не страдаю :)
Баг точно в коде, я уже говорил, что в нашем "MPC Audio Decoder (MpaDecFilter)" и проявляется он не только у меня одного.

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

Окончательный диапазон поиска: [1098 ->1102].

Поломка возникла после изменений в SVN r1102.

Если прочитать данные изменения в SVN r1102, то можно уже догадаться в чем причина возникновения данного зависания. И вполне очевидно, что опять виноваты проверки инициализации SPDIF/Bitastream.
Можно предположить, что происходит ложное срабатывания этих введенных различных дополнительных проверок.

И потом, это уже не в первый раз, когда возникали проблемы именно с этими "SPDIF/Bitstream".
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-20 09:24:01[/merge_posts_bbcode]

Вот пробуем, немного под-шаманил(не убирая код) - https://yadi.sk/d/7fcLOUcStSxuC
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-20 09:24:01[/merge_posts_bbcode]

Вот пробуем, немного под-шаманил(не убирая код) - https://yadi.sk/d/7fcLOUcStSxuC
Проверил тестовый билд. В нем зависание пока еще присутствует.

Предлагаю вам, в качестве варианта, попробовать по частям переносить код, таким образом будет проще понять, какая часть кода вызвала данное зависание. Просто в SVN r1102 и возврат r1097 и изменения по SPDIF/Bitstream и еще дополнительные проверки и прочие изменения. Уж больно много всего. Лучше всего конечно разделить все это дело на несколько тестовых билдов, допустим в одном тестовом билде - код только для r1097, в другом - только код, касаемый изменений по SPDIF/Bitstream, в третьем - дополнительные проверки и прочее.

Но я думаю, что скорее всего тут одно из двух - или повлияли изменения для SPDIf/Bitstream, или различные введенные дополнительные проверки.

P.S. Прилагаю для вас проблемные видео файлы: https://yadi.sk/d/XHWM-tUntT24W

Ваша задача:

1. скачать и положить их всех в одну папку,
2. отсортировать их по имени,
3. запустить первый по алфавиту видео файл,  
4. Включить опцию перехода к след. файлу в каталоге, по окончании воспроизведения,
5. после этого, зажать клавишу "стрелку вправо" и держать ее в нажатом состоянии до тех пор, пока не получите зависание, при следующем открытии одного из данных видео файлов.

Таким образом, вы сможете воспроизвести у себя эту проблему.
[merge_posts_bbcode]Добавлено: 2016-07-20 05:48:59[/merge_posts_bbcode]

Также, пожалуйста обратите внимание на перемотку окончания воспроизведения видео файла "F.E.A.R.", при условии нажатого состояния клавиши "стрелки вправо". Сравните ваш переделанный код с более ранней ревизией.

Вы увидите, что есть отличие. Я вам даже сразу могу его назвать - отличие заключается в том, что в более ранних 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

По поводу "подождать несколько секунд" - никакие декодеры/сплиттеры тут не причем. Это был переделана обработка перемотки в самом проигрывателе, чтобы как раз не ждать эти несколько секунд а сразу перейти на конец файла.
[merge_posts_bbcode]Добавлено: 2016-07-20 13:41:59[/merge_posts_bbcode]

Так - прогнал я выложенные файлы. Выставил чтобы по окончанию переход на следующий(зациклить). Открыл первый файл и зажал стрелку вправо. Прождал пока по кругу все файлы переберутся раз наверное 6-7 ... и все нормально, ни одного зависания. Фильтры все встроенные, WASAPI вывод Exclusive, EVR Custom, DXVA включен.

Как бы и добавить нечего.
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Так - прогнал я выложенные файлы. Выставил чтобы по окончанию переход на следующий(зациклить). Открыл первый файл и зажал стрелку вправо. Прождал пока по кругу все файлы переберутся раз наверное 6-7 ... и все нормально, ни одного зависания. Фильтры все встроенные, WASAPI вывод Exclusive, EVR Custom, DXVA включен.

Как бы и добавить нечего.

В таком случае, попробуйте пожалуйста точно также прогнать в новой сессии эти видео файлы.
Т.е. не только в одной сессии пробежать по кругу 6 - 7 раз и т.д., но и также закрывать текущую сессию и периодически запускать новые сессии и также быстренько прогнать их по кругу несколько раз, до тех пор, пока не получите зависание, при переходе и открытии следующего видео файла в одной папке.

Я вам честно и точно скажу, что у себя я прогнал и протестировал последние SVN-билды аж на трех разных машинах и на всех я очень даже легко смог воспроизвести эту поломку, т.е. само зависание, при переходе и открытии следующего видео файла в папке, причем на разных звуковых картах и на разных системах, даже на Windows 10.

Скриншоты:

https://yadi.sk/i/TJeCtAkTte2se
https://yadi.sk/i/bsq9sfSnte5Mw

После тщательных тестов, смело и точно вам говорю, что изменения в SVN r1102 являются полностью некорректными. И эту поломку, это зависание вполне сможет поймать и воспроизвести совершенно любой пользователь, особенно на более ранних операционных системах (Win7/Win8.1), поскольку оно есть на любой новой операционной системе, за исключением XP.

И, скорее всего, это и есть те самые изменения, связанные с переделанным способом дополнительных проверок.

И да, я также заметил, что на Windows 10 зависание проявляется не так быстро и часто, как на предыдущих операционных системах Windows 7/8.1, но все-равно проявляется.

P.S. Прилагаю еще для вас эти видео файлы: https://yadi.sk/d/2FVeytXGte4S9

С помощью них, я надеюсь, что вы все же сможете, хотя бы один раз, воспроизвести это зависание.
Сразу скажу, что это не просто "рандомные" видео файлы, а именно те видео файлы, на которых чаще всего проявляется зависание, при следующем переходе и их открытии конкретно на Windows 10, по моим тщательным тестам. Я специально их отобрал. В моем случае, достаточно открыть один и с помощью зажатой перемотки дождаться переход на следующий по имени (на второй), как сразу можно получить зависание.
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.