[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