Fabio Manganiello
0e3845ef88
The vlc _reset_state logic should be wrapped within a lock context to make sure that two threads don't try to deallocate the context at the same time
2021-02-28 20:56:32 +01:00
Fabio Manganiello
833f810d4b
Fixed stop handler for vlc plugin.
...
For some reason, vlc event handlers are not re-entrant (https://github.com/oaubert/python-vlc/issues/44#issuecomment-378520074 ).
This means that the vlc API can't be used from an event handler,
and that an event handler that reacts to stop/end-of-stream by
releasing the player and the vlc instance will likely get stuck
and the app may eventually die with SIGSEGV.
Because of this design limitation on the vlc side, the plugin has
to run another thread in the main app that monitors the stop event
set by the event handler and releases the resources appropriately.
2021-02-28 13:03:10 +01:00
Fabio Manganiello
d190560536
Support for media.vlc.play toggling paused state if called with no arguments, and MediaPlayRequestEvent should have player and plugin attributes set
2021-02-28 01:40:29 +01:00
Fabio Manganiello
e0e3081eb1
VLC volume should strictly be an integer
2021-02-28 01:31:00 +01:00
Fabio Manganiello
b27c9ee630
Make sure to always run .quit() on the _player instance on stop/exit event, even if the player is already stopped, otherwise the OMXPlayer session may be hanging in the background and prevent new DBus connections
2021-02-22 14:22:45 +01:00
Fabio Manganiello
6b5b50d186
Migrated switches plugin
2021-02-19 20:47:29 +01:00
Fabio Manganiello
2abfb2964c
Merge branch 'master' into vuejs
2021-02-04 01:57:36 +01:00
Fabio Manganiello
4858dbc060
Back/forward seek changed from 60 to 30
2021-02-04 01:56:28 +01:00
Fabio Manganiello
2834ed2a7c
Refactored and fixed many bugs on the media.omxplayer plugin
2021-02-04 01:44:21 +01:00
Fabio Manganiello
7f24b82281
Removed deprecated media.ctrl plugin
2021-02-03 22:13:10 +01:00
Fabio Manganiello
7e1d232942
Another fix bites the dust
2021-02-03 17:47:33 +01:00
Fabio Manganiello
31a7ecee03
Quick fix
2021-02-03 17:46:05 +01:00
Fabio Manganiello
346bd9602d
The whole get_plugin/.status() block should be under try/except
2021-02-03 17:44:40 +01:00
Fabio Manganiello
673351db51
Don't fail if a media plugin can't be imported
2021-02-03 17:43:26 +01:00
Fabio Manganiello
86ebc4fae9
Get the plugin name, not the object
2021-02-03 17:42:20 +01:00
Fabio Manganiello
118540db8c
Fixed unreferenced var
2021-02-03 17:41:06 +01:00
Fabio Manganiello
a1d6c4fbe4
Added missing Config import
2021-02-03 17:39:55 +01:00
Fabio Manganiello
2bb07ae191
Fixed base class name
2021-02-03 17:39:16 +01:00
Fabio Manganiello
1920bd80a3
First search among the configured media plugins in media.ctrl plugin
2021-02-03 17:34:33 +01:00
Fabio Manganiello
370a7d4c15
Added frontend support for Plex
2021-01-18 01:28:10 +01:00
Fabio Manganiello
85f56cf98c
New media panel [WIP]
2021-01-14 00:15:35 +01:00
Fabio Manganiello
6ae76f1f38
Migrating media plugins [WIP]
2021-01-05 00:50:24 +01:00
Fabio Manganiello
c7711d75a1
New pychromecast has replaced host/port with uri
2020-11-11 03:07:42 +01:00
Fabio Manganiello
711ea543bb
Use youtube-dl to extract the video URL instead of streaming its content to a local sock file
2020-11-11 03:07:23 +01:00
Fabio Manganiello
9e6c40d393
media.gstreamer added to the list of compatible media plugins
2020-09-29 15:37:46 +02:00
Fabio Manganiello
05b0a7f14d
Added GStreamer media plugin [ closes #151 ]
2020-09-29 15:32:40 +02:00
Fabio Manganiello
907bc0f75b
Added rtorrent integration [ closes #120 ]
2020-09-03 13:08:42 +02:00
Fabio Manganiello
65bac0ccc5
Fix for pychromecast.get_chromecasts new return type.
...
On newer versions of pychromecast get_chromecasts returns
a tuple (devices, browser_service) instead of a list. The
software should be robust enough with both older and newer
versions of pychromecast.
2020-07-25 01:35:06 +02:00
Fabio Manganiello
adc94349c7
Missing commas
2020-07-04 00:31:24 +02:00
Fabio Manganiello
b716b1a0c1
More robust URL query for YouTube
2020-07-04 00:25:49 +02:00
Fabio Manganiello
93ac6c8af9
Regex format fix
2020-07-04 00:18:45 +02:00
Fabio Manganiello
03dc524f80
Fixed response type
2020-07-04 00:15:44 +02:00
Fabio Manganiello
c943acb9c2
Smarter logic for parsing YouTube URLs in Kodi
2020-07-04 00:12:16 +02:00
Fabio Manganiello
a9dbda455f
Support for default media player volume
2020-02-21 18:40:46 +01:00
Fabio Manganiello
70fe2459de
_event_callbacks is a protected attribute of mpv.MPV
2020-02-21 18:29:40 +01:00
Fabio Manganiello
a0ceb560b4
Implemented alarm/timer plugin ( closes #111 )
2020-02-17 19:37:22 +01:00
Fabio Manganiello
8248b5353f
Added status action to MediaPlugin interface
2020-02-17 18:12:40 +01:00
Fabio Manganiello
4c3140c9b5
Fixed docs
2020-01-09 23:40:59 +01:00
Fabio Manganiello
f378fa8832
MPV.Event.IDLE should also be treated as a player stop event
2019-12-07 17:16:48 +01:00
Fabio Manganiello
d38746d278
Moved imports for extra dependencies inside the methods where they are actually used
2019-12-01 23:35:05 +01:00
Fabio Manganiello
09991b2e8a
Use a filesystem FIFO for YouTube media content instead of playing the *.googlevideo.com URL directly
...
Google Video URLs now return 403 if played directly. Let youtube-dl
handle the heavylifting and use a FIFO to stream the media
2019-09-30 18:06:30 +02:00
Fabio Manganiello
e9c7104242
Keep track of the newly inserted token records in media.local.search, or we can experience UniqueConstraint violations upon session commit because of duplicate records
2019-09-02 23:05:16 +02:00
Fabio Manganiello
fa9b816d06
Return the parsed raw YouTube URL only if available, otherwise the original URL
2019-08-04 17:36:06 +02:00
Fabio Manganiello
aebeadbcf7
args can be either a list or a tuple - treat accordingly
2019-08-04 17:17:09 +02:00
Fabio Manganiello
3a5a731bd2
pause and then play omxplayer in the play handler to make sure that all the proper events are generated upon play
2019-08-04 16:50:38 +02:00
Fabio Manganiello
dcb4a36959
Replaced os.environ['HOME'] with os.path.expanduser('~') (Windows compatibility)
...
Solves #74
2019-07-29 00:03:01 +02:00
Fabio Manganiello
0ab70cdbae
Kodi Application.SetVolume() expects an integer or a string, not a float
2019-07-25 23:54:32 +02:00
Fabio Manganiello
9c4646bed5
Fixed documentation and added missing docs to the index
2019-07-16 20:28:00 +02:00
Fabio Manganiello
55cd937a51
Made OMXPlayer plugin more resiliant in the case where the player has already terminated
2019-07-13 22:12:56 +02:00
Fabio Manganiello
654c61ec51
Standardized omxplayer returned attributes and volume management
2019-07-12 20:12:59 +02:00