From f1189d215419ba44a7bd4cf49eb746a125c61b87 Mon Sep 17 00:00:00 2001 From: emeric Date: Wed, 4 Mar 2015 12:55:20 +0100 Subject: [PATCH] Updated documentation --- README | 20 +++++++++++++------- TODO | 6 ++++-- src/remote/proto/messages.proto | 10 ++++++++++ 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/README b/README index 2f3eb332..2cb78ce7 100644 --- a/README +++ b/README @@ -1,22 +1,22 @@ LMS - Lightweight Media Server -LMS is a free media streaming software, released under the GPLv3 license. +LMS is a self-hosted media streaming software, released under the GPLv3 license. It allows you to access your music and your videos using an https web interface. Features: +- Winamp-like interface, suited for large databases +- Audio/Video transcode for maximum interoperability and low bandwith requirements - User management -- Fast "Winamp-style" interface -- Audio/Video transcode (including downsampling), based on the libav project (see https://www.libav.org/). -- Custom API to access data using Protocol Buffers format over TCP/SSL (see https://github.com/google/protobuf/ and src/remote/proto) +- API available in Protocol Buffers (see src/remote/proto/messages.proto) Please note LMS is still under development and will gain more features in the future. -An android application is being developped as well. +A mobile application based on Kivy is being developped as well. LMS is written entirely in C++. Therefore, it is suitable to run on embedded devices, where space and/or memory are limited. Please note some media files may require significant CPU usage to be transcoded. -I) DEPENCIES +I) DEPENDENCIES Debian packages: g++ autoconf automake libboost-dev libavcodec-dev libwtdbosqlite-dev libwthttp-dev libwtdbo-dev libwt-dev libprotobuf-dev libconfig++-dev libprotobuf-dev protobuf-compiler libjpeg8-dev libavcodec-dev libavformat-dev libavutil-dev @@ -37,7 +37,7 @@ II) BUILD III) Setting up SSL materials (required by the SSL server and the web server) -This is just an example, you could do whatever you want (ca, self signed cert, etc.) +This is just a self signed certificate example, you could do use a CA if you want. Generate a dh file: # openssl dhparam -out dh2048.pem 2048 @@ -57,3 +57,9 @@ Create the lms.conf file using the etc/lms.sample.conf Depending on your SSL parameters, you may be asked for the PEM passphrase to unlock the private key. +V) LINKS + +- Wt (http://www.webtoolkit.eu/) +- bootstrap3 (http://getbootstrap.com/) +- libav project (https://www.libav.org/). +- Protocol Buffers (https://github.com/google/protobuf/) diff --git a/TODO b/TODO index d513cdf2..161330a4 100644 --- a/TODO +++ b/TODO @@ -22,7 +22,7 @@ - OGG metadata -> properly handle metadata nested in the audio stream [Transcode] -- some early end of playback spotted on flac files +- some early end of playback spotted on flac files. Spotted on old firefox versions? [UI] - handle internationalization @@ -31,6 +31,7 @@ - "signal not exposed" problem if a user logout and login again. bad resource destruction? [user/transcoding] - Prefered codecs for audio/video? + - use a slider instead of a combo box for the bitrates [admin/Users] - do not activate the update period/start time when 'admin' is checked [admin/Database update] @@ -39,10 +40,11 @@ [Audio] - Style eveything nicely... - - MediaPlayer: move slider using js (http://redmine.webtoolkit.eu/boards/2/topics/7924?r=8478) + - MediaPlayer: move the slider using js (http://redmine.webtoolkit.eu/boards/2/topics/7924?r=8478) - TrackView : handle duration > 1 hour - TrackView : Reselect the current selected item when displaying the updated search results - Add covers in the release filter? + - Add a download button to get the current playlist in a streamed zip file [Video] - implement a decent mediaplayer diff --git a/src/remote/proto/messages.proto b/src/remote/proto/messages.proto index 30bef5f2..b9b2f704 100644 --- a/src/remote/proto/messages.proto +++ b/src/remote/proto/messages.proto @@ -5,6 +5,16 @@ import "media.proto"; package Remote; +// Every request sent by the client must be a ClientMessage +// The server will answer using a ServerMessage +// +// The client must authenticate first before querying data +// If an expected message is received, the connection is dropped by the server +// +// A header is to be added before the serialized protobuf message in order to keep +// track of where one message ends and the next begins. +// Format: +// MAGIC (4 bytes, 0xDE, 0xAD, 0xBE, 0xEF)- SIZE (4 bytes, big endian encoded) - serialized proto message message ClientMessage { enum Type