This is a "plugin" for the Video Disk Recorder (VDR). Written by: Petri Hintukainen Project's homepage: http://www.hut.fi/u/phintuka/vdr/ Latest version available at: http://www.hut.fi/u/phintuka/vdr/ See the file COPYING for license information. Description Simple framebuffer and/or X11 front-end for VDR. (displays OSD and video in raw X/Xv/XvMC window or Linux framebuffer/DirectFB/vidixfb). Support for local and remote frontends. Built-in image and media player supports playback of most known media files (avi/mp3/divx/jpeg/...) and network radio/video streams (http, rtsp, ...) directly from VDR. Requirements - vdr-1.4.0 or later - xine-lib 1.1.1 or later (xine-lib is not required for server in network-only usage) - Enough CPU power and memory to decode streams (PII 400Mhz + 64M should be enough with Xv or DirectFB) WARNING Remote (network) mode should be used only in firewalled environment; it gives anyone full control to VDR ! Full access is allowed to all hosts listed in svdrphosts.conf. Multicast streaming can flood your internet connection and/or wireless LAN. If there is no router (or intelligent switch ?) all multicast packets will be broadcasted to all network links. This will flood slow network links: - Internet connection if outgoing bandwith is < 10 Mbit/s - Wireless LAN (11 or 54 Mbit/s). By default multicast TTL is set to 1 so multicast packets should be stopped to first router regardless of network configuration. Public CVS Latest fixes are available from sourceforge.net public CVS (http://sourceforge.net/cvs/?group_id=160063). CVS checkout command: cvs -d:pserver:anonymous@xineliboutput.cvs.sourceforge.net:/cvsroot/xineliboutput co vdr-xineliboutput Distribution package includes public CVS repository information. Updating to latest CVS version should be possible by just running "cvs update" in plugin source directory. Buildtime options X11 and xine-lib are detected by Makefile. It is possible to override auto-detection by adding following definitions to VDR's Make.config: enable/disable building of X11 frontends: XINELIBOUTPUT_X11 = 1 XINELIBOUTPUT_X11 = 0 enable/disable framebuffer frontends: XINELIBOUTPUT_FB = 1 XINELIBOUTPUT_FB = 0 enable/disable xine (input)plugin: XINELIBOUTPUT_XINEPLUGIN = 1 XINELIBOUTPUT_XINEPLUGIN = 0 or changing corresponding lines in plugin's Makefile. It is possible to compile only remote frontends with command "make frontends". Installing - IMPORTANT XINE'S DYNAMIC LIBRARIES AND FRONTEND EXECUTABLES ARE NOT INSTALLED AUTOMATICALLY. This was changed in version 1.0.0pre2. It is important to copy required libraries to right place either by hand or by executing "make install" in plugin's source directory. Installing binaries and libraries usually requires root permissions. To be able to use remote frontends each client's IP address must be defined in VDR's svdrphosts.conf. Full access is allowed to all hosts listed in svdrphosts.conf. Connections from any other hosts are rejected. Usage examples (VDR plugin) If no arguments are given, both X11 and framebuffer frontends are tried. First working frontend is used with best available video driver. Complete list of available command-line arguments can be obtained with "vdr --help". Only local frontend, X11/Xv video, alsa audio: vdr -P"xineliboutput --local=sxfe --video=xv --audio=alsa --remote=none" Only local frontend, (slow) X11 video, oss audio: vdr -P"xineliboutput --local=sxfe --video=x11 --audio=oss --remote=none" Only local frontend, DirectFB: vdr -P"xineliboutput --local=fbfe --video=DirectFB --remote=none" Only remote frontend(s): vdr -P"xineliboutput --local=none --remote=37890" Local and remote frontends: vdr -P"xineliboutput --local=sxfe --remote=37890" or vdr -P"xineliboutput --local=fbfe --remote=37890" Using remote frontends Two remote frontends are included, vdr-fbfe for framebuffer and vdr-sxfe for X11. Complete list of available command-line arguments can be obtained with "vdr-??fe --help". Frontend should find server automatically (from local subnet) and negoate best available transport. If frontend does not find server (or specific transport should be used), mrl must be given on command line. Examples: Search for VDR (xineliboutput) server, connect to it and negoatite best available transport. Use best available audio and video driver. vdr-fbfe or vdr-sxfe Connect to 192.168.1.3 default port and negoate best available transport vdr-fbfe xvdr://192.168.1.3 Connect to 192.168.2.100, port 12550 and use TCP transport vdr-fbfe xvdr:tcp://192.168.2.100:12550 Automatically search for VDR server and use UDP transport vdr-fbfe xvdr:udp: or vdr-fbfe --udp Available transports for video/audio pipe Use local pipe; server and front-end must be running in same machine rtp Use RTP/UDP multicast for data and TCP for control. Multiple frontends can receive same stream. udp Use UDP unicast for data and TCP for control. tcp Use TCP protocol for control and data. Both channels use same server port and are opened by client. Forwarding lirc keys to server Use option --lirc with optional lircd socket name to forward LIRC commands from client to server. Audio driver Use alsa: vdr-fbfe --audio alsa Use alsa (and specific card/sub-device): vdr-fbfe --audio alsa:plughw:1,1 Video driver (and display / device): With X11 frontend (vdr-sxfe): vdr-sxfe --video x11 | xshm | xv | xvmc | xxmc [:display] Examples: --video xv --video xvmc:127.0.0.1:1.0 With framebuffer frontend (vdr-fbfe): --video [fb | DirectFB | vidixfb] [:fb_device] examples: --video DirectFB --video fb:/dev/fb/1 --video vidixfb De-interlacing De-interlacing can be switched on with command-line option --post tvtime Examples: vdr-sxfe --post tvtime:method=Linear,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1 vdr -P"xineliboutput --post=tvtime:method=Linear,cheap_mode=1,pulldown=0,use_progressive_frame_flag=1" Using with xine-ui (xine, fbxine, gxine, ...) Examples: xine "xvdr://127.0.0.1#nocache;demux:mpeg_block" xine "xvdr:tcp://127.0.0.1:37890#nocache;demux:mpeg_block" xine "xvdr:udp://127.0.0.1:37890#nocache;demux:mpeg_block" "#nocache;demux:mpeg_block" should always be appended to end of mrl. Remote mode must be enabled in VDR plugin. Some configuration options are not available when using third-party frontends. Using with other media players (mplayer, vlc, ...) Primary device video and audio can be streamed from plugin control port to almost any media player using http or rtsp. Session Announcement Protocol (SAP) compatible players should detect stream automatically and add it to playlist or bookmarks when RTP transmission is active (tested with vlc). Tested players: Linux: mplayer, vlc, xine Windows: vlc Examples: mplayer http://192.168.1.3:37890 vlc http://192.168.1.3:37890 vlc rtsp://192.168.1.3:37890 vlc rtp://@224.0.1.9:37890 Controlling VDR With local frontend, vdr-sxfe and vdr-fbfe: Keyboard input from console is mapped to VDR keyboard input. If VDR was compiled or configured without keyboard support, console keyboard input does not work. Keyboard input from X11 window is mapped to XKeySym remote. Keys are mapped to VDR keys in remote.conf file. Simple example of X11 key mappings is included in examples directory. It should be possible to use VDR's remote controller learning mode by pressing some key just after VDR has been started. Keyboard input can be disabled in configuration menu. There are separate entries for local and remote frontends. With xine-ui: Keyboard shortcuts and remote events from menus are automatically forwarded to VDR and translated to VDR keys. Translation to VDR keys is static and defined in xine_input_vdr.c. Frontend key bindings Esc Close frontend (vdr-fbfe / fdr-sxfe) Mouse left button double-click Toggle between fullscreen / window mode (vdr-sxfe only) Mouse right button click Toggle between normal window / always on top / borderless window (vdr-sxfe only) Close Window Close frontend (fdr-sxfe only) Image viewer key bindings Left/Prev Previous image Right/Next Next image Up/Down Jump 5 images forward/backward Yellow Delete current image Back Return to image list Stop/Blue Exit image viewer Play Start slide show Pause Stop slide show FastFwd/FastRew Start slide show; Increase/decrease slide show speed; Change slideshow direction Ok Toggle replay display mode Media player key bindings Back Return to file list Red Open playlist (music) / Jump to beginning of file (video) Green Jump 1 min back Yellow Jump 1 min forward Stop/Blue Stop replay 0 Random play / normal play 1, User8 Jump 20 s back 3, User9 Jump 20 s forward 2 Move subtitles up 5 Move subtitles down Pause Pause replay Play Play Ok Toggle replay display mode Next/Right Skip to next file when replaying playlist Prev/Left Skip to previous file when replaying playlist FastRew/FastFwd Play faster/slower DVD player key bindings Up/Down/Left/Right/Ok/Back DVD menu navigation when DVD menu is active Red Access DVD menu(s) Green Jump 1 min back Yellow Jump 1 min forward Stop/Blue/Back Stop replay Ok / Info Toggle replay display mode 1 / User8 Jump 20 s back 3 / User9 Jump 20 s forward Pause / Down Pause replay Play / Up Play 6 / Next, Next chapter 4 / Prev Previous chapter 9 Next title 7 Previous title Info Show progress display 2 Next subtitle track 5 Previous subtitle track FastRew/FastFwd, Left/Right Play faster/slower DVD playback DVD images Media player supports playing DVDs directly from hard disk. Found DVD folders are marked with 'D' in media player file list. Plugin detects folders as DVDs if there is file Name_Of_DVD/VIDEO_TS/VIDEO_TS.IFO. It is also possible to replay DVD as VDR recording by creating empty recording directory and renaming or symlinking .VOBs of selected title to 00?.vdr files. DVD menus (VTS_??_0.VOB) should _not_ be copied. Audio can be selected from main menu just as with normal VDR recordings. For seeking it is necessarily to create index.vdr file with genindex or similar tool. DVD discs "Real" DVD discs (accessible from /dev/dvd) can be played from xineliboutput plugin menu. In case of remote frontend (vdr-sxfe/vdr-fbfe) DVD drive of _remote client_ is used. Audio track can be selected from VDR audio track menu (keys "Menu" + "Green" or "Audio") or from DVD menu. Subtitle track can be selected from xineliboutput plugin menu, DVD menu or with keys "2" and "5". Aspect ratio setting There are 4 possible aspect ratio settings for display: default Aspect ratio is calculated from display resolution. 4:3 4:3 video is scaled to fill whole window; 16:9 video has black bars at top and bottom 16:9 16:9 video is scaled to fill whole window; 4:3 video has black bars at left and right. auto 4:3 and 16:9 are displayed as is; wider than 16:9 is displayed as 16:9. (useful with 16:9 TV if TV can switch between 16:9 and 4:3 -> 16:9 smart scaling) Shortcut key macros It is possible to change some settings and execute actions with user-defined key macros and VDR User? keys. Supported settings and corresponding key sequences in VDR keymacros.conf format are: Start replaying DVD (User? @xineliboutput kRed 0) Start replaying Title 1 from DVD (User? @xineliboutput kRed 1) Next DVD SPU track (User? @xineliboutput kRed 2) Toggle aspect ratio (User? @xineliboutput kRed 3) Toggle letterbox -> 16:9 cropping (User? @xineliboutput kRed 4) Toggle stereo -> 5.1 upmix (User? @xineliboutput kRed 5) Toggle 5.1 -> surround downmix (User? @xineliboutput kRed 6) Toggle de-interlacing (User? @xineliboutput kRed 7) Toggle local frontend on/off (User? @xineliboutput kRed 8) Start replaying default playlist or file pointed by symlink $(CONFDIR)/plugins/xineliboutput/default_playlist (User? @xineliboutput kRed 9) Xine-specific settings All xine-specific settings can be changed by editing file $(HOME)/.xine/config_xineliboutput. VDR Logo The VDR logo was designed by Jan Grell.