HDHR-VCR.exe is a recording scheduler for HDHomeRun TV Tuners that runs on Windows. The application provides basic, VCR-like functionality; allowing programs to be recorded at scheduled times using any available tuners on the LAN. Wraps
hdhomerun_config.exe for all interaction with the device. Scheduled recordings can added manually or via any Program Guide that can output titantv compatible tvpi files.
.NET Framework 4.0 or better; get it from Microsoft.
HDHomeRun Install package; from SiliconDust.
Unpack the app to a folder; run it. Your devices should automatically be detected in the 'Tuners' list. If not: open up the settings and check that the path to
hdhomerun_config.exe is correct.
If your firewall blocks outgoing connections, you'll need to make sure
hdhomerun_config.exe is allowed through.
Next you'll want to run a channel scan ("Channel List" button -> "Update Channel list"). After that you can start scheduling recordings by hitting 'New Recording' at the bottom and setting the times and channel. If you associate the program with titantv.com in the settings; you can also use their websites tv-listings to schedule recordings. (After you've made the association, click a show on titantv.com, then the record button)
Notes on Recoding Padding: In the application settings there's a textbox field where you can specify the padding to be added to recordings. This is the time, in minutes, that will be recorded before and after the 'official' start and end times. You can specify start and ending padding separately by comma separation Eg: "5,10"; If only one number is entered, it will be used for both. Note that padding is opportunistic, that is, if a tuner is free, it will be used to record padding - but padding is always the lowest priority, and can be overridden by other recordings as needed. Also, the padding is currently a global setting, and can't be set on on a recording by recording basis (that may change in the future). Finally, remember that padding may force the use of two tuners when otherwise only one would be used. Eg: When recording two consecutive shows on the same channel, like 8:00-9:00 and then 9:00-10:00... Normally one tuner would be fine, but since the paddings would overlap, two tuners (if available) will be used to cover the overlap.
Command Line Usage:
If an instance of the program is not already running, starts the program and immediately hides it.
- -addfromtvpi %FILENAME%
Adds the specified titanTV .tvpi file to the recording list. Starts a new instance of the program if one is not already running.
- -addrecording %RECORDING_STRING%
Adds the given recording to the recording list. Starts a new instance of the program if one is not already running. The string format used is identical to that in the recording list ini file (recordings.ini). Parameters as passed as colon separated name/value pairs; which are themselves backtick (`) separated. The only required parameters are 'Start Time', 'End Time', and 'Channel'. All other parameters are optional and the order of parameters does not matter. Use ISO format for dates. An example follows:
HDHR_VCR.exe -addrecording Channel: 112.441 - 4.1 WRC HD`Start Time: 2014-01-13 00.07.00`End Time: 2014-01-13 00.08.00
The full list of parameters that can be set via the command line or in recordings.ini follows:
Status, User Filename, Recurrence Type, High Priority Record, Tuner used, Station, Channel, Actual File Name, Start Time, End Time, Actual Start Time, Actual End Time, Times Started, Times Recurred:, Title, Episode Title, Description
Version 1.6; 2017-07-27
- Added: Tuner locking implemented, if your device supports it, we will now lock the tuners we use with a random password to prevent other apps from stealing them. Tuners are unlocked as soon as we're done recording, and you can always force-free them by double-clicking the entry on the tuner list.
- Added: Keys for New/Edit recording (ctrl+n ctrl+e)
- Added: The Recording Details log now gets a log entry (with a link) when it writes a recording metadata file. Also the "stopped recording" log entry is simarly treated as a link to open the video file.
- Fixed: Further fixes in place to prevent the missed recording regression. Hopefully this licks it.
- Fixed: Better window hiding on auto-start; app should no longer flicker as we start.
Version 1.5.1; 2016-11-16
- Fixed: Temporary fixes in place for recording queue regression. Still haven't nailed down the actual bug, but this code should catch any missed recordings.
- Fixed: Adding an already in-progress recording should now auto-start correctly.
- Fixed: Went back and fixed up the tab order for the new GUI elements in the last few versions.
- Added: Setting to create Start Menu shortcut, hotkey, etc...
- Changed: Updated window placement code to match new template. Stored window placement will be lost when upgrading as the format is different.
Version 1.5; 2016-10-03
- Added: Optional padding for recordings. See the 'padding' note in the instructions for details.
- Added: Added standard deviation to tuner stats (in recoding meta-data); some changes to how those are shown.
- Added: Recurrence options for weekdays and weekend days.
- Added: Ctrl+mousewheel on the main window to zoom. (cause why not)
- Fixed: Free disk-space queries on XP fixed.
- Fixed: Escape key now hides the main window.
- Fixed: A bug where scan processing would foul up when the channel name contained a period.
- Changed: Double-clicking the recordings list on the 'Output File' column will now play the recording if it's in progress or finished; double-clicking on any other column will open the recording details as before.
- Changed: Reorganized settings window.
- Note: I refactored a lot of scheduling internals when I added the padding feature; and it hasn't been tested a whole lot... so maybe keep your existing version around in case this one is full of bugzzzz
Version 1.4; 2016-01-27
- Added: In the main window, pressing the plus '+', or minus '-' keys will now add or subtract one minute to the selected recording(s) start and end times. This allows for a primitive version of padding, also an easy way to extend recordings if a game runs long. No logic is implemented (yet) to manage the padding separately (like having a lower recording priority than non-padding recordings) May work on that next.
- Added: About box updated to newer version. Links included.
- Changed: In the 'Add Recording' dialog; The recording info fill-in's ('%%'s) display has been changed to a textbox so the info can be copied. (also 1 textbox vs 10 labels is simpler)
- Changed: Focus stealing code refactored.
Version 1.3; 2015-11-29
- Added: Try to get the path to hdhomerun_config from the registry.
- Added: Drag-and-Drop of tvpi files now supported (both to and from the filesystem)
Version 1.2; 2015-11-21
- Added: Interface to hide channels. (In channel list: use the context menu; or ctrl+h to hide, ctrl+s to show) Also shows other channel flags.
- Fixed: Encrypted but unprotected channels weren't showing up.
- Fixed: Channel Scanner would come back empty if the 1st tuner of a device was in use. Now it searches for a free tuner on each device to be scanned.
Version 1.0; 2015-10-28
- Fixed potential bug where user channel list would not clear when doing a channel scan; streamlined some channel scan code. Added snq to channel list (I just realized signal strength isn't all that useful by itself for antenna devices)
- Fixed: Tray icon size hinting fixed.
- Added: Tray icon gets a red dot while recording.
- Added: Tuner statistics & log now output to metadata file (if generated).
- Added: Option added to automatically restart recordings that have errors, we will try to restart up to 5 times. (this won't fire if low disk space is the root problem)
- Added: Tuners now selected in random order to balance load on any one device.
- Added: We now update our wake timer if the system time gets changed.
- Fixed: Regression where a low disk space warning would freeze the log. (what do you mean you can't just dump code in a backgroundworker and hope it's thread safe?)
- Fixed: If the app or computer crashed while recording, the status in recordings.ini was left at 'recording'. The larger bug was that this recording status was not reset when we loaded the recording again (& thus they would not resume.) They now get reset to a status of 'waiting' & will be handled normally.
Beta 9; 2014-01-10
- Added: !!! MAJOR CHANGE to recordings.ini format, much more info is saved, including the recording's log; but compatibility with the previous format is broken. Clear out all recordings or delete the recordings.ini file before upgrading.
- Added: Option to save recording metadata to a txt file. This includes (if available) all info from titanTV (including the description). Video statistics (error rates) from HDHR_config will also be saved here.
- Added: Freespace check is now done async (We no longer block main gui thread if we have to wait for the drive to spin up)
- Added: Number of files associated with a recording now reported. (In case of restarts or recurrences)
- Added: ctrl+c can now be used to copy log entries to the clipboard
- Added: If a recording starts late (>5 seconds after specified start time), a warning is generated.
- Fixed: cleaner closeout for recorder processes; (ctrl+c signal now sent, previously we used the ctrl+break signal) Kill is still used as a last resort.
Beta 8; 2013-11-11
- Added: Better sorting for recordings list (now asc/desc/orig & with visual feedback).
- Fixed: A regression where deleting a finished recording could cause an active recording to stop.
- Fixed: Tray icon was sometimes non-responsive to double clicks (wasn't registering the events); we now activate on a single click.
Beta 7; 2013-11-05
- Added: Options to prevent the computer from sleeping or wake it from standby to record.
- Added: About info to settings dialogue.
- Fixed: The default capture path is now validated (will issue an error to the log if the path isn't writable)
- Fixed: Reduced/removed flickering of recording & tuner lists as they are updated.
Beta 6; 2013-10-23
- Added: Window placement & size saved via GetWindowPlacement/SetWindowPlacement
- Added: Default location for recordings changed from c:\ to application directory (helps with permission problems)
- Added: Enabled select all (ctrl+a) for recordings list
- Added: Sort recording list by clicking column headers
- Added: DPI aware
- Fixed: Better icon
Beta 5; 2013-10-18
- Added: Better progress / logging when doing channel scans.
- Added: Better error handling. Recoding health is now monitored & errors are reported if something goes wrong (out of disk space, file stops growing, recorder process exits, etc...)
- Added: Option to restart/reset recordings.
- Added: Recording controls added to right click menu & recoding info dialogue.
- Added: Link to default capture volume on main screen; space left & refresh button also added to main screen.
- Added: Recording status added to recording info screen, better logging there as well.
- Added: New Icon.
- Fixed: Much improved support for multiple tuners / different versions of tuners.
- Fixed: Many small bugs.
Beta 4; 2012-11-17
- Fixed: Better tuner detection & more debugging logging at discovery.
Beta 3; 2012-08-28
- Added: Titan TV integration via associating .tvpi files. (in settings)
- Added: Monthly/Weekly/Daily Recurrence Logic
- Added: Right click menu for recording list (added stop recording & play file).
- Added: Log added to recording details form.
- Added: Log added to main form to reduce message box bombardment. Errors are now generally added to the log instead of popped-up.
- Added: Channel List can now be edited to add custom names/numbers.
- Added: Add recordings via command line (see command line usage).
- Added: %TITLE% and %EPTITLE% added as fillable fields for filenames.
- Fixed: Better support for prime tuners (finally have one to test)
- Fixed: Many bugs.
Beta 2; 2012-08-03:
- Added: End time can be set as fixed time or duration.
- Fixed: Devices with different sources/channel lineups no longer cause conflicts (hopefully)
- Fixed: Channel list now has its own manager, updating the channel list is much improved.
- Fixed: Program would crash at startup if no HDHR devices were found on the LAN.
Beta 1; 2012-08-01:
- Initial Release
Will be fixed:
- Tuner locking isn't implemented yet; Other apps may steal our tuners if they're not conscientious.
Won't be fixed:
- There is no logic preventing users from creating an impossible-to-meet recording schedule (too many overlapping recordings)
- The executable file specified in the "Path to hdhomerunconfig.exe" setting is not authenticated. The program will try to run any file the user sets as if it were hdhomerunconfig.exe.
This software includes code or resources from the following sources:
Host icon grabber routine by Sergey Stoyan.
Licensed under the terms of: The Code Project Open License (CPOL) 1.02
Additional icon code by Steve McMahon.
Licensed under the terms of: vbAccelerator Software License
Ctrl+c sending code derived from code by Stanislav Sokolov, from this article.
Additional code taken from the comments of that article and modified.
No licensed given for any of it; I'm assuming it's free.
Priority Queue code by BlueRaja
Licensed under the terms of: The MIT License (MIT)
Application icon derived from work by Steven W. Smith
Licensed under the terms of: "Free for non-commercial use."
This software is distributed as-is, without any representations or warranties of any kind.
The author of this software imposes no additional license terms or limits upon its use or redistribution.
Send to firstname.lastname@example.org