LINUX.ORG.RU

История изменений

Исправление rukez, (текущая версия) :

Какие из?

Дефолтные GUI-тулкиты в Java, а речь идёт про AWT и Swing, к счастью не используют никакие иксовые или GTK+’шные кишки

«Тяжеловесные» это как раз все awt и пара из swing (типа jframe) которые как раз используют системные кишки для отрисовки себя.
«Легковесные» это те которые рисуются чисто программно (у свинга это почти все)

Vlcj (байндинги для libvlc) позволяет работать в трёх режимах:

  • натянуть аппаратный видеослой на «тяжеловесный» компонент без доп затрат - по сути то что может отрисовать libvlc на системном видео слое просто прибивается по х/у/ш/в к «тяжику» которого рисует «системная кишка» (вообще под линухом свинг вроде не прибит к гтк, но я особо не лазял, меня гтк устраивает)
  • взять из буфера libvlc итоговый кадр и нарисовать его на любом (по сути «легковесном» ибо на «тяжеловесном» рисовать проблемней) компоненте - это самое технически простое но самое медленное ибо надо целиком перекрашивать всю область вывода программно с темпом видео - для 30к/с соотв 30 раз в секунду
  • третий вариант аналогичен второму но вывод идёт через аппаратно ускоренный буфер - т.е. «легковесный» компонент рисуется на гпу. По скорости почти как вариант 1 и при этом гораздо гибче (можно изменять размер в мЕньшую сторону без проблем, вмешиваться в отрисовку) и стабильней (нет нужды следить чтоб видео слой не упал если вдруг он стал невидимым или произошёл какой-то рассинхрон) НО работает это только с Явой FX притом относительно свежих версий ибо работу с аппаратно ускоренными буферами туда вкинули недавно

Вообщем это довольно заковыристый костыль, надо будет глянуть вдруг заработает и тут :-)
А в кему лучше загонять 32 или 64 битную версию (хост арм64 так что один фиг эмулировать)?

Исходная версия rukez, :

Какие из?

Дефолтные GUI-тулкиты в Java, а речь идёт про AWT и Swing, к счастью не используют никакие иксовые или GTK+’шные кишки

«Тяжеловесные» это как раз все awt и пара из swing (типа jframe) которые как раз используют системные кишки для отрисовки себя.
«Легковесные» это те которые рисуются чисто программно (у свинга это почти все)

Vlcj (байндинги для libvlc) позволяет работать в трёх режимах:

  • натянуть аппаратный видеослой на «тяжеловесный» компонент без доп затрат - по сути то что может отрисовать libvlc на системном видео слое просто прибивается по х/у/ш/в к «тяжику» которого рисует «системная кишка» (вообще под линухом свинг вроде не прибит к гтк, но я особо не лазял, меня гтк устраивает)
  • взять из буфера libvlc итоговый кадр и нарисовать его на любом (по сути «легковесном» ибо на «тяжеловесном» рисовать проблемней) компоненте - это самое технически простое но самое медленное ибо надо целиком перекрашивать всю область вывода программно с темпом видео - для 30к/с соотв 30 раз в секунду
  • третий вариант аналогичен второму но вывод идёт через аппаратно ускоренный буфер - т.е. «легковесный» компонент рисуется на гпу. По скорости почти как вариант 1 и при этом гораздо гибче (можно изменять размер в мЕньшую сторону без проблем, вмешиваться в отрисовку) и стабильней (нет нужды следить чтоб видео слой не упал если вдруг он стал невидимым или произошёл какой-то рассинхрон) НО работает это только с Явой FX притом относительно свежих версий ибо работу с аппаратно ускоренными буферами туда вкинули недавно