Поломка изменения скорости воспроизведения [Исправлено]

Автор Evgeniy1990, 11 января 2016, 23:38:22

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

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

Evgeniy1990

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

Вывод: сейчас выше 2х скорость не увеличивается.

Идем дальше...

1. Открываем любой аудио файл, например . mp3
2. Увеличиваем скорость до 2х
3. после 2х еще только один раз увеличиваем скорость

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

Идем дальше... (обратное действие) - уменьшение скорости воспроизведения

1. Открываем любой аудио файл, например . mp3
2. Увеличиваем скорость до 2х
3. Уменьшаем скорость до 1х

В результате, плеер говорит нам, что скорость = 1х, но на самом деле это не так, это даже слышно и заметно

4. Уменьшаем скорость до 0.5х

В результате, скорость 0.5 = скорости 1.0х

5. Снова увеличиваем с 0.5х до 1.0х

В результате, скорость воспроизведения 1.0х = скорости 0.5х

И так далее...

Общий вывод: фактически, у нас поломка настолько сильная, что скорости воспроизведения не соответствуют тем, что показывает нам плеер + вдобавок еще и выше 2х скорость не увеличивается, а точнее увеличивается, но плеер это не показывает, так и оставляет 2.х
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

1 - с WASAPI выводом все отлично.
2 - с DS у меня проблемы только с понижением, после понижения если вернуть обратно на 1.0х то она медленнее, с повышением все нормально, у меня до 4.0х увеличивается. И - если оно и поломано, то тут вопросы к драйверам своей звуковушки возможно(тем более что если скорость меняется а проигрыватель не отображает - это значит что вызов функции задания скорости вернула ошибку - но в самом DS выводе скорость изменилась).
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

V0lt

Это когда успело сломаться? У меня ускоряет до 4x (билд 1093).

Evgeniy1990

Цитата: Aleksoid19781 - с WASAPI выводом все отлично.
2 - с DS у меня проблемы только с понижением, после понижения если вернуть обратно на 1.0х то она медленнее, с повышением все нормально, у меня до 4.0х увеличивается. И - если оно и поломано, то тут вопросы к драйверам своей звуковушки возможно(тем более что если скорость меняется а проигрыватель не отображает - это значит что вызов функции задания скорости вернула ошибку - но в самом DS выводе скорость изменилась).
Aleksoid1978:
1. С WASAPI - согласен, все в порядке, как при увеличении, так и при уменьшении и обратном увеличении
2. С DirectSound - беда и дело здесь вовсе не в драйверах к аудио картам.

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

Для сравнения:

WASAPI - при 4х, частота кадров видео = 119.87 FPS ~ 120 FPS
DirectSound - при 4х, частота кадров видео = 27, 43, 66 FPS, т.е. скачет, как сумасшедшая. аналогично и при 2х.

Б) Драйверы последних версий, тестировал на всех системах с XP по Windows 10 на разных аудио картах.

Если взять только новые системы с Win7 по Win10, то увеличение работает до 4х на любой аудиокарте, как при WASAPI, так и при DirectSound -аудио-рендерерах.

А вот на XP - странность, DirectSound может больше, плеер показывает только 2х, тот же ReClock без проблем выжимает аж до 8х.

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

Также проблемы с плавностью воспроизведения (с частотой кадров FPS) на DirectSound при скоростях 2х и 4х.
Она скачет, как безумная, то с 66 до 27, то с 27 на 44 и т.д. Такое чувство что вообще не работает синхронизация видео с аудио.
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

1 - проверь в других проигрывателях. Если везде хорошо а у нас плохо - есть о чем призадуматься. Но что-то я в это не верю :)
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

Цитата: Aleksoid19781 - проверь в других проигрывателях. Если везде хорошо а у нас плохо - есть о чем призадуматься. Но что-то я в это не верю :)
У нас явно - нехорошо, особенно если использовать увеличенные скорости воспроизведения на DirectSound-аудио-рендерере.

Тут как бы, фактически, - два неприятных бага:

1. Некорректность воспроизведения, при уменьшении скоростей воспроизведения (например с 4х на 1х и т.д.)
2. Потеря плавности воспроизведения на 2х и 4х, при использовании DirectSound-аудио-рендерера.
[merge_posts_bbcode]Добавлено: 2016-01-12 10:43:17[/merge_posts_bbcode]

Цитата: V0ltЭто когда успело сломаться? У меня ускоряет до 4x (билд 1093).
Скажу сразу - достаточно давно уже.

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

Ведь я еще летом 2015 года заметил его.
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

Так - проблему идентифицировал. Дело во встроенном аудио-декодере. Замена на LAV избавляет от проблемы.

Мы в нашем декодере не учитываем показатель dRate при расчете временных меток. Завтра уже гляну и думаю подправлю.
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Так - проблему идентифицировал. Дело во встроенном аудио-декодере. Замена на LAV избавляет от проблемы.

Мы в нашем декодере не учитываем показатель dRate при расчете временных меток.
Аналогично и я заменил на LAV 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.

Aleksoid1978

Частично исправил в 1097.
Осталось понять почему при повышении скорости от значения меньше 1.0 до 1.0 скорость не восстанавливается полностью - это на DS выводе.
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

V0lt

Цитата: Aleksoid1978Частично исправил в 1097.
Абсолютно неправильное изменение.
(С) Evgeniy1990

Evgeniy1990

Цитата: V0ltАбсолютно неправильное изменение.
(С) Evgeniy1990

V0lt, я собрал и проверил SVN-билд 1098 - в нем вообще нет никакой разницы, при использовании DirectSound-аудио-рендерера.

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

Условие: используется DirectSound Audio Renderer.

1. Запустил видео файл
2. Увеличил скорость с 1.0х до 1.2х

В результате, скорость так и осталась 1.0х

3. Еще раз увеличил скорость с 1.2х до 1.5х

В результате, плеер показывает 1.5х, но на самом деле - это 1.2.х, т.е. 24х1.2= 28.8

И так далее...

По сути, скорость воспроизведение начинает меняться только через 1 раз (один шаг).
Это естественно - неправильно, т.е. баг.

Прямое действие - скорость воспроизведения увеличивается через 1 раз, т.е.:

1 раз - увеличить скорость

Фактически: 1.0х -> 1.0x
Ожидал: 1.0х -> 1.2х

2 раз - увеличить скорость

Фактически: 1.0х -> 1.2x
Ожидал: 1.2х -> 1.5х

3 раз - увеличить скорость

Фактически: 1.2х -> 1.5x
Ожидал: 1.5х -> 2.0х

4 раз - увеличить скорость

Фактически: 1.5х -> 2.0x
Ожидал: 2.0х -> 4.0х

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

1 раз - уменьшить скорость

Фактически: 4.0х -> 4.0x
Ожидал: 4.0х -> 2.0х

2 раз - уменьшить скорость

Фактически: 4.0х -> 2.0x
Ожидал: 2.0х -> 1.5х

3 раз - уменьшить скорость

Фактически: 2.0х -> 1.5x
Ожидал: 1.5х -> 1.2х

4 раз - уменьшить скорость

Фактически: 1.5х -> 1.2x
Ожидал: 1.2х -> 1.0х

И так далее...

Если увеличить скорость до максимума, т.е. до 4.0х, а потом нажать "Сбросить скорость", то скорость воспроизведения так и остается 4.0х, вместо 1.0х, как предполагалось и ожидалось.

Сбросить скорость:

Фактически: 4.0х -> 4.0x
Ожидал: 4.0х -> 1.0x
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Что значит "неправильное"?
Может ты хотел спросить почему неправильное?
Имхо, если и делать такие грубые хаки, то точно не в аудиодекодере. Надо откатывать.

Evgeniy1990

Цитата: V0ltМожет ты хотел спросить почему неправильное?
Да, я так и хотел спросить, просто меня удивил ваш ответ.
Цитата: V0ltИмхо, если и делать такие грубые хаки, то точно не в аудиодекодере. Надо откатывать.
Я уже написал в посте выше, что я собрал и проверил SVN-билд 1098, в нем по сравнению с 1092, вообще ничего не изменилось, как было так и осталось.

По сути, я согласен с вами, изменение не работает вообще, совершенно нет никакой разницы, при использовании DirectSound Audio Renderer.

В посте выше я расписал что у нас сейчас происходит, при использовании DirectSound Audio Renderer, а также, как правильно должно быть, т.е. то, что предполагается и то, чего ожидает пользователь.

То же самое и для скоростей воспроизведения ниже 1.0х:

1 раз - увеличить скорость

Фактически: 1.0х -> 1.0x
Ожидал: 1.0х -> 0.5х

2 раз - увеличить скорость

Фактически: 1.0х -> 0.5x
Ожидал: 0.5х -> 0.25х

3 раз - увеличить скорость

Фактически: 0.5х -> 0.25x
Ожидал: 0.25х -> 0.125х

И аналогично, обратное действие - с 0.125х до 1.0х.
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. Ибо достало такое отношение.

Почему то у меня стало работать
[merge_posts_bbcode]Добавлено: 2016-01-13 09:05:09[/merge_posts_bbcode]

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

P.S. Нашел причину изменения скорости "с запозданием" - буду думать как побороть :)
[merge_posts_bbcode]Добавлено: 2016-01-13 10:50:43[/merge_posts_bbcode]

Так - предлагаю тестовый билд https://yadi.sk/d/cs5F8N5VmrMkW
Так же просьба проверить его и на WinXP.
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

V0lt

Цитата: Aleksoid1978С чего это моё решение неправильное и неработающее??  Аргументы??
Неправильное потому что хак, если и работающий, то лишь в определенных случаях. Если такое есть в LAV, то это вовсе не значит, что его надо тащить в наш код.
Про неработающее Evgeniy1990 расписал.