emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/emms 7a1aacba40 3/4: Merge branch 'master' of git.sv.gn


From: ELPA Syncer
Subject: [elpa] externals/emms 7a1aacba40 3/4: Merge branch 'master' of git.sv.gnu.org:/srv/git/emms
Date: Mon, 21 Feb 2022 09:57:36 -0500 (EST)

branch: externals/emms
commit 7a1aacba407b0de52c7aed5a55ed4291fbe95a3a
Merge: e1b2220cea d32a9bbc8f
Author: Yoni Rabkin <yoni@rabkins.net>
Commit: Yoni Rabkin <yoni@rabkins.net>

    Merge branch 'master' of git.sv.gnu.org:/srv/git/emms
---
 emms-player-mpv.el | 35 ++++++++++++++++++++++++-----------
 1 file changed, 24 insertions(+), 11 deletions(-)

diff --git a/emms-player-mpv.el b/emms-player-mpv.el
index b2bb8c13e7..348dbf9d65 100644
--- a/emms-player-mpv.el
+++ b/emms-player-mpv.el
@@ -113,12 +113,13 @@ Possible symbols: detect, ipc-server, unix-socket, file.
 Defaults to nil value, which will cause `emms-player-mpv-ipc-detect'
 to pick one based on mpv --version output.
 Using JSON-IPC variants (ipc-server and unix-socket) enables
-support for various feedback and metadata options from mpv."
+support for various feedback and metadata options from mpv.
+Use of 'file value here is deprecated and will be removed in the future."
   :type '(choice
           (const :tag "Auto-detect from mpv --version" nil)
           (const :tag "Use --input-ipc-server JSON IPC (v0.17.0 2016-04-11)" 
ipc-server)
           (const :tag "Use --input-unix-socket JSON IPC (v0.7.0 2014-10-16)" 
unix-socket)
-          (const :tag "Use --input-file FIFO (any mpv version)" file)))
+          (const :tag "Use --input-file FIFO (removed in v0.33.0 2020-11-22)" 
file)))
 
 (defcustom emms-player-mpv-ipc-socket
   (concat (file-name-as-directory emms-directory)
@@ -177,6 +178,14 @@ example.  Uses `emms-player-mpv-event-connect-hook' and
                              #'emms-player-mpv-info-meta-event-func))))
                       value)))
 
+(defcustom emms-player-mpv-use-playlist-option nil
+       "Use --playlist option and loadlist mpv command for playlist files and 
URLs.
+
+Use of this option is explicitly discouraged by mpv documentation for security
+reasons, and should be unnecessary in most common cases with modern mpv.
+Make sure to check mpv manpage for --playlist option before enabling this."
+       :type 'boolean)
+
 
 (defvar emms-player-mpv-proc nil
   "Running mpv process, controlled over --input-ipc-server/--input-file 
sockets.")
@@ -695,8 +704,8 @@ thing as these hooks."
   (pcase (alist-get 'event json-data)
     ("playback-restart"
      ;; Separate emms-player-mpv-proc-playing state is used for emms 
started/stopped signals,
-     ;;        because start-file/end-file are also emitted after track-change 
and for playlists,
-     ;;        and don't correspond to actual playback state.
+     ;;  because start-file/end-file are also emitted after track-change and 
for playlists,
+     ;;  and don't correspond to actual playback state.
      (unless (emms-player-mpv-proc-playing-p)
        (emms-player-mpv-proc-playing t)
        (emms-player-started emms-player-mpv))
@@ -771,8 +780,8 @@ metadata from mpv."
     (set-track-info track
                     title (or (key title)
                               (and (not (string= "" (key icy-title)))
-                                  (key icy-title))
-                             (key icy-name))
+                                   (key icy-title))
+                              (key icy-name))
                     artist (or (key artist)
                                (key album_artist)
                                (key icy-name))
@@ -846,19 +855,23 @@ version."
   (emms-player-mpv-proc-playing nil)
   (let
       ((track-name (emms-track-get track 'name))
-       (track-is-playlist (memq (emms-track-get track 'type)
-                                '(streamlist playlist))))
+       (track-playlist-option
+        (and emms-player-mpv-use-playlist-option
+             (memq (emms-track-get track 'type)
+                   '(streamlist playlist)))))
     (if (emms-player-mpv-ipc-fifo-p)
         (progn
           ;; ipc-stop is to clear any buffered commands
           (emms-player-mpv-ipc-stop)
-          (emms-player-mpv-proc-init (if track-is-playlist "--playlist" "--")
-                                     track-name)
+          (apply 'emms-player-mpv-proc-init
+                 (if track-playlist-option
+                     (list (concat "--playlist=" track-name))
+                   (list "--" track-name)))
           (emms-player-started emms-player-mpv))
       (let*
           ((play-cmd
             `(batch
-              ((,(if track-is-playlist 'loadlist 'loadfile)
+              ((,(if track-playlist-option 'loadlist 'loadfile)
                 ,track-name replace))
               ((set pause no))))
            (start-func



reply via email to

[Prev in Thread] Current Thread [Next in Thread]