1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
|
This is a "plugin" for the Video Disk Recorder (VDR).
Written by: Petri Hintukainen <phintuka@users.sourceforge.net>
Project's homepage: http://www.sourceforge.net/projects/xineliboutput
Latest version available at: http://prdownloads.sourceforge.net/xineliboutput/
See the file COPYING for license information.
Description
X11 and Linux framebuffer front-end for VDR.
Plugin displays video and OSD in X/Xv/XvMC window,
Linux framebuffer/DirectFB/vidixfb or DXR3 card.
Support for local and remote frontends.
Built-in image and media player supports playback of most known
media files (avi/mp3/divx/jpeg/...), DVDs and radio/video streams
(http, rtsp, ...) directly from VDR.
Requirements
- vdr-1.4.0 or later
(vdr is required only at server side)
- 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
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". Building frontends is possible without VDR.
Only xine-lib (and corresponding development package or headers)
are required.
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.
PLUGIN WILL NOT WORK UNLESS ALL FILES HAVE BEEN INSTALLED !
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=xshm --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 [xshm | xv | xvmc | xxmc | vidix |
XDirectFB | opengl | sdl | none [:display]]
Examples:
--video xv
--video xvmc:127.0.0.1:1.0
With framebuffer frontend (vdr-fbfe):
--video [fb | DirectFB | sdl | vidixfb | dxr3 | aadxr3 | none [:fb_device]]
Examples:
--video DirectFB
--video fb:/dev/fb/1
--video vidixfb
--video aadxr3
De-interlacing
If deinterlacing post plugin options are not given at command line,
deinterlacing is controlled by VDR plugin configuration menu settings.
De-interlacing can also be forced on or off 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"
Disable deinterlacing:
vdr-sxfe --post tvtime:enable=0
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 (without OSD or subtitles)
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.
Learning mode does not work with remote frontends.
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 xine 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
If media file includes multiple subtitles (DVD, .mkv file, ...),
subtitle language can be selected from xineliboutput plugin menu
or with "Select subtitle track" key macro.
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, from DVD menu, with keys "2" and "5" or from subtitle
menu (using "Select subtitle track" key macro).
Aspect ratio setting
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.
16:10
auto 4:3 and 16:9 are scaled to fill whole window.
(useful if TV can "smart scale" 4:3 video to 16:9)
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 Red 0)
Start replaying Title 1 from DVD (User? @xineliboutput Red 1)
Select subtitle track (User? @xineliboutput Red 2)
Toggle aspect ratio (User? @xineliboutput Red 3)
Toggle letterbox -> 16:9 cropping (User? @xineliboutput Red 4)
Toggle stereo -> 5.1 upmix (User? @xineliboutput Red 5)
Toggle 5.1 -> surround downmix (User? @xineliboutput Red 6)
Toggle de-interlacing (User? @xineliboutput Red 7)
Toggle local frontend on/off (User? @xineliboutput Red 8)
Start replaying default playlist or file pointed by symlink
$(CONFDIR)/plugins/xineliboutput/default_playlist
(User? @xineliboutput Red 9)
Defining "Select subtitle track" macro key enables VDR-style
subtitle track menu for media player (identical to audio track
selection with VDR "Audio" key).
Special LIRC keys
If plugin is compiled with macro INTERPRET_LIRC_KEYS defined, following
LIRC keys are interpreted by vdr-sxfe/vdr-fbfe:
Fullscreen Toggle fullscreen state
Deinterlace Toggle deinterlacing
Quit Close program
Xine-specific settings
All xine-specific settings can be changed by editing file
$(HOME)/.xine/config_xineliboutput.
Slave mode
vdr-sxfe and vdr-fbfe implement simple slave mode. Slave mode is
activated with command-line option --slave. In slave mode program reads
CRLF-terminated commands from standard input instead of using keyboard
as VDR remote controller. Supported commands are:
HITK <vdrkey> Send key press event to VDR
FULLSCREEN Toggle fullscreen state
DEINTERLACE Toggle deinterlacing
QUIT Close program
VDR Logo
The VDR logo was designed by Jan Grell.
|