Fix sub-channel ID selection/assignment.
Fix issues in service logic preventing timeshift start.
Fix TsWriter PAT parser logging bug.
Fix DVB core utils logging bug that was causing a hard crash when attempting to start timeshifting.
Update external Hauppauge ECP library to v1.0.0.8. Thanks @chefkoch !
Fix TsWriter hard-crash issues by updating DiskRecorder from my WIP TsWriter code. This also has the effect of bringing in the PCR fixes/changes from TVE 3 and adding support for generating PCR from PTS (ie. enabling timeshifting/recording of some channels that couldn't be timeshifted/recorded in the past).
Fix issues causing bogus SDT injection. Also, don't wait-for-teletext-timeout before delivering SDT when teletext is not available or disabled. Without teletext we'll never get the service name that we're waiting for, so it is pointless waiting.
Fix tricky memory access violations in the PAT parser caused by continuing to use references after callbacks that caused the parser to be reset.
No need to dump Twinhan PID filter disable command.
Fix default scan bandwidth assigned to tuners. MHz => kHz.
Fix RTL283x TsWriter wrapper for functions that use ref or out parameters.
Fix for analog scanning not keeping any channels.
Hack required for analog scanning. TsWriter and TV library PID and PMT handling really need a rework and fixup.
Improve analog tuner signal strength and quality reporting.
Stream type values defined with #define must be compatible with byte (unsigned char) storage. That means no negative values!
Set context for extension loading for analog tuners.
Fix "use of obsolete..." warning.
Rearrange MPEG 2 subchannel code a little; no functional changes. I thought I was going to need to override some functions but it turned out to be unnecessary.
Avoid deadlocks in the PMT grabber, and fix case where the grabber selects the first program on behalf of TVE.
Fix RTL283x FM deadlock on PMT change, caused by attempting to call methods on TsWriter from within the callback. That won't work if TsWriter is in a STA. The STA is strictly single threaded, so the message queue doesn't get pumped until the callback finishes.