Llink:linux: Difference between revisions

From Lundman Wiki
No edit summary
No edit summary
Line 1: Line 1:
'''llink is a media streamer''' that lets you play movies, view online trailers, browse images or play music over a network using the http protocol. It should work with most Syabas NMT hardware (NetworkedMediaTank middleware based players), such as the Popcorn Hour A- and B-series, HDX, iSTAR, Egreat a whole range of others, possibly even a couple of older ones like the LinkTheater. Some of the best reasons to run llink is that it can run on a great many platforms, including most popular NAS devices - even on the NMT player itself - and it can play media directly from RAR files.
== Changelog ==


=== llink-2.3.0 ===


[[Image:llink.screen2.jpg|right|thumb|100px|llink-2.2.0 aqua skin]]
    * Replaced UPNP/SSDP code with real UPNP implementation. Confirmed PS3 works.
[[Image:llink.screen3.jpg|right|thumb|100px|llink-1.9.9 jukebox skin]]
    * Fixed seeking in VLC playback (missing "206" reply on "bytes=0-" header).
[[Image:llink.screen4.jpg|right|thumb|100px|llink-2.2.0 clterm skin]]
    * Added ".watched" to the visited conf define, for YAMJ users.
[[Image:llink.screen5.jpg|right|thumb|100px|llink-2.2.0 nmt skin]]
    * OSX GUI front-end for basic configuration
[[Image:Kamaishi_skies.jpg|right|thumb|100px|llink-2.2.0 kamaishi_skies skin]]


=== llink overview ===
=== llink-2.2.5 ===


* [[Llink:compatible_players|List of compatible players]]
    * fixes with UPNP code, make it more compliant.
==== Features ====
    * fixes with XML scan
    * more fixes in upnp, xml was incorrect, mime types required.
    * Real RAR path parsing support, for YAMJ coherence.


* Parses various video containers: vob, avi, ts, mkv, tp, mov, m2ts, evo.
=== llink-2.2.4 ===
* Streams any file type the NMT player can handle: mp3, flac, jpeg, png etc.
* Can play straight '''from rar files''': no more need to unrar your media. (Comes with special unrar-3.7.8-seek.)
* SSDP / UPnP discovery support (although minimal).
* [[Llink:skins|Skin support]]: make your own html templates  or choose from pre-built.
* Simple iMDb querying to look up media information for Jukebox skins.
* Both HD and SD skins available.
* Light, tiny and clean code for Unix, OsX and Windows. Compiles to most platforms.
* Paginating: support to send listings in pages, with tags for Next/Prev.
* PlayAll cgi tag, and PlayAllFrom.
* External subtitles: subtitle files can be consolidated in one directory.
* libdvdnav support (and libdvdcss): provides basic playback of DVD .iso and .img files and from DVD drives.
* UDF 2.50 BD5-ISO support: provides basic playback of Bluray and HD-DVD.
* (External process support, like mencoder: incomplete).
* Can initiate custom shell scripts.
* Keep track of what you have already seen: small database for 'watched' media.


<paypal></paypal>
    * Fixed autotools so that "make install" works, as well as building from separate directory.
    * Add conf IPNAME to the VISITED command
    * Add support to optionally use Visited-DB files based on IP in filename.
    * Changed OPT|SEND_INDEX=index.html so that users can customise the filename.
    * Fixed so index.html can be in root of the '''first''' ROOT define.
    * HTTP|BUFFSERSIZE added, required for ipad, or random tweaking.
    * Major: load multiple skins selectable with User-Agent. To handle HD and SD skins.
    * Add AUTH command to conf for specifying IPs which require no PIN
    * Fixed large bug which would clear tvid if extra managed to load a file, and not show some entries.
    * Fixed external subtitles (.srt) for RAR:ed movies on NMT 200-series.


=== llink-2.2.3 ===


=== Todo ===
    * visited-db fixes for RAR archives and directories.
    * regression on visited for plain files, also fixed.


In no particular order:
=== llink-2.2.2 ===
* Add a transparent FTP fs layer? this would be well nice if it worked with RAR. ''Be quite easy to do now as a 'unrar' replacement, 'unftp'.''
* Scraping/parsing of .NFO files (for media info).
* mms:// protocol support (libmms looks ok, but has own select() call, needs deeper inspection).
** Implemented as unmms (unrar clone) but Stream support on PCH is lacking. Please bug Syabas about letting us set stream-mode
* Scrape/look for subtitles (ex. http://www.subtitlesource.org/title/tt0325710/).
* Proposed [[llink:menus|menus]]. Partly working since v2.2.0
* Configuration via web page.
* [http://www.teamavalaunch.com/ Avalaunch] style backgrounds. (Ex. fetch picture from [http://apod.nasa.gov/apod/archivepix.html NASA] every 30s and refresh) for mp3/playlists.
* Playing mp3s, and photos from RAR files don't appear to work.
* When playing music, allow to specify pictures to view.
* <s>Explore what more power we get from libdvdnav: choose audio tracks etc.</s> ALso, subtitle streams since C200 can display!
* Support [http://www.antp.be/software/moviecatalog ANT's Movie Database] .xml files.
** Difficult. ANT did weird things like put entire DB in one giant XML, with no references to the disk path.
* Support [http://www.movienizer.com Movienizer's Movie Database] .xml files.  Please provide sample .xml files for inspection.
* Remote skin support, e.g. invoke play from an iPhone or any other web enabled device.
* Apparently directories/files with "&" may not get a tick in the visited db. URL decoding?
* Make ticked directories become un-ticked when new files (unticked) files are added to the directory.
* Add NMJ sqlite DB support. Test MediaInfo source [http://www.lundman.net/ftp/test-mediainfo.c] is working.
* BUG: upnp MX is supposed to replay with random delay "between 0 and MX". Use timer callbacks
* BUG: upnp missing filters/sortcriteria.


=== User guide and other documentation  ===
    * Created '''undvd''' utility to function like unrar for ISO/IMG/VIDEO_TS/DVD and Blurays.
    * Large changes gutting advd out, to replace with undvd.
    * libdvdnav: fixed readdir() code that was broken. Took out verbose debug messages.
    * Fixed auto-expand for ISO images.
    * UPNP fixes to stop C200 crashing when parsing our xml
    * Added Unix-like ~username/ expansion for ROOT path.
    * ROOT|URL added for direct urls.
    * UPNP dir and cgi parsing fixes, for spaces etc.
    * Single-quote was not URL escaped for some reason.


Feel free to contribute to the wiki documentation:


* [[Llink:user_guide|User guide]] for functions.
=== llink-2.2.1 ===
* [[Llink:Windows_installation|Installation guide]] for Windows.
* [[llink:Linux_installation|Installation guide]] for Linux.
* [[llink:macros|Macros]] supported by the HTML engine in llink.
* [[llink:Samples|Sample Files]] for configuring llink Jukebox xml.
* [[llink:Compiling|Compiling]] Guide for compiling, cross-compiling and compiling on Windows.


=== Download binaries ===
    * Change to use libdvdnav. Should correctly follow streams, and handle ARCcoS DVDs.
    * Display DVD titles instead of VOB files
    * Display and Select Audio track in DVDs. Several hacks available to pick stream, report which is best.
    * SORT would not pass DIRSIZE and GENRE to libdirlist.
    * visited-db now stored on disk, using gdbm.
    * RAR archives in root "/" did not work.
    * UPnP feature added, very basic. See README.upnp and skin/upnp/
    * ADVD would sometimes close the HTTP connection when expanding directory listings
    * VIDEO_TS expand would set process_function, and attempt to re-expand added entries.
    * Changed "file_t" to "lfile_t" due to Solaris name-collision.
    * Opps, last file_t change also changed TVID macro!


Note: if you are in luck, devices not listed here may share platform and architecture.
Please report your success/failure.


* [[llink:windows|Windows]] 2.2.5 binaries for Windows OS
=== llink-2.2.0 ===
* [[llink:osx|OsX]] 2.3.0 binaries for Apple Macintosh Os X. App Store submitted.
* [[llink:nmt|NMT]] 2.3.0 binaries for the Network Media Tank (Popcornhour A-100, C200 etc.) '''Please use CSI to install'''
* [[llink:linux|Linux]] 2.2.4 binaries for Linux OS, Intel (add more if you can)
* [[llink:opensolaris|OpenSolaris]] 2.2.5 binaries for OpenSolaris (Solaris 11) OS, Intel
* [[llink:readynas|ReadyNAS]] 2.2.2 binaries and instructions for Infrant/Netgear ReadyNAS
* [[llink:synology|Synology]] 2.2.4 binaries and older, instructions for Synology NAS (ppc and arm)
* [[llink:asus_wl-500gl|Asus WL-500GL]] binaries for Asus router running OpenWrt
* [[llink:Asus WL-500g Premium|Asus WL-500g Premium]] binaries for Asus router running Oleg's firmware
* [[llink:landisk|landisk]] binaries for IO-Data landisk uhdl-av, cpu-SH4
* "[[llink on a stick]]" let's you run llink from a USB stick or external USB drive (unmaintained)
* [[Llink:dlink_dns323|D-Link DNS-323]] binaries and instructions for D-Link NAS
* [http://forum.excito.net/viewtopic.php?p=6195 Bubba server] 2.2.0 Linux compile instructions (no binaries)
* [http://www.azboxworld.com/index.php?page=Thread&postID=66741#post66741 AzBox HD] 2.2.0 plugin binaries
* [[llink:buffalo|Buffalo]] 2.2.3 binaries and instructions for Buffalo Linkstation (arm)
* [[llink:Thecus|Thecus]] N5200-N0503 2.2.2 binaries (intel Atom)
* [[llink:qnap|QNAP]] 2.2.4 binaries for QNAP TS-109/209 series (arm)


''(Compilers, you can upload new versions directly in the wiki, see Synology page as example)''
    * Added UDF2.50 support to dvdread for BD-5 ISO images. (HD-DVD as well, in theory)
    * Added support to UDF list files (instead of just domain,title DVD lookup)
    * Jukebox page 2 and up incorrectly handled Separator for files.
    * libdvdnav fails to open paths with /VIDEO_TS/. Reverted function from libdvdread.
    * Changed pass=0 to list and cache only. Pass=1+ simply replays cache. No need for lastline etc.
    * Fix history code so parent sets from page and focus correctly.
    * Fix focus setting
    * Add user-set sort-types in conf
    * Add sort-by cgi key, and MACROS to control sorting.
    * Fixed SSDP to also work against xbox360 and Playstation3 (query only, more work needed for actual use)
    * Added option to automatically expand RAR files when listing.   
    * Added option to automatically expand ISO files when listing.
    * Added option to allow sending of index.html file if present in directory
    * New MACROs for current page, tvid-tvid and total pages, total files.
    * Minor changes in extra-info, directory.ext was terminated at .ext


=== Sources ===


* [[llink:sources|Sources]] Build your own for your platform. Includes autoconf for Unix and project files for Windows Visual Studio.
=== llink-2.1.2 ===
* libdvdcss sources are: [http://download.videolan.org/pub/libdvdcss/1.2.10/ libdvdcss-1.2.10.tar.gz]
* [[llink:mime|mime.types]] defining MIME types, generally not needed, only if you use it with a browser.
* <s>libdvdnav sources are: [http://www.mplayerhq.hu/MPlayer/releases/dvdnav/ libdvdnav-4.1.2]</s> ''libdvdnav sources now included.''
* <s>libdvdread with MSVC++ Project files: [http://www.lundman.net/ftp/llink/libdvdread-0.9.7-win32.tar.gz</s>
* <s>libdvdread sources for llink v2.0.8 to 2.1.1 only are: [http://www.dtek.chalmers.se/groups/dvd/downloads.shtml libdvdread-0.9.7.tar.bz]</s>


=== Known issues ===
    * Changed from libdvdread-0.9.7 to libdvdnav-4.2.1 for future features
    * Changed libdvdread access to wrap it in an async wrapper (more efficient, cleaner)
    * Added dvd_input RAR support to libdvdread for reading ISO inside RAR archives.
    * Generic menu added '''[nc]'''
    * Added working DELETE/DELETE-RECURSIVE menu code.
    * Added working UNRAR menu code.
    * Added working user SCRIPT code, and sample.


Although llink is capable of many things, there are limitations that should be known to users.
Please read here for details: [[Llink:Known_issues]]


=== Changelog ===
=== llink-2.1.1 ===


The [[llink:changelog|llink changelog]] contains the basic release notes history.
    * Accidentally broke dvdread support in 2.1.0
 
 
=== llink-2.1.0 ===
 
    * Major Windows code changes. IO base replaced.
    * Minor "visited" changes, since files are read in chunks, caching was needed.
    * Minor debug mode HTML comment lost bug fixed. '''[mikevs]'''
    * Directories can also use ignore= tag '''[mikevs]'''
    * Next/Prev will go to top/end properly. '''[mikevs]'''
    * Conditional MACROS if client agent is Syabas '''[mikevs]'''
    * Last-line virtual line added for better navigation '''[mikevs]'''
    * Playlist feature to use "type=" tag, like type=music. '''[mikevs]'''
    * Add 2nd redirect test for RAR files, allow subtitles next to RAR file.(redirection must be on in llink.conf)
    * byte range close file bug found, was closing HTTP socket, not file.
    * New skin "nmt" '''[mikevs]'''
    * Clearing PIN should now work
    * Changed Aqua skin to show visited indication with icons over text colour.
    * OsX Application bundle using Platypus
 
 
=== llink-2.0.9 ===
 
    * Clean up of -h usage display '''[IronWolve]'''
    * hide_path() prototype fix, coredump for menus. '''[erlis]'''
    * CDATA core fix '''[kpziegler]'''
    * "visited" media code started. Colour-code media already played.
 
 
=== llink-2.0.8 ===
 
    * Start of "Menu" support.
    * parental support. ".Directory" (and "$Directory$" under Windows) are not shown, unless correct PIN is entered.
    * iStar double selector (status unknown)
    * "." core dump fixed.
    * "." and ".." removal for sub-directories
    * SSDP bindif support was not correct, again, really fixed.
    * Manual SSDP Query support
    * Somewhere along early 2.0.8 versions libdvdread support broke, fixed.
    * Added "VIDEO_TS" folders to libdvdread. (For merge support)
    * (lion timers bug fix for manual SSDP)
 
 
=== llink-2.0.7 ===
 
    * 32 bit lseek fix, would manifest as unable to seek/ff in large files. '''[dburckh]'''
    * libdvdread, should read .iso and .img files. (display .IFO/.VOB file to play)
    * SSDP announce to use bindif, if so specified '''[P.K.Lee]'''
    * Added -L option to work around LinkTheater bug

Revision as of 02:56, 20 September 2011

Changelog

llink-2.3.0

   * Replaced UPNP/SSDP code with real UPNP implementation. Confirmed PS3 works.
   * Fixed seeking in VLC playback (missing "206" reply on "bytes=0-" header).
   * Added ".watched" to the visited conf define, for YAMJ users.
   * OSX GUI front-end for basic configuration 

llink-2.2.5

   * fixes with UPNP code, make it more compliant.
   * fixes with XML scan
   * more fixes in upnp, xml was incorrect, mime types required.
   * Real RAR path parsing support, for YAMJ coherence.

llink-2.2.4

   * Fixed autotools so that "make install" works, as well as building from separate directory.
   * Add conf IPNAME to the VISITED command
   * Add support to optionally use Visited-DB files based on IP in filename.
   * Changed OPT|SEND_INDEX=index.html so that users can customise the filename.
   * Fixed so index.html can be in root of the first ROOT define.
   * HTTP|BUFFSERSIZE added, required for ipad, or random tweaking.
   * Major: load multiple skins selectable with User-Agent. To handle HD and SD skins.
   * Add AUTH command to conf for specifying IPs which require no PIN
   * Fixed large bug which would clear tvid if extra managed to load a file, and not show some entries.
   * Fixed external subtitles (.srt) for RAR:ed movies on NMT 200-series.

llink-2.2.3

   * visited-db fixes for RAR archives and directories.
   * regression on visited for plain files, also fixed.

llink-2.2.2

   * Created undvd utility to function like unrar for ISO/IMG/VIDEO_TS/DVD and Blurays.
   * Large changes gutting advd out, to replace with undvd.
   * libdvdnav: fixed readdir() code that was broken. Took out verbose debug messages.
   * Fixed auto-expand for ISO images.
   * UPNP fixes to stop C200 crashing when parsing our xml
   * Added Unix-like ~username/ expansion for ROOT path.
   * ROOT|URL added for direct urls.
   * UPNP dir and cgi parsing fixes, for spaces etc.
   * Single-quote was not URL escaped for some reason.


llink-2.2.1

   * Change to use libdvdnav. Should correctly follow streams, and handle ARCcoS DVDs.
   * Display DVD titles instead of VOB files
   * Display and Select Audio track in DVDs. Several hacks available to pick stream, report which is best.
   * SORT would not pass DIRSIZE and GENRE to libdirlist.
   * visited-db now stored on disk, using gdbm.
   * RAR archives in root "/" did not work.
   * UPnP feature added, very basic. See README.upnp and skin/upnp/
   * ADVD would sometimes close the HTTP connection when expanding directory listings
   * VIDEO_TS expand would set process_function, and attempt to re-expand added entries.
   * Changed "file_t" to "lfile_t" due to Solaris name-collision.
   * Opps, last file_t change also changed TVID macro!


llink-2.2.0

   * Added UDF2.50 support to dvdread for BD-5 ISO images. (HD-DVD as well, in theory)
   * Added support to UDF list files (instead of just domain,title DVD lookup)
   * Jukebox page 2 and up incorrectly handled Separator for files.
   * libdvdnav fails to open paths with /VIDEO_TS/. Reverted function from libdvdread.
   * Changed pass=0 to list and cache only. Pass=1+ simply replays cache. No need for lastline etc.
   * Fix history code so parent sets from page and focus correctly.
   * Fix focus setting
   * Add user-set sort-types in conf
   * Add sort-by cgi key, and MACROS to control sorting.
   * Fixed SSDP to also work against xbox360 and Playstation3 (query only, more work needed for actual use)
   * Added option to automatically expand RAR files when listing.    
   * Added option to automatically expand ISO files when listing.
   * Added option to allow sending of index.html file if present in directory
   * New MACROs for current page, tvid-tvid and total pages, total files.
   * Minor changes in extra-info, directory.ext was terminated at .ext


llink-2.1.2

   * Changed from libdvdread-0.9.7 to libdvdnav-4.2.1 for future features
   * Changed libdvdread access to wrap it in an async wrapper (more efficient, cleaner)
   * Added dvd_input RAR support to libdvdread for reading ISO inside RAR archives.
   * Generic menu added [nc]
   * Added working DELETE/DELETE-RECURSIVE menu code.
   * Added working UNRAR menu code.
   * Added working user SCRIPT code, and sample.


llink-2.1.1

   * Accidentally broke dvdread support in 2.1.0


llink-2.1.0

   * Major Windows code changes. IO base replaced.
   * Minor "visited" changes, since files are read in chunks, caching was needed.
   * Minor debug mode HTML comment lost bug fixed. [mikevs]
   * Directories can also use ignore= tag [mikevs]
   * Next/Prev will go to top/end properly. [mikevs]
   * Conditional MACROS if client agent is Syabas [mikevs]
   * Last-line virtual line added for better navigation [mikevs]
   * Playlist feature to use "type=" tag, like type=music. [mikevs]
   * Add 2nd redirect test for RAR files, allow subtitles next to RAR file.(redirection must be on in llink.conf)
   * byte range close file bug found, was closing HTTP socket, not file.
   * New skin "nmt" [mikevs]
   * Clearing PIN should now work
   * Changed Aqua skin to show visited indication with icons over text colour.
   * OsX Application bundle using Platypus


llink-2.0.9

   * Clean up of -h usage display [IronWolve]
   * hide_path() prototype fix, coredump for menus. [erlis]
   * CDATA core fix [kpziegler]
   * "visited" media code started. Colour-code media already played.


llink-2.0.8

   * Start of "Menu" support.
   * parental support. ".Directory" (and "$Directory$" under Windows) are not shown, unless correct PIN is entered.
   * iStar double selector (status unknown)
   * "." core dump fixed.
   * "." and ".." removal for sub-directories
   * SSDP bindif support was not correct, again, really fixed.
   * Manual SSDP Query support
   * Somewhere along early 2.0.8 versions libdvdread support broke, fixed.
   * Added "VIDEO_TS" folders to libdvdread. (For merge support)
   * (lion timers bug fix for manual SSDP) 


llink-2.0.7

   * 32 bit lseek fix, would manifest as unable to seek/ff in large files. [dburckh]
   * libdvdread, should read .iso and .img files. (display .IFO/.VOB file to play)
   * SSDP announce to use bindif, if so specified [P.K.Lee]
   * Added -L option to work around LinkTheater bug