TSFileSource

nate.deepcreek.org.au / Programming / TSFileSource

Description

TSFileSource is a DirectShow File Source push Filter that can be used to load DVB-T Transport Stream Files for playing in Filtergraphs.

More ...
Features

What does it do?

  • It can load Full or partial TS Files that are captured from the DVB-T cards.
  • It can detect the duration of the TS file based on the Broadcasters inserted PCR information.
  • It can detect major changes in PCR timing within the file stream and provide an accumulative duration time.
  • It can parse the Transport stream information and display the Network Name, Original Network Name, Channel name and Number.
  • It can display the Network ID, Transport ID, Program Stream ID, Video, Audio, Teletext pid values.
  • It can also display the current Now & Next information while playing.
  • It can change between program streams while playing without the need for the user to restart the application and maintains current playing time after changing. It can also do this when switching between different Audio stream types by reconnecting to the decoders or will re-render new filters if the reconnection fails due to incompatable decoder filters.
  • It can play Full or partial TS Files as they are being recorded.
  • It will play the live file to the end of the recording without stopping.
  • It will allow you to play two seperate files within the same filtergraph although seeking will be limited to the same stream time.
  • It will alow Player applications to be able to select Sub-Programs via their IAMStreamSelect Interface.
    (eg. zoomplayer and Windows media player.)
  • It will allow you to choose MPEG 1 or MPEG 2 audio pin type on the MS Demux.
  • It will allow you to choose audio 1 or audio 2 pid as a preference.
  • It will allow you to choose Mpeg or AC3 audio type as a preference.
  • It can support some H.264 Video types.
  • It can Play TS files without PAT or PMT packets.(Note: Must have PCR packets)
  • It can save its global property page settings in the registry.
  • It can save seperate settings for audio pin type, Audio preference and program chosen in the registry referenced to the network ID.(Used with Full TS Files)
  • It can update the filtergraph's current & duration time using the "EC_LENGTH_CHANGED" event.
Downloads
TSFileSource 2.2.1.172 Zip File (195kb) Source Code (575kb) History
TSFileSource 2.2.1.0 Zip File (697kb) Source Code (745kb) History
TSFileSource 2.2.0.8 Zip File (292kb) Source Code (338kb) History
TSFileSource 2.2.0.7 Zip File (217kb) Source Code (236kb) History
TSFileSource 2.2.0.6 Zip File (213kb) Source Code (233kb) History
TSFileSource 2.2.0.5 Zip File (208kb) Source Code (227kb) History
TSFileSource 2.2.0.4 Zip File (204kb) Source Code (221kb) History
TSFileSource 2.2.0.3 Zip File (204kb) Source Code (220kb) History
TSFileSource 2.2.0.2 Zip File (381kb) Source Code (402kb) History
TSFileSource 2.2.0.1 Zip File (174kb) Source Code (177kb) History
TSFileSource 2.2.0.0 Zip File (173kb) Source Code (177kb) History
TSFileSource 2.1.1.9 Zip File (170kb) Source Code (174kb) History
TSFileSource 2.1.1.8 Zip File (170kb) Source Code (174kb) History
TSFileSource 2.1.1.7 Beta only. Zip File (111kb) Source Code (122kb) History
TSFileSource 2.1.1.6 Zip File (119kb) Source Code (109kb) History
TSFileSource 2.1.1.5 Zip File (119kb) Source Code (109kb) History
TSFileSource 2.1.1.4 Zip File (119kb) Source Code (109kb) History
TSFileSource 2.1.1.3 Zip File (119kb) Source Code (109kb) History
TSFileSource 2.1.1.2 Zip File (119kb) Source Code (109kb) History
TSFileSource 2.1.1.1 Zip File (119kb) Source Code (109kb) History
TSFileSource 2.1.1.0 Zip File (119kb) Source Code (109kb) History
TSFileSource 2.1.0.9 Zip File (90kb) Source Code (88kb) History
TSFileSource 2.1.0.8 Zip File (113kb) Source Code (102kb) History
TSFileSource 2.1.0.7 Zip File (113kb) Source Code (102kb) History
TSFileSource 2.1.0.6 Zip File (113kb) Source Code (101kb) History
TSFileSource 2.1.0.5 Zip File (112kb) Source Code (99kb) History
TSFileSource 2.1.0.4 Zip File (112kb) Source Code (99kb) History
TSFileSource 2.1.0.3 Zip File (109kb) Source Code (92kb) History
TSFileSource 2.1.0.2 Zip File (109kb) Source Code (90kb) History

Latest Source Code
History

TSFileSource 2.2.1.172

Changes:
  • Changed to compile in VS 2008.
  • Fixed a bug which was causing playback of a tsbuffer file to appear to skip to the start of the buffer whenever it was near the end and had to wait for the file to grow
  • Fixed NetRender filename generation.
  • Changed to write all the registry values the first time the registry key is created.
  • Updated to write the number values in the registry as DWORD and QWORD instead of BINARY
  • Fixed saving and loading of the Create Subtitle Pin option.
  • Added the version number to the description on the property page.
  • Updated the TSFileSource Reference Clock to use a high precision timer.
  • Added support for monogram TS files.
  • Changed TSFileSource project to be statically linked. Hopefully this will help solve the problem of not being able to register the dll in windows xp.
More ...
Settings

TSFileSource Filter Property Page Option Settings:


The following options are used for Abnormal operation and should not require changing.

Change File Name Button:
Opens a Window file Browser and allows the user to change the file being played. This is useful to assist in the playback of files for testing etc. Note, it does not change the filename that the application uses.

Prev, Next & Select Buttons:
Enables you to change the sub program that you are viewing, this is only available if you are playing a FULL TSMux file.

Show EPG Button:
This button just mainly displays the Service info, Now & Next information at the current play time.

Refresh Button:
Allows the user to re-parse the file information at the current playback point. This is useful to assist in the playbackof files that have heavy data corruption within them.

Save Button:
Allows the user to save the option settings to the registry, default settings are saved under "HKEY_LOCAL_MACHINE/SOFTWARE/TSFileSource/settings/default". Seperate settings for the Audio preferences and the selected Program IDs are saved under the "settings/ONID:TSID" locations.

Demux Control:
This option enables the filter to work with the MS MPEG2 Demultiplexer only. Disable it if you want to connect to other Demultiplexers such as the Elecard or moonlight Push Demultiplexers. Default setting is enabled.
Note: Never leave the "Demux control" disabled as this could prevent you from playing TS files in Media Players.

NP Control & NP Slave:
These Were options for previous testing and relate to the BDA Graph build with a Network Provider within the graph. Default setting is disabled.

ROT Enable:
This option just allows you to remote connect to the filtergraph using Graphedit. Default setting is disabled.

MPEG Audio pin type:
This is an option for a user to change the audio pin type incase they wish to use a specific audio decoder that is not compatable to the MPEG 2 format. Default setting is MPEG 2.

Audio 2 Preference:
This option allows the user to specify which audio stream to play if there are two of the same audio type. Used for multi language situations elsewhere but not in AU. Default setting is disabled.

AC3 Audio Preference:
This Option allows the user to specify which audio stream media type to play if there are more than one type of stream. The logic follows that when you load the file, the filter will choose the AC3 media type if there is a stream available, else it will use the MPEG pin type chosen. If you are playing a FULL TSMux file, then when changing between programs it will switch to the same media type stream that you were using from the previous program else it will choose the one thats available. Default setting is enabled.
(Note: Specific audio stream selection can only be done from the IAMStreamSelect Interface.)

Enable Teletext Pin:
This option allows the user to create an output pin that is compatable to the DVBTeletextSubtitles filter for digital Teletext useage.(I.e. Closed Captions) Will work but the Teletext filter needs further development to allow it to operate without intervention. Default setting is disabled.

Enable Teletext Pin:
This option allows the user to create an output pin that is compatable for use with other Transport input filters such as mentioned next. It has all the pids for the sub program mapped to it in the same way as the WS TSMux recording type. Default setting is disabled.

Rate Control:
This is an option to limit the data flow out of the filter to mimic a constant broadcast data rate. It is used when using the MPEG-2 Multicast Sender filter or DSNetwork filter so that you can broadcast the file over the network. Default setting is disabled.

Live Delay:
This option just delays the playback of a live file for 2 seconds when the play point reaches the end of the file. That is if you are playing a live recording and you FF to a point past the end of the file, the filter will wait 2 seconds, then resume streaming data. Can be used by converter programs to reduce CPU usage when converting live recordings. Default delay is 100ms. Default setting is disabled.

Default, TSFileSource, Demux & Render:
These Reference Clocks option settings allow a user to choose which reference clock type to use at graph building time, can help with some systems that prefer to use a render clock when they have audio issues. Default setting is TSFileSource.

ZoomPlayer Customised Settings:


Settings & Renders

  • Default Video Rendering Filter = VRM7 (*Some Decoders will not connect to some renders but VRM7 seems to be the most useful that I've found. You can experiment with these to see which one works best.)
  • Default Audio Rendering Device = Default Direct sound device.(*Best to leave this as is unless you wish to play with surround sound devices.)

Source Filters & Splitters

Special Purpose Source Filters
MPEG 2 Transport Profile:-
  • Current Source filter chain = TS FileFilter(AU) (* this can be HDTVPump Filter instead.)
  • Use following file extensions = TS & TSBUFFER (*These are file extensions that ZP will cross reference with when choosing the correct profile for playback)
  • Force Subtype = {E06D8023-DB46-11CF-B4D1-00805F6CBBEA} (*This is a special unique ID key that is allocated to a specific stream type so the source filter will always try and connect to the splitter using this.)

Audio & Video splitters

MPEG 2 Transport Profile:-
  • Current Splitter filter = MPEG2 Demultiplexer (*This is the prefered demux filter for the Push Source Filters)
  • Restrict to these file ext = TS & TSBUFFER
  • Accept the following media subtypes = {E06D8023-DB46-11CF-B4D1-00805F6CBBEA}
    {F4AEB342-0329-4fdd-A8FD-4AFF4926C978}

Audio & Video decoders

Audio Decoders
MPEG 2 Transport Profile:-
  • Current Decoder filter chain = DNTVLive!
  • Use Render overide = Keep default
  • Restrict extensions = TS & TSBUFFER
  • Accept the following media subtypes = {e436eb81-524f-11ce-9f53-0020af0ba770}
    {e06d802b-db46-11cf-b4d1-00805f6cbbea}
    {e06d802c-db46-11cf-b4d1-00805f6cbbea} (*These are the media types that the decoder is able to play, Mpeg 1, 2 & AC3)
Video Decoders
MPEG 2 Transport Profile:-
  • Current Decoder filter chain = DNTVLive! Video
  • Use Render overide = Keep default (*You can change this to a specific render for this profile if you wish, it will overide the default render settings described earlier.)
  • Restrict extensions = TS & TSBUFFER
  • Accept the following media subtypes = {E06D8026-DB46-11CF-B4D1-00805F6CBBEA}
    {F4AEB342-0329-4fdd-A8FD-4AFF4926C978}

Default Media Settings for Players

TSFileSource.reg :
	[HKEY_CLASSES_ROOT\Media Type\Extensions\.ts]
	"Source Filter"="{4F8BF30C-3BEB-43A3-8BF2-10096FD28CF2}"
	[HKEY_CLASSES_ROOT\Media Type\Extensions\.tp]
	"Source Filter"="{4F8BF30C-3BEB-43A3-8BF2-10096FD28CF2}"
	[HKEY_CLASSES_ROOT\Media Type\Extensions\.tsbuffer]
	"Source Filter"="{4F8BF30C-3BEB-43A3-8BF2-10096FD28CF2}"