Message edited, I cant change the thread title or delete this, but I figured my the input source issue, who knew the composite would be tuner #1 and the tuner be #2 on the HVR-2250. Geeze!
-------------------
Not really NPVR related, but since I already created this thread, when I click on the BlastCfg.exe to set up my Motorola STB, I don't get any options except learning (which is normally "Advanced" but which now is grayed out).
The only options I have under vendor are "User Learning" (see attachment)
I tried to copy over my BlastCfg.xml and even the Blastcfg.exe from the windows Xp machine, but it does not work.
I've added some new channels to my DVB-S card in NPVR, and added them to XMLTV's list to download from UKRT.
Although the channels automatically got added (with listings) to the GBPVR TV guide, they are not even available to map in NPVR. I can still map the channels from the first time I configured NPVR to use XMLTV, but the extra channels aren't available in the drop down menu.
Tried deleting data.xml and making a new one, update EPG, restart recording service, reboot... etc.
I have a huge pile of Hauppauge 45 remotes, but due to a recent upgrade I can't get IR32 to work anymore.
Can anyone recommend a simple replacement remote system? Would I need something like a USB remote sensor and EventGhost, or is there a simpler way? Anywhere I can download an EventGhost (or similar) setup?
Ideally I'd like to keep using the Hauppauge 45, but am also open to change.
Just wondering can anyone help with this. I recently removed my old Nova-T 90002 to replace with a Nova-HD S2. I now have:
Nova-HD S2
Nova-DT 500
When I connect the IR sensor to the Nova-HD, nothing happens. When I connect to the Nova-DT, it seems to bypass Hauppauge's IR32 application and act as an MCE remote. It opens Windows Media Centre, and ignores all the NPVR mappings.
Looking for some help for a newbie. I am having problems getting my set up to work. Here is what I have, TWC and HVR2250 MCE, WinXP 32bit. I split the cable coax from the wall, 1 split to the box, 1 split to the main 2250 board. I took the component video from the box, the green cable, plugged it into the rca connector on the daughter board, then I connected the l/r audio from the box component to the daughter board, via rca to 3.5 mm connector. I dl'd the latest NPVR, installed it, when to set it up, my analog devices were not there. I installed WinTV 7.2, that fixed the problem. Now I have 6 devices showing, 2x analog, 2x qam, 2x atsc. How do I add channels for the analog, I see the add channels button but what do I input, what the actual channel is, won't this take a long time? Secondly, when I scan for channels I get nothing from ATSC and only 24.x to 120.x from QAM. I have looked at the wiki and it wasn't much help at that point. I also searched the forum, but no one was having such basic problems as myself. Any help would be appreciated, just spent several hours getting no where.
What rules govern the automatic cleanup of recordings?
Currently, my postprocessing script uses TsRemux to remux ts files generated by my HD-PVR (for the purpose of having files that will play back on PS3). So the end result is that, for each one of those recordings, I end up with both:
<filename>.ts
<filename>.m2ts
and a whole bunch of files that comskip generates, of various extensions.
When the automatic cleanup kicks in, everything gets deleted when it should (as per the recurring recording's retention spec) except for <filename>.m2ts. When I initially started using TsRemux to create these extra files I hoped that NPVR would just automatically manage them the way that it does all the other files, but it didn't and now I am growing weary of manually cleaning up my recordings directories.
Is there a way NPVR can just nuke everything with the same filename, regardless of extension? or some other way to configure automatic management of these extra files.
I realize I dug my own grave by getting creative with the postprocessing script but was hoping I could get thrown a bone on this one.
Is it possible to play MPG files in NPVR? I have registered MCEMpgMux.ax but this does not seem to make a difference. Wondering if it is even possible?
Hi,
I'm trying to connect to npvr's web service to schedule a recording.
I translated to Delphi Prism and compiled the code from webServiceAuthentication.cs, and I get the R, RL, RTL values. I copy them to my web services client application to test, but I get "unauthorized" every time. Here is the code, can you please take a look and tell me what I'm doing wrong (hashMe the two Encrypt and button1_Click which creates R, RL, RTL). The code is just copied from webServiceAuthentication.cs and I think it should work... but it doesn't. What am I missing?
Code:
namespace WindowsApplication1;
interface
uses
System.Drawing,
System.Collections,
System.Collections.Generic,
System.Windows.Forms,
System.ComponentModel,
System,
System.IO,
System.Security.Cryptography,
System.Text;
type
/// <summary>
/// Summary description for MainForm.
/// </summary>
MainForm = partial class(System.Windows.Forms.Form)
private
method button1_Click(sender: System.Object; e: System.EventArgs);
method hashMe(input: string): string;
method Encrypt(clearText: string; Password: string; Salt: array of byte; iteration: Integer): string;
method Encrypt(clearData: array of byte; Key: array of byte; IV: array of byte): array of byte;
protected
method Dispose(disposing: Boolean); override;
public
constructor;
end;
implementation
{$REGION Construction and Disposition}
method MainForm.hashMe(input: string): string;
begin
var x: MD5CryptoServiceProvider := new MD5CryptoServiceProvider();
var bs: array of byte := System.Text.Encoding.UTF8.GetBytes(input);
bs := x.ComputeHash(bs);
var s: StringBuilder := new StringBuilder();
for each b: byte in bs do
begin
s.Append(b.ToString("x2").ToLower());
end;
var password: string := s.ToString();
result:=password;
end;
//Encrypt a byte array into a byte array using a key and an IV
method MainForm.Encrypt(clearData: array of byte; Key: array of byte; IV: array of byte): array of byte;
begin
// Create a MemoryStream to accept the encrypted bytes
var ms: MemoryStream := new MemoryStream();
// Create a symmetric algorithm.
// We are going to use Rijndael because it is strong and
// available on all platforms.
// You can use other algorithms, to do so substitute the
// next line with something like
// TripleDES alg = TripleDES.Create();
var alg: Rijndael := Rijndael.Create();
// Now set the key and the IV.
// We need the IV (Initialization Vector) because
// the algorithm is operating in its default
// mode called CBC (Cipher Block Chaining).
// The IV is XORed with the first block (8 byte)
// of the data before it is encrypted, and then each
// encrypted block is XORed with the
// following block of plaintext.
// This is done to make encryption more secure.
// There is also a mode called ECB which does not need an IV,
// but it is much less secure.
alg.Key := Key;
alg.IV := IV;
// Create a CryptoStream through which we are going to be
// pumping our data.
// CryptoStreamMode.Write means that we are going to be
// writing data to the stream and the output will be written
// in the MemoryStream we have provided.
var cs: CryptoStream := new CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write);
// Write the data and make it do the encryption
cs.Write(clearData, 0, clearData.Length);
// Close the crypto stream (or do FlushFinalBlock).
// This will tell it that we have done our encryption and
// there is no more data coming in,
// and it is now a good time to apply the padding and
// finalize the encryption process.
cs.Close();
// Now get the encrypted data from the MemoryStream.
// Some people make a mistake of using GetBuffer() here,
// which is not the right way.
var encryptedData: Array of byte := ms.ToArray();
result := encryptedData;
end;
// Encrypt a string into a string using a password
// Uses Encrypt(byte[], byte[], byte[])
method MainForm.Encrypt(clearText: string; Password: string; Salt: array of byte; iteration: Integer): string;
begin
// First we need to turn the input string into a byte array.
var clearBytes: Array of byte := System.Text.Encoding.Unicode.GetBytes(clearText);
// Then, we need to turn the password into Key and IV
// We are using salt to make it harder to guess our key
// using a dictionary attack -
// trying to guess a password by enumerating all possible words.
var pdb: Rfc2898DeriveBytes := new Rfc2898DeriveBytes(Password, Salt, iteration);
// Now get the key/IV and do the encryption using the
// function that accepts byte arrays.
// Using PasswordDeriveBytes object we are first getting
// 32 bytes for the Key
// (the default Rijndael key length is 256bit = 32bytes)
// and then 16 bytes for the IV.
// IV should always be the block size, which is by default
// 16 bytes (128 bit) for Rijndael.
// If you are using DES/TripleDES/RC2 the block size is
// 8 bytes and so should be the IV size.
// You can also read KeySize/BlockSize properties off
// the algorithm to find out the sizes.
var encryptedData: Array of byte := Encrypt(clearBytes, pdb.GetBytes(32), pdb.GetBytes(16));
// Now we need to turn the resulting byte array into a string.
// A common mistake would be to use an Encoding class for that.
//It does not work because not all byte values can be
// represented by characters.
// We are going to be using Base64 encoding that is designed
//exactly for what we are trying to do.
result := Convert.ToBase64String(encryptedData);
end;
constructor MainForm;
begin
//
// Required for Windows Form Designer support
//
InitializeComponent();
//
// TODO: Add any constructor code after InitializeComponent call
//
end;
method MainForm.Dispose(disposing: Boolean);
begin
if disposing then begin
if assigned(components) then
components.Dispose();
//
// TODO: Add custom disposition code here
//
end;
inherited Dispose(disposing);
end;
{$ENDREGION}
method MainForm.button1_Click(sender: System.Object; e: System.EventArgs);
begin
var iterations: Integer := 25;
var userPassword: string := 'my_password';
var userName: string := 'my_username';
//Use the current date/time to create the Salt for the encryption of the userid and password
var timeString: string := DateTime.Now.ToUniversalTime().ToString();
var encodingSalt: Array of byte := Encoding.ASCII.GetBytes(hashMe(timeString));
//Encrypt the credentials using the entered password hash (if correct the has will match what is stored in NEWA config)
//as the encryption password along with the Salt
var pwdHash: string := hashMe(userPassword).ToLower();
var pwd: string := Encrypt(userPassword, pwdHash, encodingSalt, iterations);
var id: string := Encrypt(userName, pwdHash, encodingSalt, iterations);
var guid_: Guid := Guid.NewGuid();
//We're encrypting the date/time we used to create the salt with the guid so the decrypt of the re-passed credentials knows
//what is used as the salt
tRL.Text := Encrypt(id.Length.ToString(), pwdHash, Encoding.ASCII.GetBytes(guid_.ToString()), iterations);
var rt: string := Encrypt(timeString, pwdHash, Encoding.ASCII.GetBytes(guid_.ToString()), iterations);
tRTL.Text := Encrypt(rt.Length.ToString(), pwdHash, Encoding.ASCII.GetBytes(guid_.ToString()), iterations);
tR.Text := rt + id + pwd + guid_;
end;
end.