diff --git a/AUTHORS b/AUTHORS index e69de29b..a12a965b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -0,0 +1,2 @@ +Emeric Poupon first version of all files except from the boost directory. + diff --git a/README b/README index 654e307c..da6adb00 100644 --- a/README +++ b/README @@ -1,9 +1,28 @@ +LMS - Lightweight Media Server + + +LMS is a free media streaming software, released on the GPLv3 license. +It allows you to access your music and your videos using the following built-in services: +- Web server +- TCP/SSL server using a Protocol Buffers format (see https://github.com/google/protobuf/) + +LMS is written entirely in C++. Therefore, it is suitable to run on embedded devices, where space and/or memory are limited. +Please note the media files are transcoded on-the-fly: this reduces compatibility issues but may need a lot of computation power, at least for HD videos. + +Features: +- User management +- "Winamp-style" interface +- Audio/Video transcode (including downsampling), based on the libav project (see https://www.libav.org/) + +Please note LMS is still under development and will gain more features in the future. +An android application is being developped as well. I) DEPENCIES -libboost-dev libextractor-dev libavcodec-dev libwt-dev libprotobuf-dev libconfig++-dev +Debian packages: +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 -Warning: your distrib may provide an outdated wt library. Using the latest Wt (>= 3.3.3) is highly recommended (http://www.webtoolkit.eu/wt) +Warning: your distrib may provide an outdated wt library. Using the latest Wt (>= 3.3.3) is highly recommended (see http://www.webtoolkit.eu/wt) II) BUILD @@ -15,12 +34,11 @@ II) BUILD (configure will complain if a mandatory library is missing) -# make -j 4 +# make +III) Setting up SSL materials (required by the SSL server and the web server) -III) Setting up SSL (required by the Remote mobile service and the web server) - -Just an example, you could do whatever you want (ca, self signed cert, etc.) +This is just an example, you could do whatever you want (ca, self signed cert, etc.) Generate a dh file: # openssl dhparam -out dh2048.pem 2048 @@ -35,6 +53,8 @@ In the build directory: # ./lms lms.conf Create the lms.conf file using the etc/lms.sample.conf +- "ui.resources.approot" has to refer to the ui/approot/ directory. +- "ui.resources.docroot" has to refer to Wt's docroot (usually located in /usr/share/Wt) -Depending of your SSL parameters, you may be asked for the PEM passphrase to unlock the private key. +Depending on your SSL parameters, you may be asked for the PEM passphrase to unlock the private key. diff --git a/TODO b/TODO index 2e80ed6c..6e3e01e2 100644 --- a/TODO +++ b/TODO @@ -11,28 +11,24 @@ - Limit multi login from UI and remote interfaces (limit per interface is acceptable) [Cover] -- Scaling: find something more "reliable" than GIL and its customs extensions (adobe work, io_new)? +- Scaling: find something more "reliable" than GIL and its custom extensions (adobe work, io_new)? [Database] - Optim, use SQL query to get genre orphans - Use Inotify like system to watch modified/added files? - Implement a video database cleanup -- Group videos in "video groups". Each video may has sub groups (current "Path" class) - -> Simplify the database and remove the Path class -- make a default admin/admin account of the very first connection? - count scan import errors [Metadata] [Transcode] -- some early playback end spotted on flac files or huge audio files (> several hours) +- some early end of playback spotted on flac files - do not use a queue to output data, but just fill produced bytes into a buffer and let the transcode user decide what to do with it [UI] - handle internationalization - - make a wizard on first connection (or make a default admin/admin account of the very first connection)? [Settings] - - increase the menu's width + - increase the menu's width / add margins - logout users that are being changed (loss of admin admin rights), or make sure they are still admin when they make changes - "signal not exposed" problem if a user logout and login again. bad resource destruction? [user/transcoding] @@ -50,7 +46,7 @@ - MediaPlayer: move slider using js (http://redmine.webtoolkit.eu/boards/2/topics/7924?r=8478) - TrackView : handle original release date - TrackView : handle duration > 1 hour - - TrackView : select only relevant columns to speed up queries (do not get eveything) + - TrackView : select only relevant columns to speed up queries (do not fetch eveything) - TrackView : Reselect the current selected item when displaying the updated search results - ReleaseView: display the original release's publication year - OGG metadata -> properly handle metadata nested in the audio stream @@ -75,4 +71,3 @@ [Logs] - capture transcoder log output to get more information -- Use a logging facility