MPC-BE forum

MPC-BE => Баг Репорт / The bug report => Тема начата: Evgeniy1990 от 02 июня 2016, 00:24:32

Название: Воспроизведение пустых данных, после выхода из режима "Пауза"
Отправлено: Evgeniy1990 от 02 июня 2016, 00:24:32
Тема: Воспроизведение пустых данных, после выхода из режима "Пауза"

Краткое описание проблемы:

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

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

1. Скачать и запустить этот видео файл: https://yadi.sk/i/3Uhh1zCxsBvHM
2. Перемотать его почти в самый конец, при этом, необходимо приготовится поставить его на паузу на отметке времени: 00:24:10, где заканчиваются полные данные
3. Установить паузу на отметке времени: 00:24:10
4. Подождать 5 секунд
5. Возобновить процесс воспроизведения (нажать на кнопку "Воспроизведение", или на клавишу "Пробел")

Фактический результат: после выполнения данного алгоритма, будут воспроизводится пустые данные, входящие в интервал [00:24:11->00:24:38]. В конце воспроизведения плеер просто будет стоять в режиме "воспроизведения".
Ожидаемый результат: после выполнения данного алгоритма, воспроизведение должно было остановиться, перемотаться на начало, или же должен был просто выполниться переход на следующий файл в каталоге (папке), в зависимости от определенных соответствующих опций, установленных пользователем.

Небольшое пояснение:

Суть бага в том, что после возобновления воспроизведения, сам процесс воспроизведения продолжается в тот интервал, в котором находятся пустые данные вместо того, чтобы выполнить определенные действия в зависимости от определенных опций, установленных пользователем, например: "Перемотать на начало", "Перейти к след. в каталоге" и т.д.
Название: Воспроизведение пустых данных, после выхода из режима "Пауза"
Отправлено: Aleksoid1978 от 02 июня 2016, 02:13:27
Да - есть такое. И тут не все просто. Сравнить с LAV Source не получиться, т.к. он всегда выдает длительность по видео-данным - т.е. 00:24:10. Выставляем нужную опцию во встроенном сплиттере - и все будет ок.

Почему такое происходит - тут ограничение самого DirectShow. Как определяется окончание проигрывания - аудио/видео пин шлет сигнал об окончании данных - который служит признаком конца воспроизведения. В данном случае после 00:24:10 есть только субтитры - сигнала EOF просто не приходит, он от кого - т.к. аудио/видео пины даже не начали работу(не поступало ни одного пакета данных).
Название: Воспроизведение пустых данных, после выхода из режима "Пауза"
Отправлено: Evgeniy1990 от 02 июня 2016, 10:03:40
Цитата: Aleksoid1978Да - есть такое. И тут не все просто. Сравнить с LAV Source не получиться, т.к. он всегда выдает длительность по видео-данным - т.е. 00:24:10. Выставляем нужную опцию во встроенном сплиттере - и все будет ок.

Почему такое происходит - тут ограничение самого DirectShow. Как определяется окончание проигрывания - аудио/видео пин шлет сигнал об окончании данных - который служит признаком конца воспроизведения. В данном случае после 00:24:10 есть только субтитры - сигнала EOF просто не приходит, он от кого - т.к. аудио/видео пины даже не начали работу(не поступало ни одного пакета данных).
Спасибо вам за ответ - теперь мне понятно, что это ограничение самого DirectShow.

В общем, я запомнил, что для таких случаев лучше всего включать опцию "Рассчитывать длительность на основе видеоданных" в нашем встроенном "MPC Matroska Source/Splitter".

С "LAV Splitter Source" итак было уже понятно, что он всегда рассчитывает длительность из видео потока.
Название: Воспроизведение пустых данных, после выхода из режима "Пауза"
Отправлено: Aleksoid1978 от 02 июня 2016, 10:11:11
Но ... вот пробуем https://yadi.sk/d/aXKHNfZ_sCEH9
Название: Воспроизведение пустых данных, после выхода из режима "Пауза"
Отправлено: Evgeniy1990 от 06 июня 2016, 05:33:02
Цитата: Aleksoid1978Но ... вот пробуем https://yadi.sk/d/aXKHNfZ_sCEH9
Проверил тестовый билд.

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

После возобновления процесса воспроизведения, больше нет воспроизведения в пустой интервал времени, содержащий пустые данные.

Браво! Вам удалось полностью исправить эту проблему! :)
[merge_posts_bbcode]Добавлено: 2016-06-06 05:33:02[/merge_posts_bbcode]

Вы будете добавлять ваше исправление в SVN?
Название: Воспроизведение пустых данных, после выхода из режима "Пауза"
Отправлено: Aleksoid1978 от 06 июня 2016, 08:37:56
Нет не буду. Не хочу делать костыли - тем более что это бывает очень не часто. Может со временем что придумается нормальное - тогда да.
Название: Воспроизведение пустых данных, после выхода из режима "Пауза"
Отправлено: Evgeniy1990 от 06 июня 2016, 12:13:20
Цитата: Aleksoid1978Нет не буду. Не хочу делать костыли - тем более что это бывает очень не часто. Может со временем что придумается нормальное - тогда да.
Ясно, спасибо за ответ, я, кстати, также заметил, что далеко не на всех видео файлах, с пустыми данными, наблюдается данная проблема, когда воспроизведение, после снятия с паузы, продолжается в эти самые пустые данные.

Например, вот на этих видео файлах http://rutracker.org/forum/viewtopic.php?t=1106156 такой проблемы вообще не наблюдается, т.е. при выходе из режима "Пауза", сразу же происходит определенное действие в зависимости от настроек, установленных пользователем, например, "перемотка на начало", или же просто автоматический переход на следующую серию.

P.S. Очень удачный аниме-сериал в том плане, что в нем, практически в каждом видео файле, в каждой серии, присутствуют эти самые пустые данные. Т.е., например, одна серия имеет удвоенную общую длительность (продолжительность), например вместо 24 минут - 47 минут (например, серия 02) и т.д. Но также есть и случаи где имеется небольшой интервал с пустыми данными в самом конце воспроизведения (например, серия 03).

Все это говорит о том, что эти пустые данные, как правило, на практике, можно встретить именно в различных так называемых "DVDRip-ах".