TSReader Version 2.8 README
Updated February 12, 2008

What's Here

- TSReader Editions
- Changes between versions
- Note about cards with demultiplexers
- Command-line parameters

TSReader Editions

There are three different editions of TSReader available:

- TSReader Lite - limited but free for non-commercial use.
- Standard (Std) - the regular version.
- Professional (Pro) - many additional features for professional use.

From version 2.7.45 onwards, all changes are listed by edition.

Changes between versions

Version 2.8, build 46b:

- Std/Pro: XML export now correctly closes the MUXRATE-BPS item.
- All: Updated the DVB-S2 FEC selection to reflect the latest DVB-S2 spec.
- All: Fixed issue with multiple Dektec USB interfaces.
- All: Fixed issue with CI-CAMs only receiving channel change messages if there were plugins loaded.
- Std/Pro: Added a new switch (-Eb) to support the EEPG on Bell ExpressVu in Canada.
- Std/Pro: Fixed an issue where certain command-line parameters could lead to source modules being passed an invalid command-line.
- Pro: Added some new functions to the Closed-Caption decoder. The M key allows masking of multiple CC streams and the L key toggles logging of raw user data and extracted EIA-608 and EIA-708 to a text file.
- All: The USALS positioner code has been re-written and now includes buttons for east/west, north/south which makes it much easier to setup and use. This means the -PU command-line switch has changed since it now requires an east/west indicator. See the command-line documentation for the latest.
- Std/Pro: Fixed an issue with the -u switch not selecting teletext subtitle streams on Australian DVB-T.
- All: Item counts for the DVB EIT, NIT, SDT and BAT tables are now displayed in the tree-view.
- Std/Pro: Corrected a problem with the -u option not recording all teletext/subtitle streams.
- Std: The faster and more robust H.264 decoder from TSReader Professional is now included with TSReader Standard.
- Std/Pro: After recording with a time limit, the next record session resets the recording time back to its original value rather than zero.
- Std/Pro: If an automatic (command-line) recording is started and the program to be recorded doesn't exist in the mux, TSReader now displays a warning dialog.
- Std/Pro: In the EPG grid when scheduling tasks its now possible to change the recorded program number via a translation file - look at the FAQ for details (look for EPGMAP.INI).
- All: Fixed a bug where a recording made from a stream that included extra data streams (such as teletext) would cause continuity errors in the recording if the PID of such streams was 0x0020.
- All: The DVB-T BDA source module now works with devices like the AF9015-based demods that have no receiver component. Thanks to Christian Zietz for the fixes.
- All: Experimental DVB-C BDA source module.
- Std/Pro: XML export now includes audio sample data when the audio thumbnails are enabled. This is useful to automatically check for silence. Look for the <AUDIO-SAMPLES-CHANNEL-1> in the XML.
- Std/Pro: A decoder for AAC audio is now included with TSReader. This parses and produces thumbnails for MPEG-2 and MPEG-4 AAC streams.
- All: Added a source module for the Sencore DTU-235 DVB-T analyzer.
- Pro: TSReader Pro now includes a signal/GPS position logger that writes data into a comma-seperated file for importing into mapping software. GPS receivers with NMEA protocol are supported including serial and Bluetooth devices.

Version 2.8, build 46a:

- All: Fixed a bug with the TechnoTrend DVB-S2 USB2 interface that created a c:\tsreader.ts recording every time the source module is used.
- All: Fixed an issue with all most Hauppauge source modules not working with 2.8.46 and added support for more Hauppauge interfaces and generic QAM-B cards.
- All: Removed the FutureTel source module. It was causing too many missing DLL errors and the DLLs required to fix this are quite large. The support package to make this PCI encoder work with TSReader are available as a free download at http://www.coolstf.com/tsreader/TSReader_FutureTel.zip.
- Lite: The "Check for New Version" function is now available in TSReader Lite.
- All: Some corrections to the ATSC TSID tables.
- All: Fixes for the HDHomeRun operating on HRC cable networks.
- All: The IGMPv3 joins in the UDP Multicast source can now be specified from the command-line. For example "224.0.0.2 1234@192.168.1.5" would send the IGMPv3 join message to 192.168.1.5 for stream 224.0.0.2 port 1234.

Version 2.8, build 46:

- Pro: Fixed an issue with Scientific Atlanta formatted captions not being decoded correctly.
- All: Multiple device support for Alitronika products.
- Pro: TSReader can now output the transport stream to devices like Alitrokina, Dektec and Linear System ASI devices. Devices that support output are listed on the Forward menu. The forwarder supports 188, 188+16 byte nulls and 204 byte packets with DVB standard Reed-Solomon codes. The Reed-Solomon codes are generated in software so a powerful processor will be required to use this option.
- Pro: Fixed an issue with the automatic deletion of files when recording with the "Remove old files when recording space less than n GB".
- All: Fixed a problem with retuning on TechnoTrend DVB-S2 cards.
- All: Fixed a lockup that occured when a program is selected, plugins are loaded and no CAT is present in the mux yet there are CA descriptors in the PMT.
- Std/Pro: New control server command to reset counters.
- Std/Pro: When recording a program TSReader can now optionally include CA ECM/EMM streams, the CAT and appropriate PMT or PMT-ES level CA descriptors. The option to control this is on the record file dialog.
- All: File source now has the ability to shutdown TSReader when the end-of-file is reached.
- All: Fixes for the TechnoTrend Budget series PCI cards to better support CI-CAMs.
- All: Fixed an occasional crash that occurred on some IP/DVB streams.

Version 2.7, build 45h:

- Pro: Fixed a bug with the record split size when using the -R switch.
- Std/Pro: When exporting INI files from the NIT tables, any previous INI files are renamed with the .BAK extension.
- Pro: The profile name is now shown in the TSReader window title and minimimzed instances are restored to normal window size when selected in the profile list.
- Pro: Icons for teletext, WSS and VBI services weren't showing up correctly on VC1 video streams.
- Pro: Improvements to the H.264 thumbnail decoder.
- Pro: The video composition chart now works with H.264 streams.

Version 2.7, build 45g:

- Std/Pro: Added an option on the Help menu to check for a new version of TSReader.
- All: Fixed a number of issues related to the long term generation of thumbnails.
- Pro: Fixed an issue where thumbnails would stop being generated after a long period of time when multiple thumbnail threads are running simultaneously.
- Std/Pro: Right clicking on an ES PID in the tree-view now has an option to unblacklist the PID.
- All: Improvements to the HD Homerun source modules to return better signal information and indicate a lock correctly.
- Std/Pro: New switch -q to operate in "quiet" mode. If TSReader is unable to lock the signal (or open file), no error dialogs are shown and TSReader exits with an value of 1 (normal exit value is zero). Very useful for automating TSReader from another application.
- Std/Pro: A option to wake up the computer when scheduled recording starts and default pre- and post-roll times.
- Pro: Captions from streams CC3 and CC4 are now saved when using the Record All Programs function.

Version 2.7, build 45f:

- Pro: The Table Monitor function can now dump sections as Hex/ASCII.
- Std/Pro:New command-line option: -B prevents TSReader from blacklisting elementary streams
- All: Fixed a bug in the IP parser where more than one MPE packet in a section would be ignored.
- Pro: Fixed a bug in the UDP forwarder which caused the output PAT's continuity counter to not update.
- All: Updates to some of the Hauppauge source modules to support Windows Vista.
- Pro: The UDP forwarder can now set the TTL on multicast IP packets.
- All: On ATSC networks, Cable VCTs with major/minor channel numbers of zero are now displayed.
- All: Hauppauge HVR-950 source module now works correctly on Windows Vista.
- All: Null length PMT ES lists no longer cause a false ES entry to be displayed in TSReader.
- Std/Pro: Improved the -H command-line switch to include the ability to control which tables are decoded in the resulting HTML. See the command-line.html file in the documentation folder for details.
- All: Added support for the Dektec 2145 PCI Express adapter.
- Pro: Fixed an issue with the Record All Programs function where SCTE formatted closed-captions weren't being written as text files correctly.
- Pro: Added display of current clients to the EIT Server setup dialog.

Version 2.7, build 45e:

- All: Previouly if you changed channel with playback active, TSReader would only select the first audio stream of the newly selected program. Now it selects all audio streams.
- All: Fixed an issue where EIT data wouldn't be processed in ATSC muxes when the GPS Offset specified in the STT was zero. Technically, transmitting this way is illegal since the GPS Offset is currently 14 seconds (Dec 2006).
- All: Added wider support for Dektec products including the new DTA-160 card.
- Pro: When forwarding programs over UDP as individual transport streams, a new option to include the CAT, EMM and ECM tables is included. This allows downstream descrambling for authorized programs.

Version 2.7, build 45d:

- Pro: It's now possible to select the PID used for muxrate calculation by right clicking a PCR PID in the tree-view.
- Std/Pro: Manual EPG recordings now default the MPEG program number if there is only one channel in the mux.
- Std/Pro: Fixed a problem with manual EPG recordings running at the wrong time (difference between local and UTC time).
- Std/Pro: Added a button to the manual EPG recording setup dialog to fill in the tuning parameters for the current mux.
- All: Updated the RF Central RFX-MDR source module to allow operation with a wider range of encoders.
- All: Added decoding of the Channel Extended Text Table in ATSC networks. The resulting text is shown by selecting the TVCT in the tree-view.
- All: Added support for the HDHomeRun Ethernet 8VSB/QAM tuner.
- All: Minor fixes to the EPG Grid when a very large monitor is used.

Version 2.7, build 45c:

- All: Added support for the newer DVBWorld DVB-S/DSS tuner which uses a 9 volt power supply rather than a 5 volt supply on the older model.
- All: Updated all the Hauppauge source modules and added support for the HVR-950 ATSC stick tuner.
- Pro: Added the -n switch to automatically start TSReader's Record All Programs function when TSReader is launched.
- All: For plugin users, if TSReader sees a PMT version change and that PMT is for the currently selected program, TSReader will send any plugins a channel change message to inform them the PMT changed.
- All: Update all the Alitronika devices to use their latest API.
- Std/Pro: Changed the -D switch to allow selection of all network types supported: -Da for ATSC, -Dd for DVB, -Di for ISDB and -Dm for DCII.
- Pro: The rate graphs shown when using the Record All Program function no longer average out the data-rate over time and therefore show a much better represnetation of the data rate on each channel being archived.
- Pro: Fixed a bug in the Record All Program function where one second programs would occasionally be recorded on ATSC networks.
- All: Fixed a bug where the USER icon would show up on all MPEG-2 thumbnails even if the video stream wasn't carrying user data.
- Std/Pro: Changes for the EPG scheduler. Once a recording is scheduled, double-clicking the event again now shows a pop-up menu that allow the recording to be cancelled and now allows pre/post-roll times to be set.
- Std/Pro: Manual scheduled recordings can now be set - press the M key when the EPG grid is shown. Please feel free to suggest improvements in the manual recording process!
- Pro: The Stream Monitor, UDP Forwarder and Record All Programs functions can now be used if there are no programs defined in the PAT, but there are manual channels defined.

Version 2.7, build 45b:

- All: Fixed a crash with DCII muxes with very long service names.
- All: Added support for the Nextorm DVB-S2101 USB interface. This is the "new" DVBWorld DVB-S/DSS tuner - looks identical to the DVBWorld tuner but needs a different source module because of differences in the hardware. If you can't get the DVBWorld source module to lock, try using this one instead.
- Std/Pro: Added support for USALS positioners.
- Std/Pro: Added the -PU command line option to allow the USALS position to be set from the command-line.
- Pro: Added thumbnail decoding for VC-1 video streams.
- All: Added a source module to read from HTTP servers. Currently there's no rate control so it should only be used with "live" HTTP servers like VLC's.
- All: The UDP Multicast sources now support IGMP v3 add/drop membership messages on XP and above. To use IGMPv3, specify the multicast source in dotted notation, @-sign, and then the multicast address. For example 10.10.10.4@225.0.0.1.
- Pro: Fixed a bug in the thumbnail generator where ES data from the incorrect channel would sometimes get included when running parallel thumbnail decoders.
- Std/Pro: Fixed a bug in retuning from the EPG Grid on some devices.
- Std/Pro: TSReader can now export satellite INI files from the NIT by right clicking on the root NIT entry in the tree-view.
- All: Added support for DVB-S2 TechnoTrend Budget cards and USB2 interfaces. You must use the TechnoTrend standard drivers and not their BDA drivers.
- Std/Pro: Added a menu item to refresh the thumbnails immediately. Very useful if you have the thumbnail rate set to zero (so you just get thumbnails when TSReader starts) and you want to update them without restarting the source. This function can also be accessed by the F5 key.
- All: Improvements to the DVB-T BDA source module.
- All: Added three new bandplans for DVB-T scanning. These run from 118-858 MHz stepping at 1 MHz either as 7, 8 or 7/8 MHz bandwidth. Scanning this way will take a long time but will find carriers not adering to any particular real bandplan.

Version 2.7, build 45a:

- All: Fixed a crash with very long formatting strings for split filenames.
- All: Fixed the MD API to correctly set the teletext PID.
- All: New source module - FileContinuous. This is designed to work with transport stream files that are in the process of being recorded. When using this source, the rate controlled option must be turned off. Unlike the normal file sources, when this one hits end of file, it keeps trying to read the file (that's being made larger all the time) until it gets end of file for five seconds.
- Pro: Stream Monitor now uses local time throughout. Previously there was a mixture of local time and UTC.
- Pro: -N switch to automatically start the stream monitor.

Version 2.7, build 45:

- Pro: Fixed a problem with decimal PIDs not being displayed correctly.
- All: Corrected a problem with the PID chart where stream rates shown a Kbps or Mbps were slightly incorrect.
- Std/Pro: Changed manual channel definition dialog to allow decimal PIDs.
- Pro: Fixed an occasional crash when the caption decoder first started.
- All: Added an option to warn when recorded files are about to be overwritten.
- Std/Pro: Added a new control server command to send DiSEqC sequences.
- All: Corrected DVB-S2 modulation decoding where it could corrupt the polarity display on certain streams.
- All: Updated descriptor decoding to match ETSI EN 300 468 V1.7.1 (the latest DVB-SI spec).
- Std/Pro: Fixed an issue with XML export dropping accented characters.
- Std/Pro: XML export now includes the results of the ES stream parsers in TSReader - for example the video chroma format, audio mode etc.
- All: Added an option to filter EIT descriptions based on language.
- Pro: Closed Caption decoder bug fixes.
- All: The thumbnail CC, DTVCC and User icons now show up correctly on H.264 streams.
- Pro: Closed Caption decoder now supports H.264 video.
- All: Video thumbnails now include an icon in the top right that shows the video type - MPEG-2, MPEG-4 or H.264.
- Std/Pro: Added an option to allow scheduled recordings to be recorded in Program Stream mode.
- All: Another source module for Linear Systems cards is now included. This version synchronizes with the MPEG-2 TS in software for some old Linear cards that don't handle TS sync correctly in hardware.
- All: Added decoding for the DVB Time Slice/FEC descriptor.
- All: A number of TSReader source module use the MPEG-2 transport stream synchronization function provided by TSReader. This routine can now sync with any length MPEG-2 packet - previously, it was limited to 188 and 204 byte packets.
- All: Fixed a crash that sometimes occured when running up and down the EIT tree on some DVB-T networks.
- All: Updated to Alitronika's latest SDK. All users running Alitronika hardware must update to the latest drivers from their website.
- All: Corrected a problem with some extended event descriptions on some DVB networks.
- All: Added support for the RF Central RFX-MDR-PC USB 2.0 2 GHz DVB-T receiver.
- Pro: Added a Record Table function to record combinations of PIDs/tables. Files can be saved as binary or hex/ASCII.
- All: Added detection of ISDB streams. Once TSReader sees an ISDB stream (a BIT on PID 0x0023 is required), it treats the MPEG-4 audio type in these streams correctly but currently does not parse any additional ISDB descriptors.
- All: For Hauppauge products: Added a WinTV-HVR-930 source moduler (rather than sharing the HVR900 source), added WinTV-HVR1110 (DVB-T / Hybrid) support and fixed bugs related to the HVR9x0 series of tuners with intermittent stream corruption.
- All: Cleaned up a few icons
- Pro: UDP forwarder parameters have changed - previously the destination IP address and port were seperate, now the addr:port format is used (224.0.0.1:1234 for example). Related to this, multiple addresses:ports can now be specified when seperated by commas - up to eight outbound streams per program are currently supported.
- Std/Pro: The Program Usage Stacked Bar chart now fixes the Y-axis to the maximum rate for any program. This makes viewing the chart much easier on the eyes!
- All: Improvements to the tuning on the DVBWorld USB tuner.
- All: Improvements to the Firewire source module - the Firewire_DVHS module hasn't changed but I suspect it'll be obsolete now. Multiple devices are now supported and a greater range of Firewire transport stream providers should now work. Thanks to Hamasaki for these fixes.
- All: Fixed a problem with erroneous characters in the EPG data from the EIT stream at 28.2 East.
- All: Improved the way thumbnails are painted on the TSReader window.
- Std/Pro: Option to display thumbnails top-down (the default) and new left to right mode.
- All: Fixed a memory leak each time a thumbnail was generated.
- All: Playback can now occur in VLC if one or more of the elementary streams are scrambled.
- Pro: -f switch added to automatically start UDP forwarding.
- Std/Pro: -Ed switch to handle Dish Network EEPG - this previously required messing around with .reg files.

Version 2.7, build 44:

- Corrected another ATSC string related crash
- Fixed the UDP sources to allow a bigger list of IP addresses and to not crash when the limit (currently 1000 items) is reached.
- Right clicking a DVB-C NIT entry and selecting "Retune to this mux..." now sends the correctly frequency.
- Right clicking the TDT/TOT (DVB) or STT (ATSC) now allows the PC time to be set to the stream time.
- Fixed an issue with the record mux limit not being turned off correctly.
- Improvements to the CI-CAM interface with a new menu option to specify which CA system gets sent to the CAM.
- Fixed a problem with the EXPORT HTML command in the control server not exporting thumbnails.
- Added an option to the control server STALL command to wait until both SI decoding and thumbnail decoding is completed.
- Right clicking entries in the SDT now allows retuning to the mux carrying the SDT entry. This requires DVB networks that transmit a network wide SDT.
- Lots more options for the EPG Grid - Ctrl+G brings up a dialog allowing entry of a channel number to start the display at. Double-clicking a channel name on DVB networks will attempt to retune to the mux and launch VLC to play the channel. And Ctrl+F (and F3) allows searching.
- Fixed the -c command-line option.
- Increased the size of VLC command-strings. Some people are using 350+ character strings to tell VLC to do some pretty neat things!
- Export to HTML now includes ability to export MPEG-2 statistics and source information.
- Updated the CHART command to allow all currently supported chart types.
- The EXPORT HTML command now has a new variant, EXPORT HTML-nnn which allows control over the tables exported to HTML. See the control server documentation for details.
- For satellite users, TSReader now can now automatically select a DiSEqC/toneburst port based on the orbital location or network ID carried in the DVB-NIT. This information is used once TSReader is running when retuning by right clicking the NIT, SDT or double-clicking the channel name in the EPG grid.
- A new option to show the PCR PID icon in the SI tree for non-video streams. By default the PCR PID is only shown on video streams since it's only used there.
- TSReader's documentation files (the website) is now included in the build.
- Fixed an issue with exporting false TDT/TOT tables from prior muxes to XML.
- New -b switch - limits thumbnail generation to the program number specified. Useful for running TSReader over slow links.
- When doing an HTML export all thumbnails are now exported - previously only the first thumbnail made it into the HTML.
- Added a source module for the Dibcom DVB-T BDA interfaces (thanks to Terry Wu).
- New -Mm command-line option to launch TSReader minimized to the tray notification area.
- The TSReader icon shown in the tray notification area blinks if TSReader is currently performing a recording.
- Fixed various EPG Grid display issues related to long or single events.
- For DVB and ATSC users, TSReader can now schedule recordings from the EPG Grid. Double-click an event to turn on recording - double-click again to turn off. TSReader uses the Windows Scheduler service to launch the recording sessions, so keep this in mind - TSReader will abruptly stop when a recording starts up. You must be on a DVB network with correct EIT, SDT and NIT tables for this to work correctly or be tuned to an off-air ATSC mux -- cable ATSC tables aren't supported because they're always wrong. If using satellite you must setup the input DiSEqC configuration to automatically select a port based on the network or orbital location if you're recording from a service across multiple networks.
- Added support for the B2C2-based 8VSB/QAM card from Broadband Technologies Inc and fixed an issue with all B2C2 cards where restarting TSReader would cause a small chunk of the prior transport stream to enter TSReader erroneously with the result that usually the multiplex bitrate calculated would be incorrect.
- TSReader now shows logical channel numbers for all channels defined with an LCN descriptor in the DVB-NIT.
- Changes to the CSV import: Now frequencies with different symbol rates (typically used DSNG links) are imported correctly and the first name found in the CSV is used as the mux name.
- Added the ability to add, edit and delete satellite listings (DVB/DSS sources) and multiplex listings (ATSC/QAM sources).
- Fixes to get the Stradis interface working correctly without blanking out the screen from time-to-time.
- New control server commands: WINDOW to manipulate the TSReader main window and INFO to send back info about the source or mux.
- The control server command PROGRAM now sends an extra line at the end of the program list to show the list is complete.
- Changed the control server TUNE command to not display the standard "Failed to lock signal" message should the retune not result in a lock. After the TUNE command, wait about three or four seconds to give the hardware a chance to lock the carrier and then use the new INFO SOURCE command to see if the tuner has a lock.
- The file source now supports rate-controlled operation in DSS mode and the DSS mux-rate is now calculated.
- New control server command - PIDS to list the active PIDs in the mux.
- Fixed a problem with EIT/ETTs greater than 11 not being processed correctly and expanded EIT/ETT to handle EIT0-EIT63/ETT0-ETT63 (ATSC networks).
- Updated the THUMBNAIL control server command with five new options: OFF, LOW, NORMAL and HIGH to control operation of the thumbnail thread and REFRESH to set the thumbnail refresh rate.
- Fixed a problem with the control server's TUNE command when used with the File source.
- Added source modules for Harmonic's HRTP protocol.
- Enhanced the GRAPH command in the control server. GRAPH AVERAGE and GRAPH REALTIME select between the two graphing modes and GRAPH REFRESH nnn specifies the update time for graphs in milliseconds.
- Added a graph to show signal strength from the input source if supported.
- Added MANUALCHANNEL command to the control server.
- Source added for the Twinhan DTT-CI card.
- Corrected an issue with very large PMTs (typically close to the 1KB limit).
- Added support for Hauppauge Computer Works Nova-S2 Plus, Nova-SE2 satellite cards and the WinTV-HVR900 DVB-T USB 2.0 receiver.
- Corrected a crash related to the EIT stream on the Orbit satellite network.
- Fixed a problem XML exporting CAT descriptors other than the CA descriptor.
- Added -y switch to delay autoexport by the specified number of seconds. Useful for muxes with slowly sent tables.
- TSReader now continuously parses PMTs. If a PMT version number is changed, the tree-view information is updated. Recordings/Streaming in process for a PMT that changes does not currently update the output stream.
- Change to the PMT parser to better handle stuffing bytes that occur in some transport streams.
- Fixed an issue with Dektec input cards when fed with very high-rate streams (> 100 Mbps).
- Fixed a problem with the mux-bitrate switching to "n/a" after a PCR packet with the TEI bit is set (i.e. a corrupted packet).
- Added support for Alitronica DVB-S, DVB-C and DVB-T interfaces.
- Corrected shutdown problems with the -x and -V switches.
- New SETTING command for the control server. Set the control server documentaiton for information.
- Prevented the H.264 decoder from crashing TSReader. If the decoder now terminates incorrectly, TSReader will continue to run and display an thumbnail with fixed text indicating there's a problem with the stream and the reference decoder TSReader is using. This doesn't fix H.264 thumbnail issues completely (since there are some streams TSReader's decoder can't handle) - we're going to be looking at alternate H.264 decoders in the future, but this may take some time as there's a lot of compatibility issues between encoders and decoders at present.
- Added serial receiver control support for the Newtec 2063 satellite demodulator.
- Serial receiver control modes are no-longer embedded in TSReader - they're now provided as seperate DLLs along with source-code in the TSReader\Sources\ReceiverControl folder. If you develop your own serial control modules and would like to have them included with the TSReader distribution, please let me know.
- The DTVWorks DVB-SPI interface now supports up to eight interfaces on a single system - the USBProgrammer utility in the DTVWorks driver folder is used to set the device-id (0 - 7).
- Device Number (i.e. the board number for boards with multiple-card support) can now be selected from the source selection dialog (hold Ctrl down when starting TSReader).
- Changed the way source modules that can use the serial receiver control work when displaying the tune dialog. Now if the tune dialog is cancelled, TSReader will continue to run and obtain data from the source mode rather than aborting. This is useful when you're already tuned to the target mux and don't want to go through the delay of retuning which seems to take forever on most commercial receivers.
- Added support for the MPlay application on the Roku HD-1000. Roku HD-1000 users will need to change the Roku settings to call out the full application name: /mnt/flash1/MPlay/MPlay.app for MPlay and /mnt/flash1/CinemaSix/CinemaSix.cmd for CinemaSix (assuming the apps are loaded on a Compact Flash memory card).
- Fixed an issue with pseudo CRC errors in the NIT when the NIT is carrying Stuffing Tables (ST).
- Added decoding for MPEG-4 video streams.
- When recording in automatic mode and TSReader is minimized, you'll see a much more informative tooltip if you hover the mouse over the TSReader icon.
- Fixed a crash related to corrupted ATSC Huffman encoded strings.
- Fixed an issue with zero length CATs erroneously showing a descriptor type 0xd5.
- Fixed the video composition chart to show all pictures in the GOP - previously the last picture wasn't shown.
- The Stradis decoder interface can now support multiple audio streams (provided the hardware has multiple audio stream decoding like the SDM-290).
- The Stradis interface now has a setting that allows selection between the 1.2 and 1.6 versions of their API. The 1.2 works with older cards like the SDM-275 and the 1.6 with their latest products.
- Fixed an issue with ATSC networks where the TCVT was carried in the same packet at the MGT.
- Updated to TechnoTrend's latest SDK which should support new cards like the TT-Budget S-1401.
- Added a new feature to ignore networks on DVB networks. If the NIT contains more than one network (for instance multiple orbital locations on DVB-S networks), the SDT and EIT for that network can be masked - useful if you can't receive the network and don't want memory used for SDT/EIT entries on that network. Right click a NIT entry to toggle.
- Added support for the Teleview in TSP102 card in ASI or SMTPE 310M modes. Source code is included in the SampleSource folder. Thanks to Robert Blazewicz for writing this.
- More sources for Hauppauge products (TODO - document/list)
- Hauppauge sources now correctly parse the command line, provide their parameters and support multiple cards simultaenouusly active.
- Added support for the AutumnWave OnAir USB2 8VSB/QAM receiver. This needs to be installed like the Sasem USB2 receiver.
- Added support for Sencore's DTU-234 8VSB/QAM receiver/analyzer.
- New keys added to EPG grid: Ctrl+D shows a calendar allowing automatic EPG scrolling to that date, S shows scheduled recordings and H allows hiding of channels - in this mode, click the channel name (the bit in yellow) to toggle between shown and hidden. Full a full list of supported keystrokes, press F1 when the EPG grid is shown.
- Charts showing historical data (signal, mux rate, video rate) now show the time on the X asis.
- Fixed a bug that caused a few erroneous CRC errors in the PMT when TSReader first parses the stream.
- Added QAM support for the Autumn Wave USB2 receiver.
- Fixed an issue where old thumbnails might sometimes show up after restarting TSReader.
- Fixed a problem where the EIT provided program name wasn't shown on top of MPEG-4 and H.264 thumbnails.
- Added support for the Alitronika AT4 "AsiPod". This is a ultra-compact ASI to USB2 adapter.
- Corrected high CPU load issue when Alitronika USB devices are unplugged with TSReader active.
- Fixed a problem with the file-loop source not looping on files containing Reed-Solomon FEC.
- Multi-card support for Technisat/BBTI cards based on the B2C2 chip. You must upgrade to version 4.4 or later drivers from http://www.bbti.us or http://www.t-data.lu. Up to 16 cards are supported in a single system.
- Added decoding for DVB-S2 FEC rates/modulation modes in the NIT.
- Fixed a bug where under very rare circumstances TSReader would incorrectly see a continuity error on a PID right after startup.
- Corrected a problem where clicking on the ATSC STT icon in the tree-view wouldn't show the DS (Daylight Savings) information correctly.

Version 2.6, build 43:

- Corrected an erroneous dialog box advising the file ATDV_API.dll couldn't be found.
- Corrected a problem with the B2C2 DVB-C source not tuning correctly.
- Fixed a crash with some ATSC zero length strings.
- Time tables (TDT and TOT in DVB and STT in ATSC) are now exported to XML.
- Corrected a problem with the video thumbnail decoder where streams containing neither PTS or DTS timestamps would cause noise and the occasional crash. This would only occur on streams transcoded in software from program to transport stream since almost all transport stream video PES packets have at least PTS.
- Fixed a bug with the Multicast UDP source that would lock up TSReader when attempting to close after inputting an invalid multicast IP address.
- Changed the timing of the DiSEqC positioner commands sent by the -P switch so that the position command would get sent before the tune attempt.
- Slight changes to the layout and tab order of the manual channel definition dialog - makes the flow much better.
- Fixed a bug where thumbnails wouldn't show on a mux with no channels defined in the PAT but loaded as manual channels.

Version 2.6, build 42:

- Corrected a problem with the IP address display in the multicast source "tune" dialog.
- Fixed the drag/drop function in the file sources.
- Added a very preliminary H.264 thumbnail decoder.
- Added an ATSC BDA source thanks to David R. Cattley (dcattley@msn.com). Two versions of the source are provided - one for BDA devices that return tuner status correctly and another that assumes the frontend locked - this later one works with more BDA cards, but obviously the scan function to find channels won't work right.
- Added an "Always on Top" option to the View menu.
- Fixed an issue with stuffing bytes in MPEG-2 video streams causing noise in the thumbnail display.
- Added an option to disable the beep generated when TSReader automatically restarts.
- Fixed an issue with the file loop source causing ES streams to be blacklisted because time goes backwards when the file loops.
- Added support for 192 and 204 byte MPEG-2 files when the file source is running in rate-controlled mode. Previously only 188 byte packet files were supported.
- Fixed a crash with very long ATSC ETT (event text).
- The thumnbnail generator now spots DCII video streams which only use B & P pictures and decodes many more pictures to build a noise free thumbnail.
- Added decoding for Active Format Descriptors (AFD) carried in the MPEG-2 video user data. When AFD is being carried, an AFD icon appears on the thumbnail and the format can be shown by selecting the video elementary stream in the tree-view.
- Added an option to the View/Chart/Settings menu - Real Time Charting. By default, TSReader reports in it's charts (including the PID chart on the main menu) the average bitrate for streams since TSReader was started. With this option enabled, TSReader bases all charts on a sample of the data rates every 250 ms. This results in much more widely swinging charts which can be useful for VBR encoder monitoring.
- Added supported for TechnoTrend's new USB 2.0 series of products and fixed a bug with the Budget DVB-S source not sending the correct DiSEqC command.
- Added support for Twinhan 1032 DVB-S card (same source as 1030/1030a) and for the new DVB-C CI card.
- Corrected a problem with PAT entries pointing to PMTs with a PID value of 0x1fff.
- The SI tree and PID chart now size correctly as the TSReader window is resized.
- Better support for Cable VCTs.
- When recording/streaming a single program, TSReader can now include auxiliary ES streams like subtitles, teletext etc.
- Sync-loss counting is now supported on certain sources.
- Added two new Reset items (on the Help menu). Reset PIDs resets all statistics used in the PID chart (average or real-time depending on the chart setting) and Reset All resets all TSReader counters.
- Added the ability to control the priority of the TSReader process.
- Multi-card support is now functional for Linear Systems cards. The -S switch is used to select the interface.
- Colors used on the main PID chart can now be changed.
- The EPG grid and EIT display now display the source of the EIT data. For DVB networks this will be current/next and schedule for the current or other transport. For ATSC, the EIT number is shown (EIT0, EIT1 etc).
- The charts and EPG grid now remember their window position and size.
- Added a new chart: Program Usage Stacked Bar. This shows the video, audio and other usage across the mux on a program by program basis.
- The satellite list is now sorted correctly so that the furthest satellite east is at the start of the list, the middle of the list is 0 degrees and the end of the list is the furthest satellite west. This way the list matches the arc.
- Major improvements to the satellite tuner dialogs. TSReader now has a list of LNB frequencies and can calculate the correct LO frequency, tone and voltage settings based on the frequency and polarity of the target signal. Single band, dual band and stacked LNBs are supported with dual band LNBs switching using either tone or voltage. Additionally, TSReader can automatically select the correct DiSEqC/Tone-burst input port based on the frequency. All satellite card users should click the new Input Setup button on the satellite tuner dialog to ensure the settings are correct. Note that the command-line interface currently doesn't take into account any of these settings - these are for user tuned frequencies only.
- The HTML exported PID chart now contains continuity and TEI error counts.
- For the full version of TSReader, a much faster PMT parser has been implemented. Previously, TSReader would process each of the PMT PIDs in turn to determine ES PIDs. Now, each PMT PID is processed simultaneously as data comes in on that PID. On a lot of networks - especially those with each PMT on a seperate PID - the older method would cause TSReader to take a long time to start up completely. For example decoding the PMTs for Hotbird's 12.558 GHz transponder takes about 30 seconds with the old parser and 5 with the new. The new parser is compatible with all non-demultiplexed interfaces - the old parser is used forced on automatically on these cards. If there are issues with the new parser you can force the old one on by creating a registry value in TSReader's settings: FastPMTParserDisabled [DWORD] = 1
- Fixed a bug where keyboard accelerators (like Alt+R) wouldn't always work.
- New FirewireDVHS source that reads from D-VHS tapes. Thanks to Matt Johnson for writing this.
- Couple new View menu options to expand and contract the ES PIDs listed in the PAT/PMT tree. Keyboard accelerators are also available: Alt+X to expand and Alt+C to contract.
- The Record PID and IP/DVB PID selection dialogs now have functions to load and save the list of PIDs to be recorded or IP/DVB parsed.
- The Record PID function can now generate PCR packets when recording to a single file. The PCR packets are fed from a PID on the input source and are placed on PID 0x1ffe. When this option is used with TSReader's file source in rate-controlled mode, TSReader can read back the packets at the rate at which they were transmitted even if the recorded PIDs don't carry PCR.
- Updated statistics area and various other UI cleanup.
- Added a source for the Digital Now Tiny USB2 DVB-T receiver from Australia.
- Added a source for the Tongshi DVB-S card.
- Rewrote the Nebula DVB-T source to support their latest design using the MT352 tuner.
- Added a Video Composition chart to show the bitrate and picture coding type for MPEG-2 streams (not available in Lite).
- Added an option for MDPlugins - if PID 0x9FFF is selected, TSReader will send the entire transport stream to the MDPlugin. This is not supported in the Lite version.
- Two file/file loop source changes: .tp files generated by MyHD software are now supported including sequencing through multiple files and the sources do a much better job keeping track of the last selected file type.
- Preliminary CI-CAM support for Twinhan CI-CAM compatible cards. Note that this has only been tested with the MediaGuard (SECA) system. Feedback on other CI systems would be appreciated.
- Added a source for the DVBWorld DVB-S USB 2.0 receiver. This operates with both DVB-S and DSS streams.
- Improvements to the DVB BAT decoder to allow multiple BAT versions to be shown simultaneously.
- New Load PIDs option on the File menu. This allows a list of PIDs (hex ASCII one per line) to be loaded into TSReader to make PIDs appear in the chart. This is useful for recordinging/monitoring PIDs that only come by very infrequently. A corresponding -T switch has also been added to load these files from the command-line.
- When using Record Program, descriptors from the PMT (program info) are now copied to the generated PMT.
- Improvements to the H.264 decoder. Now decodes streams from Harmonic encoders but still crashes with Scientific Atlanta encoders.
- Added a source for Alitronica DVB-ASI and DVB-SPI to USB 2.0 input devices.
- New control server command: THUMBNAIL. Writes a JPEG file containing the decoded thumbnail for the selected program.

Version 2.6, build 41:

- The DVB Boquet Allocation Table (BAT) is now decoded.
- XML export has a number of new fields including raw versions of many of the values exported.
- The UDP Multicast source can now specify the interface address to listen on. Useful for machines with multiple network interfaces.
- The DTVWorks 8VSB/QAM sources now report the SNR.
- A STALL command has been added to the control server interface. This tells TSReader to wait until all system tables have been decoded.
- The ATSC System Time Table (STT) now shows the GPS/UTC offset and daylight-savings settings.
- Corrected a problem with extended event descriptions in the EIT parser on DVB networks.
- TSReader now counts packets with the Transport Error Indicator set. Not all tuners set this bit in the transport packet but for those that do, TEIs are now shown on the continuity counter field and next to each PID in the PID chart.
- Multiple audio streams can now be recorded and streamed (not just one as before).
- Corrected a problem with the -a and -A switches when the service number specified wasn't correct or zero.
- Corrected a problem with the -A and -R switches to force spliting of files based on MB recorded per the documentation. Depending on how the last record was performed recordings would get split based on time which doesn't match the documentation.
- If one of the tables contains multiple descriptors with the same descriptor tag, these are now all processed by TSReader -- not just the first one as before.
- Fixed an issue with false continuity errors on DSS format streams.
- Added a recently used list of addresses to the UDP Multicast source dialog.
- Added support for the Pinnacle PCTV Sat CI DVB-S card.
- Added an EPG grid display function. Press F1 when viewing the grid to see the keystrokes that are supported.
- When using the -r or -R switches programs would record in the last selected format. By default TSReader with -r/-R now always records transport stream files unless you also use the -p switch.
- More EITx/ETTx tables are now processed on ATSC muxes allowing up to 72 hours of EPG data.
- Fixed a problem with decoding the ATSC TCVT where an extended channel name descriptor would cause no other descriptors to be displayed.
- The Sasem QAM source now locks 64QAM signals and correctly detects a front-end lock on QAM networks.
- Fixed a problem with the Record Program function where the SDT generated for the file's description had it's transport stream ID set incorrectly.
- Add output files from TSReader are now opened to allow read-mode sharing. So you can now start recording a file and point VLC at the file while still recording.
- Corrected a problem where sometimes the calculated mux rate would go to an almost random number after TSReader had been running for some time.
- Added -P command-line switch to handle DiSEqC positioners.
- Fixed a bug that caused false continuity errors on some DCII networks.
- Corrected a lockup that could happen on DCII networks carrying ECM streams for non-Motorola CA systems.
- Added support for the Twinhan DTC DVB-C card and their new ATSC card.
- Fixed a bug that sometimes caused noise to appear on the thumbnail pictures.
- Thanks to Jeremy Quirke, TSReader now comes with a preliminary source for DVB-T cards using Microsoft's BDA interface. This is supplied in both binary and source formats in the TSReader/SampleSource folder in the BDASource.zip file. Check out Jeremy's README.TXT file for more info. If anyone makes changes to the BDA source, please be good enough to pass a copy of the code back this way so I can include changes in future versions of TSReader.
- NOTE - In order to support tuning on BDA interfaces, the frequency in KHz must be specified for DVB-T and DVB-C interfaces. As a result, the command-line interface on these networks now expects the frequency in KHz. If you have scripts for TSReader, these will need to change to reflect the full frequency now required.
- Added a command-line option to record PIDs automatically.
- Added an option to the file source to disable the "Reached end of file" message.
- Added sources for Hauppauge Nova USB2-T and 90002 DVB-T sources. These were developed by Hauppauge and we look forward to any feedback regarding their use. You can either email me (rod@coolstf.com) or the author (stoth@hauppauge.com).
- Corrected a problem with table CRC error reporting that could cause erroneous CRC errors on tables sent with stuffing sections.
- Added a table display function - allows you to see the tables being carried on a PID and their average, maximum and minimum cycle time in milliseconds (full version only).
- The DVB Time Offset Table (TOT) is now decoded.
- Minor changes to the Tandberg TT1260 serial control.
- Fixed the Huffman text decoder used for ATSC strings.
- Fixed a problem with the thumbnail decoder that caused it to not display a picture if the stream was encoded as MPEG-1 or had padding between the sequence and MPEG-2 extension headers.
- A new option to specify the chart refresh rate (default is 1 second).
- Fixed a bug that caused the UDP source to loose data on high-rate streams.
- Added a UDP Unicast source.
- Added an option to automatically restart when data from the source stops for a specified number of seconds. This might not work with all TSReader sources since some send junk data if the signal goes away.
- Fixed a bug that could cause the split filename dialog to crash TSReader.
- Added both Multicast and Unicast RTP/UDP sources.
- Added the ability to have the File and File Loop sources operate in rate controlled mode. You can either specify the bitrate or have it calculated automatically. Turning this option on results in data being sent to TSReader at it's original rate. Useful for streaming out of TSReader from a file for example.
- Added a source for Firewire devices that are compatible with the "meidvhs" driver (like cable and terrestrial set top boxes). The driver and setup instructions are on the AVS Forum.
- Added a source for the Terratec Cinergy T² (USB 2.0 DVB-T interface).
- Preliminary code: Added audio thumbnails to show activity on audio streams. Disabled by default (Settings/Thumbnail Thread/Audio thumbnails enabled to turn on).
- TSReader finally remembers it's window position and size!
- Updated the Nebula source to support their latest line of receivers that use a Zarlink demodulator.
- Added a new switch -u. This tells TSReader to include any streams with a subtitle descriptor when doing a program recording.
- Added four buttons to the DiSEqC positioner dialog to select DiSEqC inputs - useful if the DiSEqC positioner is connected via a DiSEqC switch.

Version 2.5, build 40:

- Charting capabilities added: PID usage pie charts, Video bitrate line and area charts, Mux utilization line and area charts. If you have suggestions for other charts, please feel free to get in touch.
- Option to decode CA descriptor data in plain format.
- Fixed a problem with streaming and recording where the video or audio PIDs clashed with the hard coded PMT PID (0x0020). This now changes automatically should a clash occur.
- Moved the setup menu items for the Roku, XNS and VLC to the Playback menu since the Settings menu is getting crowded.
- Fixed a bug where using decimal PID mode would cause the Record PIDs and IP/DVB modes to not work right.
- Changed the way EIT events are stored in memory. This means significantly less memory usage when providers are sending more than current/next in the EIT.
- Added an option to the IP/DVB Save Payload function. This can now save just the Payload, the Payload and xxx/IP headers or the Payload, xxx/IP headers and the MPE header.
- Some statistics changes: The CAT section counter now increments all the time and the DVB Statistics area switches to DCII mode if a DCII mux is input - previously TSReader only handled switching between DVB and ATSC modes.
- Added support for Dish Network legacy switches for those sources that support that protocol (DTVWorks 8PSK and DVB-S interfaces currently).
- The ATSC CVCT table is now decoded.
- Changes for the Dektec USB source to support the latest driver which reduces CPU load by a few percent. You must update to the driver provided in the TSReader\Drivers\Dektec folder.
- Added a -C switch to enable/switch serial receiver control.
- Corrected a problem where the limit recording option would only work one time and then record zero length files.
- Fixed a tuning issue with the B2C2 DVB-C card.
- Added a -p switch to force command-line recordings into Program Stream format.
- Fixed a problem with copying the PID usage list to the clipboard and then pasting to applications like Notepad.
- Moved the two Show commands from the Help menu to the View menu (Show PID usage/Show Memory usage).
- The PID list and PID tooltips now indicate IP/DVB traffic when switched to IP/DVB mode and the PID is being parsed for IP data.
- When TSReader is running it'll now prevent the system going into standby mode which you probably don't want due to the excessive packet loss!
- For satellite users, added the ability to import SatcoDX SDX files, North American DVB and DCII CSV files and also now compatible with the Satellite List Toolkit generated INI files.
- Also for satellite users, TSReader now remembers the LNB frequency and switch input on a satellite by satellite basis. I know this isn't as good as knowing what type of LNB is connected to each switch port and calculating the correct LOF, but then TSReader is an analyzer so you should really know this stuff!
- You can now right click on DVB-S and DVB-C network entries and get a "Retune to this mux" option. Previously supported in DVB-T networks only.
- Many improvements to the Sasem OnAir USB adapter source. 8VSB (off-air) and 256QAM (cable) are currently supported - no 64QAM at present. Read this before attemtping to use this source.
- TSReader now understands 192 byte MPEG-2 packets. These are a four byte time stamp followed by 188 bytes of transport data. Currently the Dektec cards are the only sources that allows time stamping mode to be enabled.
- A Redistribution Control (RC) icon is now placed onto video thumbnails if this descriptor is detected in the channel's PMT (ATSC networks).
- The multicast UDP source can now have the IP address and port number to listen to specified on the command-line.
- Added a new GRAPH command to the control server.
- Major changes to the XML export function to include a lot more data and handle more than DVB-S networks. This should be transparent to existing parsers - documentation is provided here.
- Command-line documentation is now in it's own file and has received a major update - a number of switches were missing from the docs.
- Fixed a bug that would cause automatic recordings to sometimes crash TSReader when the recording completed and TSReader was shutting down.
- Added support for Broadlogic/V@box 2030 series cards. This card has an eight PID maximum demux so performance is limited with TSReader.
- Added IP/DVB data reception in MDPlugins. See the sample in MDSampleIP.zip in the TSReader\MDPlugins folder.
- Added a source for the DVBWorld DVB-S2101 USB 2.0 adapter - very cool and very tiny. Supports DVB-S and DSS modes.

Version 2.4, build 39:

- In IP/DVB mode the IP icons change to show recording or streaming, the PID or MAC levels can now be right clicked allowing all IPs carried on that PID or to that MAC to be either saved or streamed.
- Fixed a problem the Twinhan DVB-T source related to scanning.
- Minor updates for the Nebula DVB-T source.
- Fixed a bug that caused DCII SIT and TDT tables to be missing when TSReader was restarted.
- Corrected a problem parsing MPEG-2 PAT/PMTs that include stuffing.
- Added support for the Dektec DTU-225 ASI adapter for USB interfaces.
- Fixed a problem with the record timer.
- Corrected a problem with bitrate calculation when the stream included duplicate PCR packets.
- TSReader's main window is now sizable by default. TSReader Lite remains unsizable.
- Added very preliminary support for the Sasem OnAir USB HDTV adapter. Make sure you read this before attempting to get this source to work.

Version 2.4, build 38:

- Added decoding of AC3 flags: Center Mix Level, Surround Mix Level, Dolby Surround Mode, LFE enabled and Dialogue Normalization.
- Fixed a small GUI problem related to switching the input thread to critical priority.
- Changed the mux rate calculation code to attempt to ignore bogus values when the front end unlocks and sends junk into TSReader.
- Added a recording time limit - if you manually start a recording you can now specify how long in seconds the recording should run.
- TSReader now (finally) understands Digicipher II channel names. In their brilliance Motorola buried it in the CA ECM PID!!
- Full version has a new option to auto restart when the PAT version number changes. This is useful for input cards like DVB-ASI and DVB-SPI interfaces and you retune the external receiver. Provided the PAT version number is different (and it almost always will be), TSReader will beep and automatically restart processing the new mux.
- TSReader now separates (and displays separately) the DVB EIT short and long event descriptions on-screen and when exported as HTML. When exporting as XML, if both fields are present they're combined as before.
- Card number (-S switch) can now be specified for Dektec sources.
- Changed the name of the SkySeeker drivers to reflect the new name (Digital TV Workshop or DTVWorks) under which they will be sold.
- Added a recording elapsed counter to the main display.

Version 2.4, build 37:

- Corrected a problem with the B2C2 sources related to using BBTI's 4.3.x.x software.
- Corrected a bug that caused the Transport Stream ID to be shown as zero if the PAT's version number was zero.
- Fixed a bug that caused the continuity counter to increment erroneously on duplicate packets.
- Added the ability for third parties to write source drivers for TSReader. Have a look in the SampleSource folder for sample source code. If you write a source for TSReader, please let us know so we can add you to a mailing list to keep developers up to date.
- Full version users can now specify the number of tuning attempts before timing out. This is documented in the registry.html file in the registered users area.
- Fixed a problem generating XML where EIT entries would get junk written.
- Changed DVB-T sources to include a band scanner and to keep a list of muxes in a file that's read/write. Previously, DVB-T sources needed a file from TechnoTrend's software which was read-only.
- Added an option to run the input thread at priority critical. This should be used with care since if the source driver goes into a tight loop, it will most likely crash the system (or appear to).
- TechnoTrend sources now have multi card support . This allows up to four TechnoTrend budget cards to be active in the system at any given time. By default, TSReader will use the first card in the system. The -S switch is used to select the other commands. This inherently means you need to start TSReader from the command-prompt or a batch file.
- Fixed a bug in the TechnoTrend satellite source that would cause it to stop receiving data if the satellite signal was lost. Now when the signal returns, the source restarts sending data to TSReader.
- Fixed a bug in the TechoTrend DVB-T source that prevented TSReader from restarting the source.
- When DVB-T network tables are shown in the NIT tree, you can now right click the NIT entry and choose a new menu item "Retune to this mux". TSReader will then restart on that mux. We're going to add the same to DVB-C and DVB-S in future builds.

Version 2.4, build 36:

- Corrected a crash with Finnish DVB-T muxes that use very long EIT descriptions.
- Added a tree-view icon for ES streaming carrying DVB subtitling descriptors.
- Fixed the IP parser to handle MPE packets containing LLC_SNAP fields.
- Corrected a bug where only the first selected UDP/IP would be retransmitted.
- Corrected a bug where sources that continue to send bogus data after the signal is lost (TechnoTrend DVB-C card as an example). This could cause TSReader's main parsing thread to lock up in effect killing TSReader and requiring it to be shutdown by the Windows task manager.

Version 2.4, build 35:

- Added a multicast UDP source. This allows TSReader to work with receivers that take in MPEG-2 transport and retransmit it to the LAN as multicast UDP packets like the Novra S75 DVB-S Receiver.
- Corrected a bug in the B2C2 DVB-T source that prevented it from tuning correctly.
- Fixed an error dialog that showed up if WinPcap wasn't installed.

Version 2.4, build 34:

- Corrected a bug that prevented the audio selection dialog from being shown when streaming to XNS and Roku HD-1000 devices when there are more than one audio stream in a channel.
- The full version of TSReader has improved IP/DVB support including the ability to save the payload data from IP/DVB streams and/or retransmit UDP multicast packets onto your LAN in effect making TSReader act like a IP/DVB router. This is documented in a private file for registered users only.
- Corrected the IP/DVB parser to work with both DVB and ATSC encapsulated IP traffic.
- Now up to 16 PIDs at a time can be recorded or parsed by the IP/DVB code.
- Fixed some bugs related to restarting TSReader while in IP/DVB mode.

Version 2.4, build 33:

- Added decoding of the operator ID in the CAT descriptor.
- Fixed a problem generating ETSI-mode AC3 descriptors.
- Improved the performance of the HTML export, added thumbnail option to HTML export and added PID use to the HTML PID graph.
- Fixed a problem decoding certain NIT descriptors.
- Better Logical Channel Number (LCN) display in TSReader. LCNs are used on some DVB networks, particually on DVB-T networks. If TSReader detects LCNs, MPEG program numbers are displayed as "xx/yy" where xx is the LCN and yy is the MPEG program number.
- Added -H command-line switch to automatically export to HTML.
- Added the %v option to insert the event name (from the EIT) when automatically generating filenames.

Version 2.4, build 32:

- Added an icon to show user data being carried in the MPEG video stream. This requires thumbnail generation turned on and an unscrambled video stream.
- Corrected a problem that showed false continuity errors on some DSS streams.
- Corrected a problem with DiSEqC commands being sent via Twinhan 1020/1020a cards when the power is first turned on.
- The DiSEqC positioner interface is now available as a menu item within TSReader - useful for peaking up a dish after getting a lock. It's on the File menu.
- The PMT's Program Info descriptors are now decoded correctly.
- Updated the PID list and PID tooltips to show ECM streams.
- Added code to passthrough the ATSC Redistribution Control descriptor (the broadcast flag) when recording. This can be disabled by users outside the FCC's jurisdiction and authorized users (like TV stations).
- Corrected a problem that caused DVB-C symbol rates to get displayed incorrectly.
- The VBI/Teletext parser now updates each time TSReader updates a thumbnail so the icons displayed with the thumbnail are now accurate all the time - not just when TSReader first generated thumbnails.
- Added thumbnail icons signaling 4:3, 14:9 and 16:9 aspect ratios when such data is sent via WSS.
- Corrected a problem with the LNB control voltage on some Twinhan 1030/1030a cards.

Version 2.4, build 31: (private beta - not released)

- Fixed a problem with parsing type 0x80 streams (sometimes video on Digicipher networks) on DVB muxes.
- Corrected a problem with selecting channels by thumbnail when the thumbnail display is scrolled.
- Added BER display to the TechnoTrend card (in addition to SNR). On their DVB-S card this always seems zero so I'd be interested in knowing if there's correct BER on DVB-T and DVB-C cards.
- Added an option to display PIDs in decimal rather than the default hex.
- Added DiSEqC 1.2 positioner control to TechnoTrend, Twinhan and SkySeeker satellite sources.

Version 2.4, build 30:

- Fixed a problem with the -r and -a switches failing when split recording was enabled.
- Added -l (lower case L) switch to force TSReader into the low-res mode it uses when encountering 800x600 or lower resolution displays.
- Fixed a problem displaying channel names with & characters in the thumbnail display.
- Fixed a problem that would sometimes crash TSReader when the file source was restarted.
- Added support for transport streams with DTS audio.
- Added better decoding of many DVB descriptors used in European networks.
- PMT stream type 0x06 is now displayed as AC3, PCM, DTS audio or VBI/Teletext when carrying these services.
- Changed the layout of the record dialog to make it easier to read.
- Added an option to select between "Defacto" and "ISO" recording for AC3, PCM and DTS audio stream. This is explained in the FAQ.
- Fixed a problem that could cause TSReader to lock up when quitting and it was parsing a stream.
- Added decoding for VBI/Teletext streams (PMT type 0x06 with a VBI/Teletext descriptor). TSReader looks for Teletext, Subtitle, VPS, WSS, CC and monochrome 422 data being sent in this stream and displays appropriate icons at the bottom of decoded thumbnails. This parsing is done by the thumbnail thread and requires the PID carrying the VBI/Teletext data to be unscrambled.
- On ATSC transmissions, Closed Captions (CC) and DTVCC (Digital Television Closed Captions) carried as user data in the video stream are now noted and the associated thumbnail gets a CC or DTVCC icon if this data is present.
- Selecting a new source in TSReader no longer requires a restart - the source is loaded and the tune dialog appears. This doesn't apply to the Lite version.
- Add a "browse for folder" dialog to the Record PIDs dialog.
- Added -1 (figure one) switch to force TSReader to run on a single processor in multiprocessor environments.
- Changed the B2C2 source (used on SkyStar2 and BBTI cards) to support the latest BBTI driver which allows the entire transport stream to be sent to TSReader. At press time this driver is in beta but should be available on the Broadband Technologies website shortly. This vastly improves TSReader's performance on these cards and therefore the upgrade from BBTI is strongly recommended.

Version 2.4, build 29: (private beta - not released)

- Fixed a problem with -V switch.
- Fixed a bug with the MultiDec plugin interface that caused DSS packets to not stream correctly.
- Added support for both the old "MpegPSPlay" and the newer "CinemaSix" playback applications for the Roku HD-1000. Additionally, the Roku trace window's contents can now be copied to the clipboard.
- Updated a number of satellite sources to correctly report their tuner and signal status. The remainder will get done in the next release.

Version 2.4, build 28:

- Fixed a problem with thumbnail generation in folders where a period is part of the folder name (like C:\Program Files\COOL.STF\TSReader !!)
- Added a -V switch to allow a time limited run of VLC streaming. See the command-line documentation below.

Version 2.4, build 27: (private beta - not released)

- Added support for SkySeeker DVB-S, DSS and cable QAM sources
- Fixed a bug that caused TSReader to lock up with screen resolutions lower than 1024x768. In low resolution mode, TSReader now also fits an 800x600 display.
- Added support for the Dektec line of ASI and SPI receive cards. The first receive card in the system is used - only support at this time for the first card.
- Since the first 2.4 beta we've been stripping : (colon character) from exported XML - this is causing others problems so in this version there's a new "Keep Special XML Characters" option on the Settings menu to keep these characters.
- Added support for myHTPC. Read this excellent HOWTO from Blueman2 on configuring and using TSReader with myHTPC.
- Fixed a bug that caused the SDT and EIT to be out of order when the restart option is used.
- Added serial remote control support for the Tandberg TT1260 commercial receiver.
- New PID List on the Help menu - lists the active PIDs and shows what the tables say they carry
- Tooltip function for the PID chart. Hover the mouse over a line in the PID chart and TSReader will figure out what the PID is used for and display a tooltip with this information.
- Added an option to allow only SDT tables from the current mux. This can prevent erroneous SDT decoding if the mux is running SDT sections for the current and other muxes using the same program numbers.
- Improved the SI parser to automatically detect DVB streams even if the PAT doesn't include a network entry.
- Switched to a new setup utility.

Version 2.4, build 26: (private beta - not released)

- If more than one copy of TSReader is installed, TSReader reselects the source from the current version being used so you no longer need to manually reselect the source when switching versions.
- Supports type 0x40 PMT entries commonly found on digital cable.
- Added support for serially controlled commercial receivers. In this version support is present for the Tandberg Alteia Plus and Motorola DSR-4800 receivers. The serial control allows tuning and program selection when used in conjunction with a non-tuning source such as the Linear Systems DVB-ASI card and the SkySeeker DVB-SPI interface.
- Added an option to generate thumbnails after the Conditional Access (CA) system has had a chance to descramble the program. This is designed for commercial broadcasters that have an authorized receiver and a connection to the PC via ASI or SPI along with serial control. TSReader will cycle through the channels in each mux, tell the external receiver to select the program (therefore descrambling it) before grabbing a thumbnail. It's assumed the receiver is authorized for all channels in the mux.
- Added decoding for the ATSC EIT0-3 and ETT0-3 tables - these provide 24 hour EPG on those few channels sending EPG data.
- Added an option to display a fixed thumbnail if the channel is scrambled.
- Clicking on a thumbnail now selects that channel. Double clicking with no recording or streaming active will launch VLC in Play mode.
- Added support for the official TSID tables used in ATSC muxes - if the TSID is sent right you'll see the locale where the transmission occurs.
- Added a -D switch to force TSReader into DVB decoding mode. Useful on muxes that contain both ATSC and DVB tables.
- Thumbnails generated by TSReader now include the current event based on data sent in the event tables - both DVB and ATSC muxes will display the current program title.
- Corrected a bug with DVB/IP address decoding.
- Added a remote control server to TSReader. See this document for more details. In this beta this interface is not yet completed. The next beta will finish up this interface but we're looking for feedback on the current system.
- TSReader's recording and streaming now supports audio-only and video-only streams. In the at least one audio and one video stream were required before recording or streaming.
- Fixes to handle text in the DVB EIT's short event description.

Version 2.4, build 25: (private beta - not released)

- Record Program option can now split files based on either size or time. The new time option selects the number of seconds and the time is based on the time stamps (PCR) in the stream. So if you use with the file source (which typically processes data faster than real-time) file splits may occur faster than the time you set, but the resulting files will be the right length.
- There's now complete control over the filenames that TSReader generates when it splits a recorded file. This is controlled via the Settings/Split Record Filenames... menu. Full details are shown on the settings dialog.
- Added a proper status bar with activity and recording/streaming indicators.
- Added playback support for the Roku HD1000 Digital Media Player when used with the CinemaSix Media Player. TSReader will automatically telnet to the Roku HD1000 and start the CinemaSix player when you select playback in TSReader. Channel changes in TSReader are also handled correctly. The HD1000 supports both SD and HD streams up to around 50 Mbps.
- Added support for the SkySeeker line of USB 2.0 interfaces. These cards support 8PSK, 8VSB/QAM and DVB-SPI interfaces.

Version 2.3, build 24:

- Option to hide TSReader when minimized - icon is created in the tray area.
- New -M option to startup TSReader minimized
- New -i option to control instances of TSReader - with this option TSReader will check to see if another instance is running and if it is will shut it down prior to it's startup.
- Fixed a bug with detecting modulation mode and exporting to XMLTV format
- Corrected a possible crash with certain network tables
- Support for DVB-C delivery descriptors
- Full support for the Nebula Electronics USB 2.0 DVB-T interface
- Added -X option for automatic XML:TV export
- Fixed a bug where if you have record program mode set to program-stream, streaming into VLC, the Stradis or D-VHS interfaces would fail.
- Corrected a crash when drawing thumbnails on muxes that have an empty SDT for the channel
- Corrected thumbnail display when the MPEG video encoder is generating only P-frames.
- The internal HTTP server (used to stream into VLC) now sends a (bogus) file length when the remote client connects. As a result, more programs including Windows Media 9 can now connect reliably to the TSReader HTTP server and stream video.

Version 2.3, build 23:

- Fixed a problem with the NIT and SDT decoders where not all descriptors were displayed.
- Added support for logical channel descriptors. These are used on DVB-T networks in the UK and Australia. TSReader still refers to the channel by it's MPEG program number, but the overlay put onto thumbnails now contains both the MPEG program number and logical channel number.
- New option to bypass PMT parsing for channel numbers above 65500. Many DCII networks have a bogus entry in the PAT pointing to a non-existent PMT. This prevents TSReader spending about 30 seconds waiting for the PMT to come along.
- Corrected a problem with all the tuner dialogs so that the parameters aren't overwritten by the last selected mux item.
- Added a warning to the satellite tuner dialog if the LNB frequency is zero.
- Added an option to force ATSC compatible PIDs when recording to D-VHS.
- All command-line switches that use filenames now support spaces in the filename provided the name is surrounded by double-quote marks, i.e. "C:\My Documents\A Recording.ts".
- Fixed a problem with the command-line for DVB-T Twinhan sources.
- Added an option to show the continuity error count for each PID in the PID chart.
- Corrected a problem where a PAT with only an NIT entry entry (no real programs) could cause TSReader to continuously loop thinking it was decoding a new PMT.
- New -d option. This disables elementary stream parsing and thumbnail decoding for the current TSReader session. Add this to recording scripts with the -a and -r options and you won't have to keep turning thumbnails back on.
- Fixed some issues with -a and -r switches being parsed correctly.
- Changed the file source to search up to 512MB into an MPEG-2 transport stream file for the sync pattern.
- New -v option. This selects a stream and automatically starts it playing via a VLC configuration.
- Now prompts to save manual channels when you quit without saving them.
- Added support for LPCM audio streams. These are either streams with a type of 0x06 and a format descriptor of BSSD or have a type of 0x83. TSReader will record programs with these streams as type 0x83 with a BSSD format descriptor. Currently we haven't found any software (including VLC) that plays them correctly - although VLC gets close.
- Corrected a problem with the TechnoTrend Budget DVB-C source - now fully operational.
- Added support for exporting program guide info (from the DVB EIT table) into XMLTV format for use with myHTPC. There is a plugin coming for myHTPC that will interface with TSReader.
- Hopefully made some improvements to the reliability of the Stradis decoder interface.

Version 2.3, build 22:

- Fixed shut-down lockup on B2C2 sources
- Added ability to save thumbnails continuously to the same filename. Very useful for monitoring muxes remotely since a web-page can be pointed at the generated JPEG files. These images can also be saved as resized thumbnails or full broadcast size pictures.
- Whenever the EIT is displayed or exported, the data in the table is now sorted by date. Although most DVB systems send the EIT in date order, there was a possibility that TSReader would receive them out of order.
- DiSEqC and tone-burst switch options now get enabled correctly depending on the source. For example, Twinhan cards don't support tone-burst switches (they do support DiSEqC switches however), so now when the Twinhan source is used, the tone-burst options in the tune dialog are disabled.
- Corrected a problem with the source selection dialog when TSReader was already running.
- Cleaned up support for the Nebula range of DVB-T receivers
- Added the ability to change the PID used for the EIT. This is very useful on some DBS services such as Dish Network that transmit a long-range event table on a special PID. To enable this function you need to create a DWORD registry entry with the PID to substitute called "EITPID" in HKEY_CURRENT_COMPUTER\Software\COOL.STF\TSReader. There are two sample .reg files provided that switch TSReader's parser between 0x0012 and 0x0300 on Dish Network. Their long range EIT is carried at 110 west on 12.632 GHz RHCP 20MSps. Keep in mind that the Dish Network long-range event table carries data for all their channels out to nine days - this means you need a fast processor to keep up with the stream and a lot of RAM in your PC; it takes about 300 MB to buffer 9 days worth of data.
- Two new thumbnail options both related to the "Save all thumbnails" function. There's a new option to save the thumbnails at transmitted size (by default, they're scaled down to true thumbnails) and another option to force TSReader to name each thumbnail generated over time with the same filename. This is useful for remote monitoring a mux and having a webpage pointed to the JPEG files generated by the "Save all thumbnails" function.

Version 2.3, build 21 (private beta - not released):

- Preliminary support for the Nebula Electronics line of DVB-T receivers (PCI and USB 2.0)
- Corrected a bug with the -m and -r/-R switches being used simultaneously
- Changed the filenames used when recording a single PID to remove the space - for example "PID 0x0400.bin" is now called "PID_0x0400.bin"
- Started cleanup of the satellite data files supplied with TSReader. This prevents DSS carriers showing up when using DVB sources (and vice-versa) and also adds support for advanced modulation carriers for some hardware we know is on it's way. Take a look at Satellites\2500.ini for a good example.
- Added support for tone-burst satellite switches.

Version 2.3, build 20 (private beta - not released):

- Added -t switch to select the audio track when doing an automatic command-line recording with the -r or -R switch.
- Fixed a bug that caused the tree-view of the tables to get totally screwed up when switching between IP/DVB and MPEG-2 modes.
- Added support for DVB-T (terrestrial) and DVB-C (cable) B2C2-based cards.
- Bug fixes in the Twinhan 1020 source to support more variations of this card.
- A new TSReader NoTune source - useful for non-standard Twinhan cards that don't tune correctly with TSReader. You need to first tune the card using another program and then switch to TSReader to process the data from the mux.
- Corrected a problem that caused the TDT (Time Definition Table) to not show up when TSReader's source is restarted.

Version 2.3, build 19 (private beta - not released):

- Correct operation with a wider range of MD plugins including BISS.dll.
- Correct operation with the newly released VLC 0.7.
- The thumbnail decoder now supports 4:2:2 profile MPEG-2 video. This also has the benefit of now displaying 4:2:0 encoded material when the chroma type field isn't set correctly.
- Up to 16 VLC configurations can now be stored. This allows you to prebuild command-line parameters for VLC and run them at will just as if you were to use VLC for playback. For example you can setup a VLC configuration to take video data from TSReader, decode it locally in VLC, write it to the hard drive in a number of different formats plus multicast it onto your network. Nifty.
- Added a looping file source. This is just like the normal file source (reads MPEG-2 transport stream files) but loops when it reaches the end of the file. This is useful for looking at small transport stream captures and there isn't enough data available to decode the stream correctly without multiple passes of the stream.
- Some internal buffer sizes can now be specified using the Buffer Sizes item added to the Settings menu. This is primarily for people experimenting with solving buffer overrun problems that sometimes occur when streaming to devices like D-VHS where the CPU must load a ton of components to get the video streaming.
- Added support for TechnoTrend-based DVB-C cards.
- Changed the way single program streams (and therefore streaming to output devices) generate tables. Previously, tables would be added to the output stream when they appear in the input stream. These tables (PAT/PMT and perhaps SDT) are now inserted every 100 ms per the MPEG-2 specifications (1000 ms for the SDT packets).
- Added a new -a/-A switch to automatically record the entire transport stream. See documentation below for more info.

Version 2.3, build 18 (private beta - not released):

- Added support for the Twinhan DTT (DVB-T) card.
- Added support for B2C2-based cards like the SkyStar 2 and Air2PC-ATSC. Please read this note for more information about support in TSReader for these cards.
- Added tuning support for the Twinhan 1030/1030a cards.
- Fixed a bug that would cause TSReader to crash when recording in program stream format with certain encoders.
- Continuous thumbnail export function added. With this function enabled, each time TSReader generates a thumbnail it will be saved to a unique JPG file stamped with the date and time. Great for IDing video streams that don't have an on-screen logo and you don't want to watch the program continuously.
- XML export function now exports event date and time in both UTC and local formats.
- Spectrum inversion and bandwidth settings for DVB-T cards are now saved.
- Command-line options can now be specified in any order.
- New -m switch to pre-load manual channels.

Version 2.2, build 17:

- Changed TSReader into two products. The registered version has all functionality enabled and is available to everyone that's purchased TSReader. TSReader Lite limits some features and is free.
- Tweaks to the TechnoTrend DVB-T source for compatibility with the Australian 7 MHz system.
- Now understands Dolby AC3 audio when sent on pure DVB systems like DVB-T in Australia.
- Removed the "old" Twinhan source since it's no longer supported.
- Changed the File source to allow reading of DIRECTV streams.
- Fixed a problem with the Twinhan polarity voltage.

Version 2.2, build 16 (private beta - not released):

- In the TechnoTrend DVB-T source, you can now tune in 100 KHz steps - previously this was limited to 1 MHz.
- Added support for real-time decoding on the PC using VLC from videolan.org. As part of this, TSReader also now has an internal HTTP server which can stream the currently selected program. So you can receive TV from a PC with a satellite card and then stream the video over to another PC by connecting to the TSReader HTTP server. If both TSReader and VLC are on the same PC, TSReader will control VLC so channel changes happen right.

Version 2.2, build 15 (private beta - not released):

- Finally got a source written for the Twinhan 1020/1020a card that tunes properly. Users of these cards should stop using the "old" Twinhan source (although it's still provided)
- Added very initial support for the DIRECTV system. You see the PIDs (called SCIDs in DIRECTV parlance), but there's no table decoding since I have no idea how the tables are structured. You can record the transport stream or individual PIDs but that's about all. If you know anything about DIRECTV tables, please let me know! This works on Twinhan 1020a (red) cards only.
- Added a new source for the Twinhan 1030/1030a. This source doesn't tune yet, but does transfer data perfectly once tuned by another application.

Version 2.1, build 14:

- Cleaned up some packet loss issues with the TechnoTrend Budget PCI Satellite card. If you experience continuity errors with the satellite card, try turning off LNB power and power the LNB from another source.
- Added support for the TechnoTrend PCI Terrestrial card (DVB-T)
- Changed the PAT scanner to look for the latest PAT version - this was causing issues on Nimiq 2 at 82w where two PATs (one old and one new) are being sent
- Changes to the DVB NIT parser to handle systems other than DVB-S. The parser now supports DVB-S and DVB-T network tables - if you have a cable TechnoTrend card, please contact us!
- Added an activity indicator to the main window. I was running TSReader for hours and it was very hard to see that it was still alive, so every time 1 MB of satellite data is processed by TSReader, the indicator changes.

Version 2.0, build 13:

- Added support for XBox Media Center streaming with the XNS protocol.

Version 2.0, build 12:

- Rewrote the data source code in TSReader. Now there's a DLL for each of the input sources (like the Twinhan card) and now there's only one program - TSReader.exe.
- Setup program included - no more dealing with ZIP files
- Channels that are not indexed by MPEG-2 tables (like the WB mux on Galaxy 11 at 91 degrees West) can now be defined with manual channels (on the File menu). There's a sample included for that WB mux.
- Automatic recording from the command line can now write to the D-VHS deck. This is accomplished by setting the record filename to "d-vhs" or "D-VHS".
- The TechnoTrend Budget line of satellite cards is now supported. If you have a cable or terrestrial version of one of these cards, please contact me!
- A new interface for the Twinhan series of satellite cards is available. This should eventually support all their cards, but has been tested with the 1020 and 1030. Currently, this source cannot tune properly, so you have to use another application (like WinDVB which came with the card) to tune, close that application and launch TSReader. We're working on getting the tuning working and all cards supported.
- Please note that version 2.0 does not include a DirectShow decoder. We have to rewrite this and will include it with the next version of TSReader.

Version 1.1, build 11 (private beta - not released):

- Added ability to record a program as either program or transport stream. Program stream recording multiplexing isn't quite right yet, so for the time being we suggest staying with transport streams.
- Added a option to record a program directly to a D-VHS deck via FireWire. This requires the right drivers loaded (see this website for more information) and also requires Windows XP. Since D-VHS records the transport stream you can use this to record either SD or HD material from the currently tuned mux. For this option to work, you also need the DirectShow filter TSP2SP.ax loaded on your system. Easiest way to do this is to install the excellent DVHSTool utility.
- Added compatibility with MyTheatre satellite and multiplex files for tuning the Twinhan version of TSReader. To make this work, download and install MyTheatre (easily found on the Internet) and then copy the Satellites folder from the MyTheatre installation folder into TSReader's folder. The Twinhan tune dialog will then display all the satellites and multiplexes defined in the MyTheatre files.
- Fixed problems with the Twinhan tune dialog
- Fixed a problem with generating thumbnails on some HD channels
- Added a dialog to select the interval at which thumbnails are generated

Version 1.1, build 10 (private beta - not released):

- When using the PID record function, if an output file can't be opened (in use in an editor for example), TSReader now shows an error message.
- A number of memory leaks have been plugged.
- Corrected satellite polarity control (voltage level on the LNB connector) on Twinhan cards.
- Fixed DiSEQc switch input labels - inputs are now correctly 1 through 4 and not 0 through 3.
- PID recording can now either record the data from each PID to a separate file (that's how it's done it until now) or to a single file in the order in which the packets from those PID(s) were received.
- Removed the function buttons - TSReader now uses a normal menu.
- Menu options added to retune the Twinhan, open a different file or restart TSReader from a new ASI source (depending on version).
- Option to save the thumbnails generated by TSReader as JPEG files.
- Fixed the flicker problem in the tree display.
- There are now options to set the priority of the threads responsible for reading data, processing the data and decoding the thumbnails. If you experience continuity errors that are not signal related, try adjusting the thread priorities to see if it resolves the errors or disable the thumbnail thread.
- When selecting a new channel with the Stradis Professional MPEG-2 decoder active, TSReader will now setup the new channel correctly.
- Added very preliminary DirectShow playback - this will probably crash TSReader and use way too much CPU time but it does decode. Please read the support page first for information on setting up DirectShow playback.
- Added playback via XNS which is a protocol used by the XBox Media Player. This allows TSReader to demux a stream and send it over the network to the XBox for real-time playback.
- Added support for MultiDec plugins - see the support page for more information.
- Added an option to expire EIT events in the past. This will reduce memory loading when TSReader is run for a long period of time.
- Added memory tracking to catch any memory leaks. Don't turn this option on unless we tell you!

Version 1.0, build 9:

- Fixed problem that caused an access fault when closing the Linear Systems version of TSReader.
- Fixed a problem that caused an error indicating the Stradis decoder couldn't be located each time TSReader started on a system without a Stradis card.
- Turbo-coded QPSK transponders in the NIT are now decoded correctly (Dish Network DBS system in the USA uses these).
- The automatic text export mode has been replaced with automatic and manual XML export. See here for details.

Version 1.0, build 8:

- Fixed a bug that caused the stream decoder built into TSReader to fail if the tables pointed to a non-existent stream
- The internal MPEG decoder now only attempts to decode profiles it can handle - previously it would attempt to decode 4:2:2 encoded streams although the decoder can't currently process these.
- Real-time output to Stradis Professional MPEG decoder cards is now supported.

Version 1.0, build 7:

- When making a split recording, the size at which TSReader switches to a new file can now be specified. Previously it was set at 4 GB. Please note that as a result, the -R option now takes an additional parameter. See below for details.
- When making a single program recording, TSReader now adds an SDT to the recorded stream containing the date and time the recording was made and user specified text. If you have a bunch of MPEG files and can't remember what they contain, just drop them into the file version of TSReader and look at the SDT decode.
- An experimental mode has been added to allow possible reception via the Twinhan COFDM terrestrial card. To enable this mode, set a DWORD value of 1 called DontTune to HKEY_CURRENT_USER\Software\COOL.STF\TSReader. You can also double click on the notune.reg file in the explorer to enable this mode.
- If your version of TSReader has expired and you'd like to try the new features for a futher month, please email me and I can send you a special unlock code for the extended evaluation.
- MPEG video stream decoding is now semi-continuous. After all the clear MPEG video streams are decoded, TSReader pauses video decoding for five seconds and then decodes the video streams again. This results in lighter CPU load than decoding continuously and still gives you an idea of what's on each channel. If you prefer faster updates, create a DWORD value called ESParsingCounterReload with a value of 1 in HKEY_CURRENT_USER\Software\COOL.STF\TSReader.

Version 1.0, build 6:

- Finally corrected the internal buffering bug that caused false continuity errors. TSReader should now record streams perfectly provided the signal level is high enough.
- Unscrambled video elementary streams are now decoded and displayed. Switching between the PMT entries puts the current channel at the top of the image list.
- If no command-line is specified in the Twinhan version, a tuning dialog is now displayed.

Version 1.0, build 5:

- Updated to reflect correct Digital River sales page.

Version 1.0, build 4:

- Not released - internal use only

Version 1.0, build 3:

- Decodes MPEG video, MPEG audio and AC3 elementary stream headers. When one of these streams is selected (and it's not scrambled), TSReader will display data about the stream. Note: the MPEG audio decode is a little broken right now and may result in bizarre results.
- Small internal bug fixes based on testing TSReader with some European streams.
- Updated internal CA table with Canal Plus, RAS and SkyPilot CA systems now displayed correctly.
- ATSC MGT table now decoded.
- In file mode if no filename is specified on the command-line, TSReader now uses the standard Windows dialog to select the file.
- Also in file mode, TSReader now acts as a drop target for files. If you want to analyze another recorded MPEG-2 transport stream, you can drop the file from the Windows Explorer onto TSReader which will then switch to that stream.
- Understands HiPix .ts files. These are generated by the HiPix ATSC PCI card and record one minute of transport stream per file. As each file is processed, TSReader will switch to the next file in sequence.
- All options are now saved and restored each time TSReader starts.
- Corrected a bug that caused erroneous continuity errors when duplicate packets were detected.
- If continuity errors are detected, TSReader will indicate which PIDs have these errors by appending a * to the bitrate shown for each PID in the graph.

Version 1.0, build 2:

- Added button to select all Export to HTML options.
- Added PID recording capability. Up to eight different PIDs can be recorded to individual files.

Version 1.0, build 1:

- TSReader is now released. You get 28 days to use TSReader for free then it must be registered.
- 8PSK modulation in the NIT is now decoded correctly.
- -t option added for automatic text export

Beta Version Build 7:

- Added PID usage chart to output HTML file.

Beta Version Build 6:

- Added option to sort PID chart by PID number as well as bitrate
- Added option to allow the PID chart to be sorted both ascending and decending
- When recording, a new option allows files to be split when they are greater than 4 GB in size. This allows continuous recording on file-systems like FAT32 which restrict the file size.
- New command-line option to allow automatic recording. See below.
- Handles incomplete SDT segments found on some material encoded with Tandberg gear (specifically CBC's 8PSK mux on Anik F1).
- Estimated bitrate is now shown on all PIDs (provided the bitrate can be calculated from one of the stream's time-stamps). To indicate that the bitrate is estimated, the percentage of the stream and bitrate are separated by the ~ character whereas if the bitrate for a PID is calculated from the PCR, the - character is used to separate percentage and rate.

Beta Version Build 5:

- Still looks the same, but internally changes are being made. Added support for DiSEqC 1:2 and 1:4 switches on the Twinhan card.

Beta Version Build 4:

- No major visible changes. Internally, TSReader has had a lot of window related work done, but this wasn't complete for this beta with the result that the display looks identical - next month's will look a lot different.

Beta Version Build 3:

- Now handles compressed EIT program name and description on Dish Network

Cards with demultiplexers

TSReader was designed around hardware interfaces that send all packets from the transport stream. Some cards, such as those using the B2C2 control chip with pre 4.3.0 drivers, cannot send the entire transport stream over to the PC but instead only allow a certain number of PIDs from the mux active at any one time. TSReader does support these cards but with a few restrictions:

- The calculate bitrates will be inaccurate. TSReader calculates the mux and PID bitrates based on the arrival time of packets. Since the demux is not letting all packets through, TSReader can't accurately calculate the rate.
- There is a limit of 39 active PIDs on the B2C2 cards. TSReader will decide automatically which PIDs are active and setup the demux correctly, but this may not work for all cases. We obviously welcome feedback if you're having a problem receiving a particular channel.
- In the PID chart, you may notice that with cards using a demux there are not only red/green PIDs (scrambled/clear) but also dark-red/dark-green. The darker PID indicators indicate that the PID is active, but currently the demux isn't processing any packets from this PID.
- TSReader only supports muxes with correct tables on cards with demultiplexers. If you tune a mux without MPEG-2 tables, TSReader has no way to decide which PIDs to enable in the demux.

Support

If you need support or have comments, please email me at rod@coolstf.com. You also may want to visit our TSReader Support Portal.