RE: [vdr] xineliboutput settings help.
I have a LCD projector with a native res of 800x600 connected via RGB So on your projector you have 4/3 aspect ratio, on 16/9 content (HD) you get 800x450. HD 720p content shows smaller, in the middle of the screen but looks amazing HD 1080i as well only fills the center of the screen and has Because SD works full screen, I think this is something what downscaler does. Have you tried multiple xineliboutput settings? How about xinelib settings if any? bad interlacing artifacts regardless of the deinterlacer settings I use. My video card is a nvidia 5500 I think with XVMC you don't get deinterlacing, because you forward sort of mpeg data to video card, and if videocard cannot do proper deinterlacing. Starting from Nvidia 6600 there is purevideo hardware deinterlacers which work ok on Windows side. On possible direction would be investigating xv_deinterlace if that can be used. But probably not with XVMC. BR, Jori ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
Re: [vdr] Parameter --manual-start/--timer-start (was: vdr shutdown handling / streamdev plugin)
Am Samstag, 2. Dezember 2006 16:24 schrieb Matthias Schwarzott: To manual start check I have another idea. Perhaps vdr can get a parameter for setting explicitly manual-start or start based on timer. Then the startskript could check the time that was written into nvram/acpi/wherever and tell vdr if start was manual or not. Matthias The attached patch does what you suggest, but I don't see any correlation to the shutdown behaviour of plugins... Tim diff -Nur vdr-1.4.0-pl8/vdr.c vdr-1.4.0/vdr.c --- vdr-1.4.0-pl8/vdr.c 2006-06-07 15:04:35.0 +0200 +++ vdr-1.4.0/vdr.c 2006-06-07 16:43:31.0 +0200 @@ -188,6 +188,8 @@ int WatchdogTimeout = DEFAULTWATCHDOG; const char *Terminal = NULL; const char *Shutdown = NULL; + bool TimerWakeup = false; + bool AutoShutdown = false; bool UseKbd = true; const char *LircDevice = NULL; @@ -230,6 +232,7 @@ { record, required_argument, NULL, 'r' }, { shutdown, required_argument, NULL, 's' }, { terminal, required_argument, NULL, 't' }, + { timerwakeup, no_argument,NULL, 'T' }, { user, required_argument, NULL, 'u' }, { version, no_argument, NULL, 'V' }, { vfat, no_argument, NULL, 'v' | 0x100 }, @@ -239,7 +242,7 @@ }; int c; - while ((c = getopt_long(argc, argv, a:c:dD:E:g:hk:l:L:mp:P:r:s:t:u:v:Vw:, long_options, NULL)) != -1) { + while ((c = getopt_long(argc, argv, a:c:dD:E:g:hk:l:L:mp:P:r:s:t:Tu:v:Vw:, long_options, NULL)) != -1) { switch (c) { case 'a': AudioCommand = optarg; break; @@ -330,6 +333,8 @@ case 'u': if (*optarg) VdrUser = optarg; break; + case 'T': TimerWakeup = true; +break; case 'V': DisplayVersion = true; break; case 'v' | 0x100: @@ -521,6 +526,7 @@ int LastTimerChannel = -1; int PreviousChannel[2] = { 1, 1 }; int PreviousChannelIndex = 0; + time_t vdrStartTime = time(NULL); time_t LastChannelChanged = time(NULL); time_t LastActivity = 0; time_t LastCamMenu = 0; @@ -772,6 +778,14 @@ if (time(NULL) - LastChannelChanged = Setup.ZapTimeout LastChannel != PreviousChannel[PreviousChannelIndex]) PreviousChannel[PreviousChannelIndex ^= 1] = LastChannel; // Timers and Recordings: +if (TimerWakeup Shutdown time(NULL) - vdrStartTime SHUTDOWNWAIT) { + if (LastActivity == 0) { + LastActivity = 1; + AutoShutdown = true; + } + else if (LastActivity != 1) + AutoShutdown = false; + } if (!Timers.BeingEdited()) { // Assign events to timers: Timers.SetEvents(); @@ -1037,7 +1051,7 @@ cTimer *timer = Timers.GetNextActiveTimer(); time_t Next = timer ? timer-StartTime() : 0; time_t Delta = timer ? Next - time(NULL) : 0; - if (Next Delta = Setup.MinEventTimeout * 60) { + if (Next Delta = Setup.MinEventTimeout * 60 !AutoShutdown) { char *buf; asprintf(buf, tr(Recording in %ld minutes, shut down anyway?), Delta / 60); bool confirm = Interface-Confirm(buf); @@ -1167,7 +1181,7 @@ Skins.Message(mtInfo, tr(Editing process finished)); } } -if (!Interact ((!cRecordControls::Active() !cCutter::Active() !cPluginManager::Active() (!Interface-HasSVDRPConnection() || UserShutdown)) || ForceShutdown)) { +if (!Interact ((!cRecordControls::Active() !cCutter::Active() !cPluginManager::Active() (!Interface-HasSVDRPConnection() || UserShutdown || AutoShutdown)) || ForceShutdown)) { time_t Now = time(NULL); if (Now - LastActivity ACTIVITYTIMEOUT) { // Shutdown: @@ -1185,13 +1199,14 @@ else LastActivity = 1; } - if (!Next || Delta Setup.MinEventTimeout * 60 || ForceShutdown) { + if (!Next || Delta Setup.MinEventTimeout * 60 || ForceShutdown || (AutoShutdown Delta Setup.MinEventTimeout * 60)) { ForceShutdown = false; +AutoShutdown = false; if (timer) dsyslog(next timer event at %s, *TimeToString(Next)); if (WatchdogTimeout 0) signal(SIGALRM, SIG_IGN); -if (Interface-Confirm(tr(Press any key to cancel shutdown), UserShutdown ? 5 : SHUTDOWNWAIT, true)) { +if (Interface-Confirm(tr(Press any key to cancel shutdown), UserShutdown ? 1 : SHUTDOWNWAIT, true)) { cControl::Shutdown(); int Channel = timer ? timer-Channel()-Number() : 0; const char *File = timer ?
[vdr] [PATCH] Fix EPG for UPC direct
UPC is a provider for middle european countries (Czechia, Hungary and Poland). They use iso6937-2 for encoding their EPG data so this looks quite strange in the vdr. The applied patch does a remapping to iso8859-2 so that characters are displayed correct. (Currently only tested with Czech and Hungarian, but should also work for Polish) While testing this with the help of an hungarian user, i also found out that the the codepage for Hungary must be 8859-2, not -1. The patch is work by Helmut Auer. cheers, Tim --- vdr-1.4.4-vanilla/epg.c 2006-10-28 11:12:42.0 +0200 +++ vdr-1.4/epg.c 2006-11-28 12:39:33.0 +0100 @@ -18,6 +18,165 @@ #define RUNNINGSTATUSTIMEOUT 30 // seconds before the running status is considered unknown +// UPC Direct / HBO strange two-character encoding. 0xC2 means acute, 0xCF caron. +// many thanks to the czechs who helped me while solving this. +void checkUPC( char *str ) +{ + char *s1 = str; + char *s2 = str; + char nc; + + if (!str) + return; + + while (*s1 != '\0') { + nc = *s1; + switch (*s1) { + case 0xC2: // acute: á é í ó ú ý +s1++; +switch (*s1) { + case 'A': nc = (char)0xC1; + break; + case 'a': nc = (char)0xE1; + break; + case 'E': nc = (char)0xC9; + break; + case 'e': nc = (char)0xE9; + break; + case 'I': nc = (char)0xCD; + break; + case 'i': nc = (char)0xED; + break; + case 'O': nc = (char)0xD3; + break; + case 'o': nc = (char)0xF3; + break; + case 'U': nc = (char)0xDA; + break; + case 'u': nc = (char)0xFA; + break; + case 'Y': nc = (char)0xDD; + break; + case 'y': nc = (char)0xFD; + break; + default: + s1--; + break; +} + break; + case 0xC6: +s1++; +switch (*s1) { + case 'S': nc = (char)0xA9; + break; + case 's': nc = (char)0xB9; + break; + default: + s1--; + break; +} +break; + case 0xC8: +s1++; +switch (*s1) { + case 'A': nc = (char)0xC4; + break; + case 'a': nc = (char)0xE4; + break; + case 'O': nc = (char)0xD6; + break; + case 'o': nc = (char)0xF6; + break; + case 'U': nc = (char)0xDC; + break; + case 'u': nc = (char)0xFC; + break; + default: + s1--; + break; +} +break; + case 0xCA: // krouzek http://de.wikipedia.org/wiki/Krouzek +s1++; +switch (*s1) { + case 'U': nc = (char)0xD9; + break; + case 'u': nc = (char)0xF9; + break; + default: + s1--; + break; +} +break; + case 0xCD: +s1++; +switch (*s1) { + case 'O': nc = (char)0xD5; + break; + case 'o': nc = (char)0xF5; + break; + case 'U': nc = (char)0xDB; + break; + case 'u': nc = (char)0xFB; + break; + default: + s1--; + break; +} +break; + case 0xCF: // caron +s1++; +switch (*s1) { + case 'C': nc = (char)0xC8; + break; + case 'c': nc = (char)0xE8; + break; + case 'D': nc = (char)0xCF; + break; + case 'd': nc = (char)0xEF; + break; + case 'E': nc = (char)0xCC; + break; + case 'e': nc = (char)0xEC; + break; + case 'L': nc = (char)0xC5;// not sure if they really exist. + break; + case 'l': nc = (char)0xE5; + break; + case 'N': nc = (char)0xD2; + break; + case 'n': nc = (char)0xF2; + break; + case 'R': nc = (char)0xD8; + break; + case 'r': nc = (char)0xF8; + break; + case 'S': nc = (char)0xA9; + break; + case 's': nc = (char)0xB9; + break; + case 'T': nc = (char)0xAB; +
Re: [vdr] Parameter --manual-start/--timer-start (was: vdr shutdown handling / streamdev plugin)
On Fri, Dec 08, 2006 at 08:21:07PM +0100, Thiemo Gehrke wrote: Am Samstag, 2. Dezember 2006 16:24 schrieb Matthias Schwarzott: To manual start check I have another idea. Perhaps vdr can get a parameter for setting explicitly manual-start or start based on timer. Then the startskript could check the time that was written into nvram/acpi/wherever and tell vdr if start was manual or not. Matthias The attached patch does what you suggest, but I don't see any correlation to the shutdown behaviour of plugins... What about a third possibility: the computer is started by Wake-on-LAN or Wake-on-Ring? It is kind of manual startup, but there should not be any output in that case. I have written a patch for making the Power key suspend the output. Some softdevice users have found it useful, but I've been told that the patch does not stop playback on full-featured cards. You can access the patch here: http://www.iki.fi/~msmakela/software/vdr/#suspend Quoting from there: The patch introduces three 'Setup/Miscellanous' menu items. The Booleans 'Power button suspends playback' and 'Playback suspended' should be self-explanatory. The integer, 'Suspend to shutdown timeout (s)', is 0 by default, meaning that no shutdown will be initiated when playback is suspended by pressing the Power button. If you would like to use the Power button as a smart power-off button that works in any context, set this timeout to a suitable value, e.g., five seconds. Should you only want to suspend playback and not power the system off, you can press Power followed by OK. The latter button-press will confirm the 'Press any key to cancel shutdown prompt' if one is presented. (If any timed recordings are in progress, the prompt will be presented after they have finished, unless the shutdown was cancelled by pressing any button.) I originally made the patch for vdr 1.3.32, and back then it was too late to change the shutdown behaviour of 1.4. I hope that the feature will make it to 1.5 in some form. Marko ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
[vdr] Mplayer Frontend for xineliboutput?
Is there any way to use Mplayer as the frontend to xineliboutput? This might be a stupid question, but the a/v sync problems are unacceptable with the existing front end vdr-sxfe, unless someone has a way to get xine-lib 1.1.1 to compile with xvmc support (1.1.2++ apparently introduced the a/v sync issues or so I read?) Otherwise xineliboutput works well. ___ vdr mailing list vdr@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr