Re: [vdr] Q: Fanless VDR streaming client ?

2008-01-06 Thread Torgeir Veimo

On 6 Jan 2008, at 21:12, Harald Milz wrote:

 - what else?

The VIA S3 Chrome S27 looks interesting. If the unichrome /  
openchrome / viaexp can be used to do HW assisted H.264 decoding with  
this (pci-e) board, see http://www.mythtv.org/wiki/index.php/XvMC#Unichrome 
, it could be interesting as an easy upgrade similar to the reelbox H. 
264 capable card. I think this card already accelerates mpeg2 decoding  
with the current drivers.

-- 
Torgeir Veimo
[EMAIL PROTECTED]




___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


[vdr] How To use DeviceStillPicture ?

2008-01-06 Thread Martin Dauskardt
I have seen that plugins use this in a different way.

For example in this order:
DevicePlay
DeviceStillPicture
DeviceFreeze
So the next action to display a new Stillimage would start with DevicePlay

Others call neither Freeze nor Play. The dvd-Plugin calls DeviceClear and 
DevicePlay before DeviceStillPicture.

I remember that Klaus once stated that DeviceStillPicture could be seen as a 
trickmode, so that always a Play has to follow to resume from trickmode. But 
is it necessary to Freeze the Stillpicture before?

And I wonder: How should a device plugin handle the StillPicture function? Is 
it necessary that StillPicture also calls a Clear()  to clear the internal 
decoder buffers? It looks like that vdr is not doing this in dvbdevice.c, 
although I am not sure if  the av7110 ioctl VIDEO_STILLPICTURE does 
internally clear the buffers. 

I noticed problems when both plugins (that one that uses DeviceStillPicture 
and the device plugin) do a Clear() at the same time. 


___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] vdr-xine-0.8.1 plugin

2008-01-06 Thread Arthur Konovalov
This doesn't directly concern xine plugin, but maybe anybody can help me.

Trying to update xine plugin and got xine-ui compile problem like this:

gcc -I/usr/local/include  -I/usr/include/readline 
-I../../src/xitk/xine-toolkit -Wall -D_FILE_OFFSET_BITS=64 
-Wpointer-arith -Wnested-externs -Wcast-align -Wchar-subscripts 
-Wmissing-declarations -Wmissing-prototypes  -I/usr/local/include 
-DNDEBUG -Wformat=2 -Wno-format-zero-length -Wmissing-format-attribute 
-Wstrict-aliasing=2   -o xine-remote  xine_remote-network.o  -lnsl 
-lpthread -lreadline ../../src/common/libcommon.a
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so: 
undefined reference to `PC'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so: 
undefined reference to `tgetflag'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so: 
undefined reference to `tgetent'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so: 
undefined reference to `UP'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so: 
undefined reference to `tputs'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so: 
undefined reference to `tgoto'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so: 
undefined reference to `tgetnum'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so: 
undefined reference to `BC'
/usr/lib/gcc/i486-slackware-linux/4.1.2/../../../libreadline.so: 
undefined reference to `tgetstr'
collect2: ld returned 1 exit status
make[4]: *** [xine-remote] Error 1
make[4]: Leaving directory `/usr/local/src/xine-ui/src/xitk'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/usr/local/src/xine-ui/src/xitk'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/local/src/xine-ui/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/xine-ui'
make: *** [all] Error 2


Please any hint to solve this.

AK

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] How To use DeviceStillPicture ?

2008-01-06 Thread Klaus Schmidinger
On 01/06/08 14:13, Martin Dauskardt wrote:
 I have seen that plugins use this in a different way.
 
 For example in this order:
   DevicePlay
   DeviceStillPicture
   DeviceFreeze
 So the next action to display a new Stillimage would start with DevicePlay
 
 Others call neither Freeze nor Play. The dvd-Plugin calls DeviceClear and 
 DevicePlay before DeviceStillPicture.
 
 I remember that Klaus once stated that DeviceStillPicture could be seen as a 
 trickmode, so that always a Play has to follow to resume from trickmode. But 
 is it necessary to Freeze the Stillpicture before?
 
 And I wonder: How should a device plugin handle the StillPicture function? Is 
 it necessary that StillPicture also calls a Clear()  to clear the internal 
 decoder buffers? It looks like that vdr is not doing this in dvbdevice.c, 
 although I am not sure if  the av7110 ioctl VIDEO_STILLPICTURE does 
 internally clear the buffers. 

Incidentally I'm currently writing a simple picture viewer plugin,
and there I just call DeviceStillPicture() without anything else.

In order to make the FF-DVB cards display both frames of a still
picture (thus avoiding jagged lines) you may want to apply the
following patch to the driver:


--- av7110_av.c 2007-12-30 12:59:44.0 +0100
+++ av7110_av.c 2007-12-31 11:19:41.0 +0100
@@ -1125,6 +1125,8 @@
dvb_ringbuffer_flush_spinlock_wakeup(av7110-avout);
ret = play_iframe(av7110, pic-iFrame, pic-size,
  file-f_flags  O_NONBLOCK);
+   if (!ret)
+   ret = vidcom(av7110, AV_VIDEO_CMD_FREEZE, 1);
break;
}


Klaus

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] DVB-S2 + H.264 support for VDR-1.5.12

2008-01-06 Thread Gregoire Favre
On Sat, Jan 05, 2008 at 06:53:48PM +0100, Reinhard Nissl wrote:

Hello,

with the last patch, VDR refuse to tune to any DVB-S2 channels.
I guess that VDR thinks all my card are only DVB-S ones.
I get Channel not available! on all DVB-S2 channels.

Any maybe not directly interesting, but with this patch, graphlcd
make vdr segault at start.

Thanks,

 The attached version implements this behavior now. You may want
 to experiment a bit with the decision logic as explained below.
 
 The decision is based on the number of modulation systems a card
 provides. For example, my NOVA-S provides one (DVB-S) and my
 SkyStar HD provides three (DVB-S, DVB-DSS, DVB-S2).
 
 The decision logic is implemented in cDevice::GetDevice(), so
 have a look into device.c. After applying the patch, you'll find
 two lines in that function marked with comments like /*1*/ and
 /*2*/, and the latter one was disabled by a line comment.
 
 In my scenario with just the above cards and vdr-xine as software
 device, watching a channel requires VDR to operate in transfer
 mode. Therefore it selects a device which provides for example a
 DVB-S channel. The patched version will choose the NOVA-S with
 either implementation /*1*/ or /*2*/.
 
 Let's then start a DVB-S recording on a different transponder.
 When implementation /*2*/ would be active, VDR would choose the
 SkyStar HD, as the NOVA-S is claimed by transfer mode. Then, try
 to switch to a DVB-S2 channel. It wouldn't work, as the SkyStar
 HD would be claimed by a DVB-S recording.
 
 That's why I've chosen implementation /*1*/ as default. For the
 above scenario, starting a DVB-S recording on a different
 transponder will choose the NOVA-S and kick off transfer mode.
 Then VDR will look for a card to set up transfer mode again and
 it will choose the only remaining card, the SkyStar HD. If you
 then try to switch to a DVB-S2 channel, it will work as the
 SkyStar HD is not claimed by a recording.
 
  The patch is incremental to the original dvbs2 patch from
  yesterday, i. e. you can simply apply it to your already patched VDR.
 
 Bye.
 -- 
 Dipl.-Inform. (FH) Reinhard Nissl
 mailto:[EMAIL PROTECTED]

 --- ../vdr-1.5.12-dvbs2-other/device.c2008-01-01 22:55:18.0 
 +0100
 +++ device.c  2008-01-05 18:06:15.0 +0100
 @@ -359,6 +359,21 @@ cDevice *cDevice::GetDevice(int Index)
return (0 = Index  Index  numDevices) ? device[Index] : NULL;
  }
  
 +inline int GetClippedModulationSystemCount(int AvailableBits, cDevice 
 *Device)
 +{
 +  int ModulationSystemCount = Device-ModulationSystemCount();
 +  int MaxModulationSystemCount = 1  AvailableBits;
 +  if (ModulationSystemCount  MaxModulationSystemCount) {
 + esyslog(ERROR: device %d supports %d modulation systems but 
 cDevice::GetDevice() currently only supports %d modulation systems which 
 should be fixed, Device-CardIndex() + 1, ModulationSystemCount, 
 MaxModulationSystemCount);
 + ModulationSystemCount = MaxModulationSystemCount;
 + }
 +  else if (ModulationSystemCount = 0) {
 + esyslog(ERROR: device %d reported an invalid number (%d) of supported 
 modulation systems. The device should be fixed to return at least 1, 
 Device-CardIndex() + 1, ModulationSystemCount);
 + ModulationSystemCount = 1;
 + }
 +  return ModulationSystemCount;
 +}
 +
  cDevice *cDevice::GetDevice(const cChannel *Channel, int Priority, bool 
 LiveView)
  {
// Collect the current priorities of all CAM slots that can decrypt the 
 channel:
 @@ -408,11 +423,13 @@ cDevice *cDevice::GetDevice(const cChann
   imp = 1; imp |= LiveView ? !device[i]-IsPrimaryDevice() || 
 ndr : 0;  // prefer the primary device for 
 live viewing if we don't need to detach existing receivers
   imp = 1; imp |= !device[i]-Receiving()  (device[i] != 
 cTransferControl::ReceiverDevice() || device[i]-IsPrimaryDevice()) || ndr; 
 // use receiving devices if we don't need to detach existing receivers, but 
 avoid primary device in local transfer mode
   imp = 1; imp |= device[i]-Receiving();   
 // avoid devices that are receiving
 +/*1*/imp = 2; imp |= GetClippedModulationSystemCount(2, device[i]) 
 - 1;// avoid cards which support multiple 
 modulation systems
   imp = 1; imp |= device[i] == 
 cTransferControl::ReceiverDevice();  // 
 avoid the Transfer Mode receiver device
   imp = 8; imp |= min(max(device[i]-Priority() + MAXPRIORITY, 
 0), 0xFF);   // use the device with the lowest 
 priority (+MAXPRIORITY to assure that values -99..99 can be used)
   imp = 8; imp |= min(max((NumUsableSlots ? SlotPriority[j] : 
 0) + MAXPRIORITY, 0), 0xFF);  // use the CAM slot with the lowest 
 priority (+MAXPRIORITY to assure that values -99..99 can be used)
   imp 

Re: [vdr] [ANNOUNCE] DVB-S2 + H.264 support for VDR-1.5.12

2008-01-06 Thread Reinhard Nissl
Hi,

Gregoire Favre schrieb:

 with the last patch, VDR refuse to tune to any DVB-S2 channels.
 I guess that VDR thinks all my card are only DVB-S ones.
 I get Channel not available! on all DVB-S2 channels.

Please add some debug code to cDvbDevice::ProvidesTransponder()
to find out what's going wrong in your case, i. e. compare the
provided and requested modulation systems.

 Any maybe not directly interesting, but with this patch, graphlcd
 make vdr segault at start.

Did you recompile all plugins as a virtual function had been added?

Please provide a backtrace otherwise.

Bye.
-- 
Dipl.-Inform. (FH) Reinhard Nissl
mailto:[EMAIL PROTECTED]

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] DVB-S2 + H.264 support for VDR-1.5.12

2008-01-06 Thread Reinhard Nissl
Hi,

Reinhard Nissl schrieb:

 The patches now include my recently released speedup patches as
 well as an unreleased speedup patch for cAudioRepacker and
 cVideoRepacker, because at least the latter one would have been
 hard to extract separately.
 
 cAudioRepacker speedup patch contains a typo. Please apply the
 attached fix.

The optimized DrawRectangle() will crash when called with
incorrect coordinates, i. e. x1  x2 or y1  y2.

More generally such issues should be handled in Intersects() and
Covers(). The attached patch adds sanity checks to them.

Thanks to Claus Meder for reporting this issue.

Bye.
-- 
Dipl.-Inform. (FH) Reinhard Nissl
mailto:[EMAIL PROTECTED]
--- ../vdr-1.5.12-dvbs2-other/osd.c	2008-01-01 22:55:18.0 +0100
+++ osd.c	2008-01-06 22:39:33.0 +0100
@@ -217,6 +217,8 @@ bool cBitmap::Contains(int x, int y) con
 
 bool cBitmap::Covers(int x1, int y1, int x2, int y2) const
 {
+  if (x1  x2 || y1  y2) // sanity check
+ return false;
   x1 -= x0;
   y1 -= y0;
   x2 -= x0;
@@ -226,6 +228,8 @@ bool cBitmap::Covers(int x1, int y1, int
 
 bool cBitmap::Intersects(int x1, int y1, int x2, int y2) const
 {
+  if (x1  x2 || y1  y2) // sanity check
+ return false;
   x1 -= x0;
   y1 -= y0;
   x2 -= x0;
___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] [ANNOUNCE] DVB-S2 + H.264 support for VDR-1.5.12

2008-01-06 Thread Gregoire Favre
On Sun, Jan 06, 2008 at 09:34:32PM +0100, Reinhard Nissl wrote:
 Hi,

Hello :-)

 Please add some debug code to cDvbDevice::ProvidesTransponder()
 to find out what's going wrong in your case, i. e. compare the
 provided and requested modulation systems.

I'll do tomorrow ;-)

  Any maybe not directly interesting, but with this patch, graphlcd
  make vdr segault at start.
 
 Did you recompile all plugins as a virtual function had been added?
 
 Please provide a backtrace otherwise.

The two fix solve it :-) (not the non tunable DVB-S2).

Thanks,
-- 
Grégoire FAVRE  http://gregoire.favre.googlepages.com  http://www.gnupg.org
   http://picasaweb.google.com/Gregoire.Favre

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


[vdr] ERROR: can't set PID xxxx on device y

2008-01-06 Thread Petri Helin
Hi,

since VDR became subtitles aware some months ago, I have been getting 
this kind of entries in the log:

Jan  6 23:02:48 vdr vdr: [4506] ERROR: can't set PID 2027 on device  9

PID 2027 is for a finnish subtitles stream.

I cannot see anything failing or such when this entry appears, but just 
thought to let Klaus know about it, in case it would make some sense to him.


Here is a longer snippet of the log around that time:

Jan  6 23:00:36 vdr vdr: [7319] subtitleConverter thread started 
(pid=4506, tid=7319)
Jan  6 23:02:31 vdr vdr: [4513] channel 1 (TV1) event Su  06.01.2008 
23:05-23:28 'Ponille kyytiä' status 4
Jan  6 23:02:47 vdr vdr: [4513] changing pids of channel 2 from 
513+513:660=fin:2027=fin,2028=dut:2321 to 513+513:660=fin:2027=fin:2321
Jan  6 23:02:47 vdr vdr: [4506] retuning due to modification of channel 2
Jan  6 23:02:47 vdr vdr: [4506] switching to channel 2
Jan  6 23:02:47 vdr vdr: [7257] transfer thread ended (pid=4506, tid=7257)
Jan  6 23:02:47 vdr vdr: [7319] subtitleConverter thread ended 
(pid=4506, tid=7319)
Jan  6 23:02:47 vdr vdr: [4506] buffer stats: 110920 (5%) used
Jan  6 23:02:48 vdr vdr: [4506] buffer stats: 0 (0%) used
Jan  6 23:02:48 vdr vdr: [4506] ERROR: can't set PID 2027 on device 9
Jan  6 23:02:48 vdr vdr: [7340] transfer thread started (pid=4506, tid=7340)
Jan  6 23:02:49 vdr vdr: [4506] buffer stats: 0 (0%) used


-Petri

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] ERROR: can't set PID xxxx on device y

2008-01-06 Thread Reinhard Nissl
Hi,

Petri Helin schrieb:

 since VDR became subtitles aware some months ago, I have been getting 
 this kind of entries in the log:
 
 Jan  6 23:02:48 vdr vdr: [4506] ERROR: can't set PID 2027 on device  9
 
 PID 2027 is for a finnish subtitles stream.
 
 I cannot see anything failing or such when this entry appears, but just 
 thought to let Klaus know about it, in case it would make some sense to him.

I came across this log message today, too. Looks like
SetCurrentSubtitleTrack() calls AttachReceiver() on the
PrimaryDevice() which is cXineDevice in my case.

 (gdb) bt
 #0  0x080bbabb in cDevice::AddPid (this=0xb44c49f8, Pid=131, PidType=ptOther) 
 at device.c:612
 #1  0x080bbc00 in cDevice::AttachReceiver (this=0xb44c49f8, 
 Receiver=0xb44e2078) at device.c:1502
 #2  0x080be272 in cDevice::SetCurrentSubtitleTrack (this=0xb44c49f8, 
 Type=ttSubtitle, Manual=false) at device.c:1052
 #3  0x080be3b4 in cDevice::EnsureSubtitleTrack (this=0xb44c49f8) at 
 device.c:1104
 #4  0x080be58d in cDevice::SetAvailableTrack (this=0xb44c49f8, 
 Type=ttSubtitle, Index=0, Id=131, Language=0x82529c8 deu, Description=0x0) 
 at device.c:984
 #5  0x080bf0cb in cDevice::SetChannel (this=0xb44c49f8, Channel=0x82526c8, 
 LiveView=true) at device.c:845
 #6  0x080bf1ae in cDevice::SwitchChannel (this=0xb44c49f8, Channel=0x82526c8, 
 LiveView=true) at device.c:735
 #7  0x080a59bd in cChannels::SwitchTo (this=0x81a9880, Number=2) at 
 channels.c:1201
 #8  0x08158988 in main (argc=14, argv=0xbf993d34) at vdr.c:762

Looks like Transferring() isn't set at that time and therefore a
cLiveSubtitle instance is created although none is needed in
transfer mode (which is the only way how my setup works).

 1048  if (currentSubtitleTrack != ttNone  !Replaying()  
 !Transferring()) {
 1049 const tTrackId *TrackId = GetTrack(currentSubtitleTrack);
 1050 if (TrackId  TrackId-id) {
 1051liveSubtitle = new cLiveSubtitle(TrackId-id);
 1052AttachReceiver(liveSubtitle);
 1053}
 1054 }

Bye.
-- 
Dipl.-Inform. (FH) Reinhard Nissl
mailto:[EMAIL PROTECTED]

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr


Re: [vdr] Q: Fanless VDR streaming client ?

2008-01-06 Thread Simon Baxter
What fanless solution are you using?

I have an EPIA SP-13000G motherboard in a Serener GA-L01, all fanless and no 
moving parts apart from a 120G 2.5 laptop drive.  The thing runs too hot 
though - even with the 5% cpu mp3-plugin, the cooling fins get quite hot.

I have a TT-2300-C with CAM/CI.  Picture quality is good (MPEG2 only though)


- Original Message - 
From: Harald Milz [EMAIL PROTECTED]
To: VDR Mailing List vdr@linuxtv.org
Sent: Monday, January 07, 2008 12:12 AM
Subject: [vdr] Q: Fanless VDR streaming client ?


Hi,

my current VDR works fine with 3 Sat cards and a fanless case so far -
but the case is quite bulky, and since I'm going to move to a new home
shortly, I am looking for a nice fanless streaming solution. Xine-plugin
works fine so far, and I can use Reinhard's patched xine player on
my laptop nicely.  The best part of this solution is that you get a
completely remote box including OSD and recording playback (albeit
without burning DVDs or something on the client but so be it).

My new solution should be able to handle to following requirements:

- decode 1080p / H.264 (just in case this becomes widely available in the 
future...).
- DVI or HDMI out up to 1080p
- S/PDIF out incl. AC3 passthrough.
- display the VDR server's OSD as if it were local
- control the VDR server with an IR remote (via LIRC or whatever).

(aside: a 100 mbit network should be able to handle a HDTV stream - right?)

I see several options so far:

- re-use my old AMD64 3200+ (2 GHz single core S939), Asus A8V (full
  size ATX w/ AGP)  and a fanless Nvidia card in a new HTPC case with a
  heatpipe cooler. Nice for the moment but unlikely to be able to handle
  HDTV decoding. Or is it? (such cases aren't exactly cheap ...). Since
  ffmpeg isn't multithreading capable yet (last time I looked), a
  dual-core CPU makes little sense. Needs a full size case anyway due
  to the AGP card (low-profile passive cooled AGP card anyone?). Bulky.

- build a new streaming client with a Via Epia EX board (CX700M2 w/ MPEG4
  decoding support). At the moment the viaexp driver is required (unichrome
  and openchrome don't seem to cut it), and
  one needs the Via patched xine that AFAIK does not support netvdr:/
  MRLs. Has anyone tried to patch the Via xine to do that? Is it
  stable? Is the fanless 1 GHz CPU sufficient for HD decoding, or is
  the fan-cooled 1.5 GHz CPU required?

- same board running Windows XP (yuck) and a Windows player. Which windows
  player will handle the OSD correctly  (or rather: which VDR plugin does
  it talk to that sends the OSD correctly, like xine-plugin) and use the
  MPEG4 hardware decoder? Vlc?

- µATX board like Abit AN-M2 w/ AMD64 BE-2350 CPU (as for dual-core see
  above but these CPUs are quite efficient) and a µATX heatpipe case (which
  one)? Little MPEG4 hardware support.

- standalone HDTV multimedia player. There are several players built around
  a Sigma EM8620/21/22 chip but which one will handle a http or vtp
  stream? Streamdev-server or ffnetdev or xine-plugin or xineliboutput?

- what else? what are you using?

-- 
Nihilism should commence with oneself.

___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr



___
vdr mailing list
vdr@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr