Пропадание субтитров после применения изменений на лету

Автор Evgeniy1990, 13 мая 2016, 23:23:01

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

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

Evgeniy1990

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

Условия:

1. Видео файл с внешними ASS-субтитрами
2. Наличие активной опции "Автоматическое переоткрытие файлов с субтитрами в случае изменения"

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

1. Открыть видео файл с внешними ASS-субтитрами
2. Открыть субтитры в любом редакторе субтитров, например в "AegiSub".
3. Сделать любое в них изменение, например, сдвинуть тайминг на определенное время
4. Применить сделанное изменение в редакторе субтитров

Фактический результат: субтитры просто перестанут отображаться (отрисовываться)
Ожидаемый результат: субтитры должны и обязаны продолжать отображаться, после применения изменений "на лету".

Баг является плавающим, но его несложно воспроизвести, через 2 -3 раза вполне воспроизводится на новых системах.

Прилагаю видеозапись: https://yadi.sk/i/w_kpkfiorh6dg

Просьба, пожалуйста посмотрите ее. На ней я показал сам баг, т.е. я сдвинул тайминг на 15 секунд вперед, или же назад, без разницы в какую сторону, в результате чего, у меня перестали вообще напрочь отображаться сами субтитры. Я пробовал перемотать вперед/назад - не помогло. Единственное, что помогает - это перезапуск самого видео файла вместе с его внешними субтитрами.
[merge_posts_bbcode]Добавлено: 2016-05-13 23:23:01[/merge_posts_bbcode]

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

Проверил у себя. Редактировал, в фаре, внешние субтитры раз 15(менял время отображения, менял содержимое). Все применяется. Не спорю что конечно баг присутствует - но у себя не смог отловить. После сохранения файла - изменения применялись.
[merge_posts_bbcode]Добавлено: 2016-05-14 11:43:17[/merge_posts_bbcode]

Может вот что попробуй - собери Debug билд и погоняй на нем, не будет ли каких то 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Проверил у себя. Редактировал, в фаре, внешние субтитры раз 15(менял время отображения, менял содержимое). Все применяется. Не спорю что конечно баг присутствует - но у себя не смог отловить. После сохранения файла - изменения применялись.

Попробуйте пожалуйста воспроизвести у себя баг на моем примере: https://yadi.sk/d/oKQbWDBorhS4j по этому алгоритму:

1. Скачать этот видео файл вместе с внешними ASS-субтитрами
2. Открыть его и перейти на главу "Opening"
2. Открыть субтитры в редакторе субтитров
4. Найти в них первую строчку, которая идет сразу же после опенинга - это слово "Свадьба?"
3. Пока идет (воспроизводится) опенинг, выполнить сдвиг тайминга субтитров на 15 секунд вперед, или же назад, начиная с этой строчки "Свадьба?" и далее до самого конца, после чего примените сделанное изменение и обратите внимание на само видео. Проверьте, будут ли у вас отображаться (отрисовываться) субтитры?

И так несколько раз попробуйте. По идее, после нескольких раз, у вас должен будет воспроизвестись баг.

Я же пока соберу Debug-билд и проверю его на наличие ASSERT-а, как вы и просили.
[merge_posts_bbcode]Добавлено: 2016-05-14 07:56:15[/merge_posts_bbcode]

Aleksoid1978:

Собрал и проверил отладочный SVN-билд r1507. Воспроизвел у себя баг с третьего раза, при этом никакого ASSERT-а не было и даже не вылетало. Просто субтитры взяли и исчезли, перестали отображаться и отрисовываться, образно говоря, - стали словно "невидимыми".

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

Вот ссылка на новую видеозапись: https://yadi.sk/i/2Bodu042rhSnu

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

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

Ну ладно,  запишу в свой todo лист, может будет время заняться.
[merge_posts_bbcode]Добавлено: 2016-05-14 23:58:39[/merge_posts_bbcode]

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

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

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

Вот ссылка: http://www.aegisub.org/downloads/ Можете даже скачать портативную версию.

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

Leo

Вот кстати буквально вчера было - просто открые в aegisub субтитры (не изменялись) и через какое-то время они перестали отображаться в плеере. Не уверен, но вроде перематывал видео стрелками (пропали точно НЕ во время перемотки). Сразу даже подумал на то, что тайминги сбиты и попробовал жать F1/F2, ничего не появилось. После рестарта по ctrl+e сабы появились.

Evgeniy1990

Leo

Тут необходимы внимательные наблюдения.

Вот какие обязательные условия по своим наблюдениям я отметил:

1. Непрерывное воспроизведение
2. Ни разу не редактируемые субтитры
3. Субтитры надо открывать, при условии что окно плеера при этом не свернуто

А теперь если все это применить, то могу воспроизвести баг с первого раза.

Вот новая видеозапись: https://yadi.sk/i/aRmLOqk4ri39v Вуаля. :)
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

Я конечно проверю с редактором, но вы проверьте без него, откройте сабы в том же блокноте(хотя бы) и в нем поменяйте/сохраните. Я проверял в Far/NotePad++ - и все нормально, по крайней мере у меня на компе. Возможно проблема именно с редактором сабов, возможно работает какая-то отложенная запись(кэширование записи в системе) и просто не дается проигрывателю пере-открыть субтитры.
[merge_posts_bbcode]Добавлено: 2016-05-15 11:47:10[/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Проверил с редактором субтитров - тоже никаких проблем.
Тогда пойдем по другому пути, используя условие, что субтитры еще ни разу не редактировались, т.е. они были просто извлечены из архива и переименованы под имя самого видео файла, т.е. стали одноименными.

Вот ссылки на видео файл: https://yadi.sk/i/s9tTKf4qrjZKP и субтитры к нему: https://yadi.sk/d/d9GnmNIjrjZ6Q которые только что были извлечены из архива и переименованы под имя видео файла.

Воспроизводить баг будете по этому алгоритму, причем строго по пунктам:

1. Скачать видео файл вместе с субтитрами к нему и положить их рядом друг с другом в одну папку
2. Запустить видео файл
3. Сразу же, после запуска видео файла, открыть субтитры в редакторе субтитров "AegiSub", при этом, окно с самим видео можно свернуть
4. Во время воспроизведения видео файла в редакторе субтитров, в самих субтитрах, сразу же после опенинга, найти строчку с текстом: "Кровий! Кровий, где вы?", кликнуть по ней ЛКМ и выполнить команйду "Тайминг" -> "Сдвиг по времени.."
5. Указывайте время 00:00:15:00, т.е. на 15 секунд, затем выбираете "Вперед", после - "Выбранные и далее", затем - "Начальное и конечное время".
6. После этого, применяете эти изменения, сохраняете их, нажав на значок "дискеты" и сразу же закрываете редактор субтитров, после чего разворачивайте окно плеера с видео файлов.

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

P.S. Дело в том, что тут также важна "массовость" изменений, т.е. несколько изменений разом, например сдвиг времени сразу же в нескольких строчках одним разом, поскольку этот критерий может также увеличить шанс на получение бага.

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

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

Я сам пытался так делать через Notepad++, но баг не поймал даже с 10 раза, при этом в самом редакторе субтитров "AegiSub", я могу его поймать даже с первого раза.

Вывод соответствующий - наличие редактора субтитров, непрерывное воспроизведение, "массовость" изменений разом.

Я даже утром попробовал воспроизвести баг на 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.

Aleksoid1978

Возможно тут виновата кешированная запись в винде. Поясню - проигрыватель отлавливает сообщение об изменении файла, сравнивает время последней записи. Если изменилось - вызывает Reload() субтитров. А вот если там чтение не получилось - то тогда все. И тут я ну ни чем не могу помочь. Дело 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