RE: [vdr] xineliboutput settings help.

2006-12-08 Thread jori.hamalainen
 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)

2006-12-08 Thread Thiemo Gehrke
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

2006-12-08 Thread Thiemo Gehrke
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)

2006-12-08 Thread Marko Mäkelä
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?

2006-12-08 Thread Dave
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