Skip to content

Releases: vBACARAv/framesync

FrameSync 0.2.1

Choose a tag to compare

@vBACARAv vBACARAv released this 13 Jun 11:13

Что изменилось

Патч-релиз по результатам сценарного аудита и живого тестирования синхронизации.

Производительность синхронизации

  • Исправлена «растущая задержка»: при раздаче через .torrent хост повторно слал весь файл-источник в каждом обновлении состояния комнаты, забивая туннель — пинг рос с ~3 до ~7 с, а перемотки и команды применялись с задержкой. Теперь тяжёлый payload передаётся гостю один раз (при входе и смене медиа), рутинные обновления идут «налегке». Пинг и отклик на перемотку вернулись в норму.

Корректность синхронизации

  • Плавная коррекция скоростью (1.04 / 0.96) больше не «залипает» после жёсткой перемотки — гость не убегает вперёд.
  • Позиции участников считаются по часам хоста, поэтому расхождение системных часов на машинах гостей больше не ломает статусы и счётчик синхронности.

Жизненный цикл хоста

  • Хост может сменить фильм без пересоздания комнаты и нового invite-кода.
  • Переоткрытие плеера хостом возобновляет воспроизведение с последней позиции, а не сбрасывает всех на начало.
  • Закрытие плеера хостом ставит комнату на паузу на текущей позиции; повторное открытие продолжает с того же места.

Плеер и UX

  • Понятная подсказка гостю, когда туннель сменился и нужен новый код.
  • У хоста снимается «зависший» запрос паузы, если гость молча отключился.
  • Громкость в гостевой панели ограничена 0–130%.

Проверки

  • npm test
  • npm run build
  • npm run lint
  • npm run build:portable:zip
  • Живой тест хост+гость: старт, перемотки, паузы, длинное воспроизведение

Артефакты

  • FrameSync-0.2.1-portable-win-x64.zip
  • FrameSync-0.2.1-portable-win-x64.zip.sha256

FrameSync 0.2.0

Choose a tag to compare

@vBACARAv vBACARAv released this 13 Jun 01:11

Что изменилось

Крупное обновление синхронизации, плеера и стабильности комнат по результатам полного аудита.

Синхронизация

  • Гость открывает mpv сразу на позиции хоста — без чёрного экрана и догоняющих перемоток.
  • Перемотка хоста (в том числе по шкале в самом mpv) мгновенно применяется у всех гостей.
  • Новая логика коррекции рассинхрона: подтверждение двумя замерами, защита от дёргания (cooldown, пауза на время буферизации, стоп-кран при перегрузке), небольшое отставание 1–5 с убирается незаметным изменением скорости 1.04/0.96 без перемоток.
  • На паузе гости выравниваются на кадр хоста (±0.75 с).
  • «Синхронизировать всех» теперь подтягивает любого гостя с рассинхроном больше 5 с; «К хосту» учитывает сетевую задержку.
  • Гость больше не «застревает» после перезапуска приложения хоста.

Комната

  • При закрытии комнаты хостом гости сразу видят «Хост завершил комнату» вместо минут переподключений.
  • Keepalive-пинги: мёртвые соединения обрываются за 30 с, у каждого участника виден пинг.
  • Туннель при падении перезапускается автоматически (новый инвайт-код сразу в интерфейсе), у гостя появилась кнопка «Переподключиться к комнате».

Плеер

  • Современный рендер (vo=gpu) с аппаратным декодированием и автоматическим откатом на direct3d.
  • У гостя собственная панель управления: громкость с процентами, mute, фуллскрин, индикатор прогресса без возможности перемотки.
  • Меню по правой кнопке мыши: выбор аудиодорожки и субтитров списком (с пунктом «Выключены»).
  • Пауза у гостя превращается в запрос паузы хосту (кнопка панели и пробел).
  • Исправлен критический баг стриминга: чтение данных позади курсора больше не обрывает поток (раньше mpv гостя мог «улететь» в конец фильма). Плюс самовосстановление: если плеер всё же сломался, приложение само переоткрывает его на позиции хоста.

Интерфейс и диагностика

  • Честные статусы: «Плеер закрыт» у участника, счётчик «N/M синхронно» у хоста вместо вечно-зелёной надписи.
  • Расширенные логи: события комнаты (вход/выход/реконнект), минутные сводки позиций и дрейфа, информация о системе при старте, автоочистка логов старше 7 дней.

Проверки

  • npm test
  • npm run build
  • npm run lint
  • cargo test (libtorrent sidecar)
  • npm run prepare:libtorrent:native
  • npm run build:portable:zip
  • Живой тест хост+гость: старт, перемотки, паузы, длинное воспроизведение

Артефакты

  • FrameSync-0.2.0-portable-win-x64.zip
  • FrameSync-0.2.0-portable-win-x64.zip.sha256

FrameSync 0.1.6

Choose a tag to compare

@vBACARAv vBACARAv released this 12 Jun 13:56

Что изменилось

  • В настройках теперь отображается версия приложения.
  • Исправлено мигание статуса гостя между «готов к просмотру» и «не готов» во время долгой паузы.
  • Ручная кнопка «Открыть mpv» у гостя больше не блокируется, если поток уже доступен, но готовность торрента временно определяется спорно.
  • Улучшена обработка libtorrent: завершенный файл больше не считается готовым, если его нет на диске; при такой ситуации запускается перепроверка раздачи.
  • Уменьшена вероятность ложного статуса «синхронно», когда mpv фактически не смог открыть файл из-за проблемы с локальным кэшем.

Проверки

  • npm test
  • npm run build
  • npm run lint
  • npm run prepare:libtorrent:native
  • npm run build:portable:zip

Артефакты

  • FrameSync-0.1.6-portable-win-x64.zip
  • FrameSync-0.1.6-portable-win-x64.zip.sha256

FrameSync 0.1.5

Choose a tag to compare

@vBACARAv vBACARAv released this 08 Jun 11:52

Что изменилось

  • Улучшена синхронизация комнаты: состояние хоста используется как начальный снимок, а команды воспроизведения хоста управляют гостями без ложных повторных синхронизаций.
  • Добавлен старт просмотра через паузу: первый запуск открывает плеер на паузе, после чего обычное снятие с паузы запускает участников синхронно.
  • Улучшено позднее подключение гостей: новый участник получает позицию хоста, готовит локальный поток и может вручную открыть mpv на нужной позиции.
  • Добавлено переподключение гостя при обрыве соединения без остановки mpv и загрузки торрента.
  • Исправлена идентификация участников с одинаковым именем пользователя: статусы и запросы паузы теперь привязаны к идентификатору участника.
  • Улучшены статусы участников: активное воспроизведение больше не должно мигать как «не готов».
  • Добавлена кнопка добавления правил брандмауэра Windows для FrameSync, libtorrent и туннеля Cloudflare.
  • Улучшена диагностика падений libtorrent: код завершения Windows, человекочитаемая причина и хвост стандартного потока ошибок.
  • Исправлено имя пользователя по умолчанию: теперь используется User.

Проверки

  • npm test
  • npm run build
  • npm run lint
  • npm run build:portable:zip

Контрольная сумма

FrameSync-0.1.5-portable-win-x64.zip

1c6de7e79a98d5e9df83a4be4de9057111a6ef9a771fdcf6a93196df35035440

FrameSync 0.1.4

Choose a tag to compare

@vBACARAv vBACARAv released this 06 Jun 23:57

Что изменилось

  • Ускорена подготовка просмотра торрентов: начальный диапазон фильма получает более точные приоритеты и последовательные сроки загрузки ближайших частей.
  • Расширено срочное окно загрузки в libtorrent, чтобы непрерывный буфер у начала фильма набирался быстрее и не зависал на отдельных ранних пропусках.
  • Сохранен порядок планирования, при котором стартовые приоритеты применяются последними и не затираются фоновой загрузкой.
  • Добавлены тесты на порядок применения приоритетов и сроков загрузки.

Проверки

  • cargo test
  • npm test
  • npm run lint
  • npm run build
  • npm run build:portable:zip

FrameSync 0.1.3

Choose a tag to compare

@vBACARAv vBACARAv released this 21 May 00:58

Что изменилось

  • Проведен архитектурный рефакторинг без изменения стабильной ветки 0.1.2.
  • Выделены отдельные модули для обновлений, mpv, комнат, туннелей и начальной загрузки интерфейса.
  • Стабилизирован опрос состояния плеера и работа локальной torrent/mpv-точки у гостя.
  • Добавлена проверка релиза перед публикацией: статический анализ, тесты и сборка для публикации.
  • Ускорен резервный сценарий туннеля: localhost.run больше не задерживает создание комнаты слишком долго перед переходом на туннель Cloudflare.

Проверки

  • npm test
  • npm run lint
  • npm run build

FrameSync 0.1.2

Choose a tag to compare

@vBACARAv vBACARAv released this 20 May 18:00

Что изменилось

  • Сохранено стабильное поведение 0.1.1: после полной загрузки фильм продолжает отдаваться через локальную HTTP-точку без перезапуска mpv.
  • Добавлена упорядоченная синхронизация воспроизведения в комнате: номер события, эпоха медиа и ключ источника защищают гостей от устаревших команд.
  • Улучшено переподключение гостей: повторный вход с тем же стабильным идентификатором больше не создает дубль участника.
  • Поведение гостей отделено от состояния полной загрузки у хоста: переход хоста к полностью скачанному файлу не должен перезапускать плееры гостей.
  • Часть логики вынесена из крупных модулей в отдельные контроллеры, хуки и общие контракты.

Проверки

  • npm test
  • npm run lint
  • npm run build

FrameSync 0.1.1

Choose a tag to compare

@vBACARAv vBACARAv released this 18 May 23:01

Что изменилось

  • Добавлен стартовый экран с выбором роли: хост или гость.
  • Разделен интерфейс для хоста и гостя: каждая роль видит только нужные действия.
  • Добавлен мягкий звуковой сигнал, когда фильм готов к запуску после начальной буферизации.
  • Улучшена понятность базового сценария подключения к комнате.

Проверки

  • npm test
  • npm run build

FrameSync 0.1.0

Choose a tag to compare

@vBACARAv vBACARAv released this 18 May 21:40

Что изменилось

  • Первый публичный релиз FrameSync для Windows.
  • Добавлена переносимая сборка приложения.
  • Доступны базовые сценарии совместного просмотра: создание комнаты, подключение гостя и запуск локального плеера.

Примечание

Это ранняя тестовая версия. Следующие релизы улучшают стабильность синхронизации, загрузку торрентов и диагностику.