PvrWeb: Running VDR as backend / frontend - PvrWeb

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Running VDR as backend / frontend

#1 User is offline   Edster

  • Moderator
  • PipPipPip
Group:
Admin
Posts:
1,005
Joined:
04-September 03
Location:
Dublin

Posted 08 September 2008 - 02:31 PM

I decided to have 2 vdr boxes. A backend server with multiple tuner cards and lots of disk space and a frontend server sitting with the TV which is small, neat and quiet.

I wanted to take the big pc away from the tv area but still keep all of the look / feel / functions so I did not want to use a MVP or similar set top box - I wanted a small pc.

I bought an AOpen XC Cube EA 65-II on ebay (thank you :))
It is a nice little box. 2 card slots at the back. One AGP and one PCI.
It also has a video card built in (so the AGP video card instantly came out to go to other uses)
Built in Ethernet, 5.1 sound card loads of USB, 1 GB memory, DVD Burner, and.... an IR receiver. Good stuff.

I booted it up took down some of the settings from the copy of MythBuntu that was installed and wiped it clean.
Reloaded with Gentoo and the standard Gentoo VDR pacakges.
Very easy.... very nice (thanks Gentoo-VDR team)
I'll update the last guide for gentoo on here soon.

Now comes splitting it into frontend and backend.

The first thing I did was to share the recordings directory. This would allow me to use the more powerful machine to do the recordings but play them back on the nice stb (set top box).
The next step was to get the timers to display and to work over the two boxes.
The backend server was headless (I had no monitor or keyboard or tv on it). I wanted to set up timers or hit record on the front end box and for this to be transferred to the back end and then ignored by the frontend.
I played with RemoteTimers plugin but I wanted to get the times on the frontend box. I use the EnigmaNG theme and this displays timers on the right hand side. I wanted them listed in there.

My current version (still being worked on) is as follows :

I have shared the timers file by having one copy on a shared drive and linking both machines to it with something like

ln -s /mnt/share/vdr/timers.conf /etc/vdr/timers.conf

I then had to patch the frontend box as it has a TV card and I didn't want it to record off the timers.

I added this file /usr/local/src/patches/1.6.0/vdr-no-record.patch
--- original/vdr.c	  2008-09-02 13:56:16.000000000 +0100
+++ vdr.c	   2008-09-02 14:03:57.000000000 +0100
@@ -795,6 +795,9 @@
		 if (Now - LastChannelChanged >= Setup.ZapTimeout && LastChannel != PreviousChannel[PreviousChannelIndex])
			PreviousChannel[PreviousChannelIndex ^= 1] = LastChannel;
		 // Timers and Recordings:
+	   /* -------------------------------- //
+	   // removed to stop device recording //
+	   // -------------------------------- //
		 if (!Timers.BeingEdited()) {
			// Assign events to timers:
			Timers.SetEvents();
@@ -892,6 +895,10 @@
			// Delete expired timers:
			Timers.DeleteExpired();
			}
+	   // ------------------ //
+	   // End of removed bit //
+	   // -------------------*/
+
		 if (!Menu && Recordings.NeedsUpdate()) {
			Recordings.Update();
			DeletedRecordings.Update();
@@ -1058,8 +1065,8 @@
		   // Instant recording:
		   case kRecord:
				if (!cControl::Control()) {
-				  if (cRecordControls::Start())
-					 Skins.Message(mtInfo, tr("Recording started"));
+				  // if (cRecordControls::Start())
+				  Skins.Message(mtInfo, tr("SKIPPED - Recording started"));
				   key = kNone; // nobody else needs to see this key
				   }
				break;
@@ -1115,8 +1122,8 @@
								Skins.Message(mtError, tr("No free DVB device to record!"));
							 break;
			  case osRecord: DELETE_MENU;
-							if (cRecordControls::Start())
-							   Skins.Message(mtInfo, tr("Recording started"));
+							// if (cRecordControls::Start())
+							Skins.Message(mtInfo, tr("SKIPPED - Recording started"));
							 break;
			  case osRecordings:
							 DELETE_MENU;


and recompiled vdr and it does the trick.
It now ignores everything in the timers file.

I found a great plugin while doing this : vdr-suspendoutput
I have put this on the backend to make sure it is not reserving a DVB card for the tv output of the current channel even though there is no tv on it.

TODO -

* I set it to not remove old timers. I thought I would leave this to the backend box. This works but the timers stay on the front end box until I restart it and it rereads the file. I need to get a way for it to reread the timers file (like the /video/.update file)

* I have disabled pressing 'record'. I want to change this to deploy a timer to the other box.

* You can still press 'pause' and this records on the frontend box. Again this should be passed or give you the option.

When I get time I'll see what I can add.
If you use this please let me know how you get on with it.
Any suggestions to the usual address or tag them on here.
0

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users