@SolarAquarion : Hi, sorry that I've just noticed your message!
Seems like almost noone is here... maybe because the link to gitter on readme is broken?
I hoped I would find someone who could answer my question "what is the memory usage of this" before I spend a lot of time installing it
Juan A. Rubio
Hi, not a lot of people around... I've just seen your message (and yes, that link being broken does not help either)
Juan A. Rubio
With regards to memory usage, here is the status file of Tizonia playing a youtube playlist. This is probably a worst case scenario, as other services would probably use less memory. You can compare it with other applications on your system: ➜ 32395 cat /proc/$(pidof tizonia)/status Name: tizonia Umask: 0022 State: S (sleeping) Tgid: 32395 Ngid: 0 Pid: 32395 PPid: 32162 TracerPid: 0 Uid: 1000 1000 1000 1000 Gid: 1000 1000 1000 1000 FDSize: 64 Groups: 4 20 24 27 30 46 116 126 1000 NStgid: 32395 NSpid: 32395 NSpgid: 32395 NSsid: 32162 VmPeak: 1592480 kB VmSize: 1588380 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 96648 kB VmRSS: 96648 kB RssAnon: 66812 kB RssFile: 29584 kB RssShmem: 252 kB VmData: 135740 kB VmStk: 136 kB VmExe: 13104 kB VmLib: 67332 kB VmPTE: 816 kB VmSwap: 0 kB HugetlbPages: 0 kB CoreDumping: 0 Threads: 15 SigQ: 0/63703 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000001001000 SigCgt: 0000000180084006 CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: 0000003fffffffff CapAmb: 0000000000000000 NoNewPrivs: 0 Seccomp: 0 Speculation_Store_Bypass: thread vulnerable Cpus_allowed: ff Cpus_allowed_list: 0-7 Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 6 nonvoluntary_ctxt_switches: 1
Just for the record, if you are planning to use Spotify, there currently is an issue that prevents users accessing Spotify with Tizonia. It is being worked on: tizonia/tizonia-openmax-il#531
wow this seems semi abandoned is anyone even here still?
Hey, if I wanted to help out (for example I've been eyeing up tickets about adding support for Deezer and Last.fm scrobbling), how would I go about it? Is there a write up somewhere how a plugin for tizonia is supposed to look like?
Hi @MarPan , there is not such guide at the moment I'm afraid. I've created a GitHub issue for that, hopefully I may be able to add some docs to fix that fairly quickly tizonia/tizonia-openmax-il#607
In the meantime, the very quick summary on how a service (e.g. Google Play music) is implemented in Tizonia, goes like this: 1.- Find a way to retrieve audio streams URLs from the service in question, usually that means, find a 3rdparty library that knows how to do this (e.g. Tizonia leverages https://github.com/simon-weber/gmusicapi for Google Play) 2.- Create the wrapper that talks to the service using the thirdparty API e.g. here, https://github.com/tizonia/tizonia-openmax-il/tree/master/clients/gmusic, there are two modules a) a 'proxy' module (gmusicproxy) which is nothing else but a thin Python wrapper that uses gmusicapi to perform searches and queue up URLs retrieved from Google Play Music b) a thin c-wrapper (libtizgmusic) that essentially encapsulates the Python proxy into an easy to use C API. 3.- This C-API is used from within the 'HTTP' source' OpenMAX IL plugin (see https://github.com/tizonia/tizonia-openmax-il/tree/master/plugins/http_source). This OpenMAX IL plugin obtains URLs from the service (using libtizgmusic) and internally downloads the streams using uses libcurl. The HTTP source is part of a pipeline that then decodes the stream and renders the audio to the active sink.
The tizonia player app (https://github.com/tizonia/tizonia-openmax-il/tree/master/player) is the top level layer that knows how to construct OpenMAX IL pipelines or 'graphs' (usually, a source component (eg. HTTP source) -> audio decoder -> audio renderer). Depending on the format, (e.g. aac, vs mp3, vs ogg, vs mpa, etc).. this layer may already have 'graphs' that are already implemented that can be reused when adding a new online music service.
The best way to get your head around this process is to start with 1.- and 2.- above. Feel free to ask any questions here or on Github, I'll do my best to answer!.