better detection of private codec support

master
wsw0108 6 years ago
parent b629fecfc6
commit d411daada0
  1. 17
      eaf.el
  2. 5
      eaf.py

@ -188,6 +188,8 @@ been initialized."
(defvar eaf--first-start-arguments nil)
(defvar eaf--webengine-include-private-codec nil)
(defvar eaf-org-file-list '())
(defvar eaf-org-killed-file-list '())
@ -1247,7 +1249,14 @@ of `eaf--buffer-app-name' inside the EAF buffer."
(defun eaf--first-start ()
"Call `eaf--open-internal' after receive `start_finish' signal from server process."
(eaf--open-internal eaf--first-start-url eaf--first-start-app-name eaf--first-start-arguments))
(let* ((webengine-process-path (eaf-call "webengine_process_path"))
(webengine-include-private-codec (eaf--webengine-include-private-codec webengine-process-path)))
(setq eaf--webengine-include-private-codec webengine-include-private-codec)
(setq eaf--first-start-app-name (if (and (string-equal eaf--first-start-app-name "video-player")
webengine-include-private-codec)
"js-video-player"
eaf--first-start-app-name))
(eaf--open-internal eaf--first-start-url eaf--first-start-app-name eaf--first-start-arguments)))
(dbus-register-signal
:session "com.lazycat.eaf" "/com/lazycat/eaf"
@ -1609,11 +1618,11 @@ choose a search engine defined in `eaf-browser-search-engines'"
return app)))
(if (string-equal app-name "video-player")
;; Use Browser play video if QWebEngine include private codec.
(if (eaf--webengine-include-private-codec) "js-video-player" "video-player")
(if eaf--webengine-include-private-codec "js-video-player" "video-player")
app-name)))
(defun eaf--webengine-include-private-codec ()
(not (string-equal (shell-command-to-string "ldd /usr/lib/libQt5WebEngineCore.so | grep libavformat") "")))
(defun eaf--webengine-include-private-codec (path)
(not (string-equal (shell-command-to-string (concat "ldd " path " | grep libavformat")) "")))
;;;###autoload
(defun eaf-get-file-name-extension (file)

@ -24,6 +24,7 @@
# So we import browser module before start Qt application instance to avoid this error, but we never use this module.
from app.browser.buffer import AppBuffer as NeverUsed # noqa
from PyQt5.QtCore import QLibraryInfo
from PyQt5.QtNetwork import QNetworkProxy
from PyQt5.QtWidgets import QApplication
from core.view import View
@ -76,6 +77,10 @@ class EAF(dbus.service.Object):
proxy.setPort(int(proxy_port))
QNetworkProxy.setApplicationProxy(proxy)
@dbus.service.method(EAF_DBUS_NAME, in_signature="", out_signature="s")
def webengine_process_path(self):
return os.path.join(QLibraryInfo.location(QLibraryInfo.LibraryExecutablesPath), "QtWebEngineProcess")
@dbus.service.method(EAF_DBUS_NAME, in_signature="s", out_signature="")
def update_emacs_var_dict(self, var_dict_string):
for var_pair in var_dict_string.split(""):

Loading…
Cancel
Save