LINUX.ORG.RU

FreshPlayerPlugin — PepperFlash в Firefox

 , , , , ppapi


55

41

Flash плеер всё заменяют и заменяют, но никак не заменят полностью. Новые и сверхновые фичи браузеров это замечательно, но Flash бывает всё ещё нужен. К сожалению, доступная NPAPI браузерам версия застыла на 11.2, а новые версии выходят только в составе Chrome. Поэтому я делаю адаптер, который сможет быть посредником между PPAPI плагином и NPAPI браузером. Это такая штука, которая позволит использовать свежий Flash в Firefox, Opera и других браузерах, в которых работают плагины.

https://github.com/i-rinat/freshplayerplugin

★★★★★

Последнее исправление: i-rinat (всего исправлений: 6)

Ответ на: комментарий от Novell-ch

Решил я для начала в виртуалке проверить. Поставил, обновил, воспроизвелось. Но оказалось, что в виртуалке у меня не работают es2tri и es2gears_x11, они просто падают с BadMatch. Это тестовые программы из mesa-demos (ссылка).

Можешь у себя проверить, работают ли они?

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

меса демос у меня собраные в репе лежать

pont@bb:/usr/lib64/mesa/bin/egl/opengles2> /usr/lib64/mesa/bin/egl/opengles2/es2tri 
EGL_VERSION = 1.4 (Gallium)
EGL_VENDOR = Mesa Project
EGL_EXTENSIONS = EGL_WL_bind_wayland_display EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_image EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_surfaceless_context EGL_NOK_swap_region EGL_NV_post_sub_buffer 
EGL_CLIENT_APIS = OpenGL OpenGL_ES OpenGL_ES2 OpenVG 
Uniform modelviewProjection at 0
Attrib pos at 0
Attrib color at 1
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
      after 33 requests (32 known processed) with 0 events remaining.
pont@bb:/usr/lib64/mesa/bin/egl/opengles2> /usr/lib64/mesa/bin/egl/opengles2/es2gears_x11 
EGL_VERSION = 1.4 (Gallium)
vertex shader info: 
fragment shader info: 
info: 
25518 frames in 5.0 seconds = 5103.600 FPS
24985 frames in 5.0 seconds = 4996.001 FPS
XIO:  fatal IO error 62 (Timer expired) on X server ":0"
      after 168152 requests (168152 known processed) with 0 events remaining.
pont@bb:/usr/lib64/mesa/bin/egl/opengles2> DRI_PRIME=1 /usr/lib64/mesa/bin/egl/opengles2/es2gears_x11 
EGL_VERSION = 1.4 (Gallium)
vertex shader info: 
fragment shader info: 
info: 
13583 frames in 5.0 seconds = 2716.600 FPS
12427 frames in 5.0 seconds = 2484.903 FPS
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
      after 82727 requests (82727 known processed) with 0 events remaining.

смущает почему на интеле пишет галлиум, perf показывает что использутся ilo драйвер, как заставит не галлиум использовать не ясно

Novell-ch ★★★★★
()
Ответ на: комментарий от Novell-ch

короче вот так все работает нагурзка на проц намого меньше чем без 3д,

EGL_DRIVER=egl_dri2 EGL_LOG_LEVEL=debug firefox 

libEGL debug: Native platform type: x11 (autodetected)
libEGL debug: EGL search path is /usr/lib64/egl
libEGL debug: added egl_dri2 to module array
libEGL debug: DRI2: dlopen(/usr/lib64/dri/i965_dri.so)
libEGL debug: DRI2: found extension `DRI_Core'
libEGL info: DRI2: found extension DRI_Core version 1
libEGL debug: DRI2: found extension `DRI_IMAGE_DRIVER'
libEGL debug: DRI2: found extension `DRI_DRI2'
libEGL info: DRI2: found extension DRI_DRI2 version 4
libEGL debug: DRI2: found extension `DRI_DriverVtable'
libEGL debug: DRI2: found extension `DRI_ConfigOptions'
ATTENTION: default value of option vblank_mode overridden by environment.
ATTENTION: default value of option vblank_mode overridden by environment.
libEGL debug: DRI2: found extension `DRI_TexBuffer'
libEGL info: DRI2: found extension DRI_TexBuffer version 3
libEGL debug: DRI2: found extension `DRI2_Flush'
libEGL info: DRI2: found extension DRI2_Flush version 4
libEGL debug: DRI2: found extension `DRI_IMAGE'
libEGL info: DRI2: found extension DRI_IMAGE version 8
libEGL debug: DRI2: found extension `DRI_RENDERER_QUERY'
libEGL debug: DRI2: found extension `DRI_CONFIG_QUERY'
libEGL debug: DRI2: found extension `DRI_Robustness'
libEGL debug: the best driver is DRI2
[fresh  5632] not implemented: PPB_OpenGLES2DrawBuffers(Dev);1.0

Novell-ch ★★★★★
()

К сожалению, доступная NPAPI браузерам версия застыла на 11.2

А есть ли что-то, ради чего нужны более новые версии, чем 11.2?

Сам флеш ведь уже почти не развивается, или я ошибаюсь?

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

А есть ли что-то, ради чего нужны более новые версии, чем 11.2?

Без понятия. Но новых фич или инфраструктурных изменений в 11.2 уже не будет, только исправления безопасности. А это значит, что проблема с встроенными без wmode=direct роликами останется нерешённой. Flash 11.2 не использует VDPAU, если ему не дать окно для рисования, поэтому в Pixmap'ы он рисует без использования возможностей GPU по композитингу и масштабированию.

В этом проекте я большей частью управляю рисованием, и в некоторых случаях уже видел значительное сокращение нагрузки на CPU. Плюс уже работает, правда не у всех, OpenGL|ES2. Вот эта демка не тормозит, тогда как на 11.2 она рисуется только на CPU, отжирая 300-500%.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от Novell-ch

короче вот так все работает нагурзка на проц намого меньше чем без 3д,

Не пойму, мне в коде надо что-то ещё EGL'у сообщать, чтобы реализация правильный драйвер выбирала? Или это глюк в новых версиях Mesa? Короче, кто виноват?

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

http://www.mesa3d.org/egl.html
Generally, egl_dri2 is preferred over egl_gallium when the system already has DRI drivers. As egl_gallium is loaded before egl_dri2 when both are available, egl_gallium is disabled by default.

не особо в курасх что они там поменяли, но сейчас походу галлиимные в приоритете, может не собирий я с ilo такого бы не было.

Novell-ch ★★★★★
()

Поставил.

В игорях немного моргает (интель, ускорение включено).

Один раз зависло на ютубе.

В полноэкранном режиме не переключается на передний план автоматически.

derlafff ★★★★★
()
Последнее исправление: derlafff (всего исправлений: 1)
Ответ на: комментарий от derlafff

В полноэкранном режиме не переключается на передний план автоматически.

Какое DE? Я ничего не делаю с окном кроме как установки хинта о том, что оно полноэкранное. Предполагается, что window manager это заметит и сам его развернёт.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

KF Plasma 5

Оно развернутое, но появляется за FF и панелькой почему-то.

Еще оно в панельке появляется, с обычным флешем этого нет. Правда, и плохого тут тоже нет.

derlafff ★★★★★
()
Последнее исправление: derlafff (всего исправлений: 2)
Ответ на: комментарий от derlafff

Оно развернутое, но появляется за FF и панелькой почему-то.

Очень странно. Что-то не радует меня генту компилировать, чтобы проверить. Может есть какие-то дистрибутивы, где эту KF Plasma 5 можно из бинарников поставить?

Еще оно в панельке появляется

Ну это я просто не осилил сделать так, как делает флеш. Поэтому оно у меня обычным окном сделано, с заголовком. И от Alt-Tab'а не закрывается, только от Esc. Даже не знаю, убирать эту псевдофичу, или допилить до логического завершения.

i-rinat ★★★★★
() автор топика

[fresh 9279] not implemented: PPB_OpenGLES2DrawBuffers(Dev);1.0
[fresh 9279] not implemented: PPB_KeyboardInputEvent;1.2

Так и должно быть? версия плагина 0.2 с тега.

vitalikp
()
Последнее исправление: vitalikp (всего исправлений: 1)
Ответ на: комментарий от vitalikp

Так и должно быть?

Ничего страшного нет, это не обязательные интерфейсы.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Вот ради интереса проверил на 11.2.202.400 и 15.0.0.114. Несколько роликов воспроизвелось, все не пробовал.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

Попробовал в FF — не работает.

У меня тут еще cisco netacad заявило, что у меня нету флеша и нужен какой-нибудь версии 8 или выше.

derlafff ★★★★★
()
Ответ на: комментарий от derlafff

Попробовал в FF

А если удалить файл pluginreg.dat из профиля Firefox'а? Я подозреваю, что Firefox закешировал состояние и не проверяет плагины при старте, считая, что флеша у него нет.

i-rinat ★★★★★
() автор топика

Для пользователей openSUSE версия 0.2 доступна в репозитории packman, и chromium-pepper-flash теперь не требует, а рекомендует установку chromium, т.е. зависимость мягкая.

dinn ★★★★★
()

Огромное спасибо Вам за Ваш проект! К сожалению, как я могу наблюдать, PPAPI-версия Flash плеера (доступная через Ваш проект) по прежнему кушает станднартные хоткеи Firefox, когда фокус попадает внутрь Flash (например после клика мышью по видео).

Мое расширение, частично решающее эту проблему, https://addons.mozilla.org/En-us/firefox/addon/focus-regainer/ подменяет значения параметра wmode на читерские:

на opaque если оно не было transparent,

на transparent если оно не было opaque.

Обычное значение wmode - это window .

При значениях opaque либо transparent обработчик событий клавиатуры, который я вешаю на embed либо object начинает неожиданно срабатывать на эти самые нажатия клавиш даже когда фокус находится внутри Flash. Далее я генерирую аналогичное событие (мы работаем с javascript в режиме уровня доступа расширения firefox) и направлю его например родительскому элементу этого embed/object. Код плагина пришлось сделать довольно хитрым (половина идеи была навеяна кодом плагина Flashblock) из-за этих самых ограничений уровня доступа и он может несколько перегружать процессор.

К сожалению о моем расширении Focus Regainer знает очень мало людей (из тех, кого бы устроило излишнее потребление ресурсов процессора). Но вот что я хочу сказать: я Вам жутко благодарен, потому что я попробовал Ваш FreshPlayerPlugin и он оказался полностью совместим с моим расширением! Теперь я могу спокойно пользоваться новыми версиями Flash плеера даже в Firefox под линуксами.

Кстати ранее я пробовал другой проект: Pipelight, который позволяет запускать плагины, скомпилированные под Windows из-под Linux с использованием специфически патченной версии wine. Так вот с тем Pipelight мое расширение несовместимо, да и багов из-за использования Pipelight возникает немеренно.

mvitamin
()

Заметил странную штуку на vimeo.com: открываешь страницу с видео (например, эту: http://vimeo.com/64018652) - есть элементы управления (громкость, и т.д.), стоит убрать мышку с видео либо прокрутить страницу, чтобы видео «уехало» за пределы экрана - элементы управления пропадают. Наведение мыши на видео их больше не возвращает. У меня одного такое?

Gonzo ★★★★★
()
Последнее исправление: Gonzo (всего исправлений: 1)
Ответ на: комментарий от Gonzo

У меня элементы управления пропадают, но если навести указатель мыши обратно на видео, появляются.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

Вот засада ) У меня появляются если только клацнуть на видос и тогда срабатывает пауза. При обычном наведении элементов нет.

Gonzo ★★★★★
()
Ответ на: комментарий от Gonzo

у меня аналогично, это нормальное поведение для vimeo
т.е. не баг, а фича :)

reprimand ★★★★★
()
Ответ на: комментарий от reprimand

ФФ 24.7.0. А это норм фича - «появляются если только клацнуть на видос и тогда срабатывает пауза. При обычном наведении элементов нет» ? :)

Gonzo ★★★★★
()
Ответ на: комментарий от Gonzo

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

reprimand ★★★★★
()
Ответ на: комментарий от Gonzo

ФФ 24.7.0

О. А я проверяю на Iceweasel 32.0. Может в этом дело.

i-rinat ★★★★★
() автор топика

Это предыдущий ESR. Обновил до последнего 24.8.0. Все равно такая же ерунда. Не знаю, в чем причина. Сейчас попробую последнюю ESR 31.

Gonzo ★★★★★
()
Ответ на: комментарий от Gonzo

В 31-й версии ФФ все нормально.
В 24-й проблема. Попробовал удалить профиль, все равно.

Вопрос снят, вероятно, это косяк фуррифокса.

Gonzo ★★★★★
()
Ответ на: комментарий от Darth_Revan

Да не вопрос. Будем ждать, вдруг кто форкнет.

Gonzo ★★★★★
()
Ответ на: комментарий от Darth_Revan

Даже ждать не будем, у меня заработал звук, разобрался.

Gonzo ★★★★★
()

А поддержка камеры/микрофона есть в планах? Ну и filechooser.

Из багов 11.2 (firefox) почему-то не работает видеозвонок в mail.ru (мама пользуется).

BeerSeller ★★★★
()
Ответ на: комментарий от BeerSeller

А поддержка камеры/микрофона есть в планах? Ну и filechooser.

Да, в планах есть. В багтрекете есть соответствующие записи: #18 и #38.

почему-то не работает видеозвонок в mail.ru

На mail.ru можно звонить с сайта? Или их приложение как-то флешплеер использует?

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от BeerSeller

Мама использует его для связи. Использует хром. Там полёт нормальный. В FF - баг (вылетает, искревление звука и.т.д.).

BeerSeller ★★★★
()
22 октября 2014 г.
Ответ на: комментарий от vitalikp

А что было сделано в этой версии можно в двух словах?

  • Доделал прозрачность в 3d, починил смещённую отрисовку прозрачности в 2d;
  • добавил менее строгий парсер uri, так как uriparser ругался на пробелы в строке query и на %uXXXX, как на нестандартные;
  • починил баг с загадочными падениями — некоторые callback'и вызывались слишком рано.
i-rinat ★★★★★
() автор топика

Реализовал часть интерфейса PPB_Flash_DRM; хватает для работы drmtest2 от Adobe и для stream.1tv.ru/live.

Чтобы заработало, нужен libpepflashplayer.so из ChromeOS. C версией из десктопного Chrome'а не работает.

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от Tactile

А в Debian libpepflashplayer.so из ChromeOS заведётся?

Я проверял в Debian testing, тут работает. У меня версия из довольно старого образа, 14.0.0.177. Новые образы не качал ещё.

i-rinat ★★★★★
() автор топика

Заметил.

1. При появлении контекстного меню, пропадает выделение текста. соответственно скопировать через команду меню не выходит.

2. http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_...

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

vitalikp
()
Ответ на: комментарий от vitalikp

версия флеша libpepflashplayer.so.15.0.0.189 версия плагина v0.2.1

vitalikp
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.