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)

Ответ на: комментарий от post-factum

9.2.5

А, ну да. Проблемный коммит был в августе 2014-го. Я просто надеялся, что починили в какой-то из свежих версий.

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

а как оно совместимо с пульсой?

Как повезёт. Вместе с PulseAudio обычно ставится плагин для ALSA, который заворачивает все ALSA потоки в PulseAudio. В большинстве случаев работает, но у некоторых данные проваливаются в этот плагин, как в чёрную дыру.

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

любой сериал на seasonvar.ru

Проверил двумя версиями от 7 сентября и от 26 ноября - все работает, контролы не исчезают при развороте видео. Но сам плеер у них какой-то тормознутый: стоит провести мышкой над контролами - видео замирает на секунду.

Gonzo ★★★★★
()

Единственное что - флеш перестал реагировать на колесико мыши. На многих плеерах на сайтах с фильмами это регулировка громкости при развернутом видео. Например, тут: ex.ua. Не знаю, пустит ли вас туда, дело в том, что он вроде как только для UA-зоны.

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

флеш перестал реагировать на колесико мыши

Да, это известный баг (#72). Firefox не передаёт события колёсика мыши windowless плагину, надо добавлять поддержку windowed режима.

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

Есть вариант, что из-за DE. Так, как это у меня было на нескольких компах. Там не контролы изчезают, а просто сдвигалось вниз. Т.е. сверху полоска образовывалась.

BeerSeller ★★★★
()
Последнее исправление: BeerSeller (всего исправлений: 1)

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

i-rinat ★★★★★
() автор топика
Ответ на: комментарий от i-rinat
*[master][~/local/freshplayerplugin/build]$ cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo ..
-- checking for module 'libpulse>=5.0'
--   package 'libpulse>=5.0' not found

Это намеренно? На седьмой центоси (самая свежая центось) не соберётся из-за того, что:

Name        : pulseaudio-libs-devel
Arch        : x86_64
Version     : 3.0
Release     : 22.el7
post-factum ★★★★★
()
Ответ на: комментарий от post-factum

Советую понизить требования в CMakeLists.txt

Лютобешено плюсую, кстати. Мой Деб предыдущий (который Squeeze) уже не собирает такое, а хотелось бы тоже ибо нет желания на работе обновляться (свои нюансы). К чему такая спешка?

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

Мой Деб предыдущий (который Squeeze

Что-то я не осилил собрать на squeeze, там всё слишком старое, а libevent ещё даже не второй, что совсем плохо. Зато на wheezy собралось и c libpulse 2.0.

К чему такая спешка?

Недавно какие-то проблемы были с заголовками от 4.0, вот и вставил версию по памяти.

В общем, убрал указание версии совсем.

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

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

/usr/bin/ld: cannot find -lEGL
/usr/bin/ld: cannot find -lGLESv2
Хотя devel пакеты стоят. Пока симлинки не создашь. Не в курсе, как это пофиксить без их создания?

fedora 21

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

Не в курсе, как это пофиксить без их создания?

Нет, не в курсе. Ожидается, что будет libEGL.so, который будет указывать на конкретную версию. Странно, что обновление удаляет эти симлинки, это какое-то нездоровое поведение.

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

Да, с libevent таки засада. Жаль конечно, но фиг с ним. Спасибо все равно.

Gonzo ★★★★★
()

Добавил реализацию ppb_flash_update_activity(). Эту функцию PepperFlash вызывает, чтобы подавить запуск хранителя экрана. Пока что реализована поддержка XScreenSaver.

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

Спасибо. А что с тем багом, что ФФ не передает события колесика мыши? Может стоит запостить им багрепорт? Я могу, если что.

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

Уже есть такой баг, 1057972, со статусом WONTFIX. Есть и более старый, 359403, там тоже всё глухо.

Смысла создавать ещё один нет. Я просто добавлю логику для работы с windowed режимом, благо по сути он похож на полноэкранный, только окно уже выдают готовое.

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

Понятно. Печально у мозиллы, смотрю. Помню тему с моим багрепортом про автоматическую чистку истории и кеша по закрытию браузера (фф зависал в процессах, снимался только прибиванием). Долгоиграющий баг, начался с 30-й версии, до сих пор то всплывает то исчезает. Репорт то закрывали то открывали, то в новый переименовывали. В итоге так и похерили, что-то вроде пофиксили, но проблема не исчезла полностью.

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

Пока что реализована поддержка XScreenSaver.

Добавил подавление через dbus API для gnome-, kde- и freedesktop.org скринсейверов. Вызывается метод SimulateUserActivity().

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

О, кстати, ты знаешь, почему Smplayer не блокирует скринсейвер xscrensaver в XFCE, даже если стоит настройка Не давать скринсейверу запускаться? Возможно, там нужны похожие правки в исходном коде, такие же как для Fresh плеера? Можешь коммит в код smplayer отправить?

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

даже если стоит настройка Не давать скринсейверу запускаться?

Эта галка передаётся MPlayer'у, который и должен её обрабатывать. Беда в том, что никакой скринсейвер это API не поддерживает, в XScreenSaver оно отключено в исходниках с пометкой о нестабильности.

В MPlayer принятно опцию "-heartbeat-cmd" использовать, например, так: -heartbeat-cmd "gnome-screensaver-command -d &".

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

вроде как должна быть несовместимость из-за новых возможностей в 13-ой версии, но пока найти живой пример трудно.

Например, некоторые игры на одноклассниках уже требуют нового флеша.

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

Зайди в одноклассники и попробуй на старом флеше поиграть в «Битву за трон», например. Что, белый экран вместо игры? Вот то-то и оно!

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

Зачем? Как раз ставлю flashplayer... Если та игра не пойдёт, тогда да, придётся ставить Chromium, хотя эта зараз до невозможности долго собирается.

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

Так они потом всё равно увидят: одноклассники покажут.

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

племянник придёт

Дядя, пожалейте ребенка. :)
Накупите в Стиме подобной хренотени за копейки.
А вообще, Fresh-ем пользуюсь уже давно, ибо нативный заколупал падать, что с vdpau/vdpau-vaapi-gl, что без них.

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

Плюсану. Но срач неизбежен, кстати ) это в крови.

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

libfreshwrapper.so does not exist

Это потому что вместо него собирается libfreshwrapper-pepperflash.so. Видимо, ebuild немного устарел.

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

Что именно значит «не играет видео»? Это может означать, что звук воспроизводится, например. Или что флешка сама работает, но стопорится, когда нажимаешь play. Или вместо флешки чёрный или белый прямоугольник, или вообще ничего, остаётся старое изображение, ничего нового не рисуется. Куча вариантов.

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

Никогда с таким не встречался. По виду на youtube интерфейс плеера как-то рисуется, но это может быть и обычный HTML.

Глянь, plugin-container действительно подгружает плагин? Смотреть можно в /proc/*/maps.

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

Но в /proc очень много папок, и я не знаю, в какую смотреть...
На Youtube интерфейс плеера действительно подгружается на короткое время, видимо, за счёт html, потом пропадает. Так же и с отключенным плагином.

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

Но в /proc очень много папок, и я не знаю, в какую смотреть

/proc/`pidof plugin-container`/maps

Нужно смотреть на maps процесса plugin-container. Именно он подгружает сам плагин, а с браузером они через IPC общаются.

Возможно, плагин падает при старте (об этом есть issue), но у меня не воспроизводится, так что в чём там дело я пока не знаю.

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

Самое странное, что процесс plugin-container вообще не создаётся... Видимо, что-то случилось у меня с браузером?
Firefox 34.0.5

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

Процесс не создаётся, когда в системе присутствует установленный freshplayerplugin. Видимо, он действительно падает...

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