Click here to Skip to main content
15,880,543 members
Articles / Programming Languages / C#

Sample speed test for Transport Stream construction

Rate me:
Please Sign up or sign in to vote.
3.47/5 (45 votes)
13 Apr 20044 min read 124.3K   1.9K   48  
A program that emulates the TS construction from ES files for the HDTV standard.
	This is the TS Constructor readme file :
	----------------------------------------


		This program emulates in principle the construction of Transport Stream (TS)
for HDTV standard.This is done by multiplexing more MPEG2 Elementary Streams (ES). First ,
ES files are packed as Packetized Elementary Stream (PES) packets wich can have a variable
length.Then the PES packets are multiplexed into TS packets wich are of fixed length
(188 bytes) and form the final TS.
	Offcourse,this program doesn't do the real thing (that means that you can't multiplex
multiple MPEG2 files to form a HDTV channel and watch it).It's in fact a speed aproximator
who works within the following parameters :

ES:
   - files are generated by the program
   - the user can specify the number of files (min. 1 , max. 99)
   - the user can specify the length (in Mb) of files (min. 1,max. 99)
   - each file contains a different character repeted for the entire file length

PES:
   - the user can specify the length of a PES Header (min. 0,max. 255 bytes)
   - the user can specify the length of a PES Packet (min. 4,max. 65535 bytes).This parameter
     also it's corelated with the PES Header Length
   - the user can specify how many PES Packets are kept in Buffer for an ES file , the
     Buffer Length setting (min. 1,max. 99)

TS:
   - the user can specify the type of TS to produce (Carrier setting):
	- "File" : - the entire TS will be sent to "result.ts" file wich can be viewed later
		     by the user to observe the process of multiplexing (! space consuming !)
	- "Emulated Network" : - more apropiate to the real thing,each pachet it's sent to
				 a emulated network,only the last one remaining in the
				 "result.ts" file (! faster !)
   - the user can view an efiency diagram (See Diagram button) after a simulation , wich
     can give an ideea about the eficiency of the TS creation process at certain moments.

	FEATURES :
		- HDD aproximate space consuming indicator for current settings
		- HDD current partition space left indicator
		- Guard feature ( you can't start a simulation wich will consume more
                                  space than you have avaible )
		- Calendar ( About window )
		- ON/OFF Vertical & Horizontal Grid ( Digram window )
		- Legend for the TS output window ( Legend button ) wich permits the user
                  to read & understand the "result.ts" file output.
                - SelfCleaning provided by the "Delete al ES files" & "Delete TS file" wich
                  allows simple cleaning of generated files
		- Progess Bar indicator for ES generation ( ! the generation of big ES files
                  can take some time)
		- Progress Bar indicator for TS construction ( ! this indicator works on
                  the estimated number of TS packets wich can be lower than the real one,
                  so small delays between the indicator and the end of TS construction 
                  might appear in case of big output files and depending of settings)
		- Benchmark possible role

	DISADVANTAGES :
		- the length of PES packets it the same for all packets (audio style),
                  meaning that the case of video streams is not simulated
		- the "Adaptation Field" in TS packets is missing (might mean a slighty
                  slower speed in real case than the simulation)
		- the resulting speed might depend on your system's jobs for that time,
                  meaning that a Windows process who just start running during your
                  simulation may influence the outcome
		- the Digram might become unreadable for large size TS outputs,because
                  the quantity of data to be processed by the graphic
		- because the .NET FrameWork required to run the application,this might
                  work slower on some computers ( depending on the operating system ) or
                  even not work at all.
		- no visualisation of files implemented.To view the content of ES files or
                  the TS file use a default file manager ( WinCommander Run Version 
		  5.11 included in package )  

	REQUIREMENTS :
		- IBM PC or compatible system
		- Windows '98 or later ( XP recomended )
		- At least 2Mb free HDD space
		- DotNET FrameWork 1.0 or later ( version 1.1 included in package )
		- At least 1Mb RAM free system memory

	RECOMANDATIONS :
		- avoid running "BIG" simulations , like 99 files of 99 Mb each. It works
                  but generation time it's huge and simulation time might also doesn't
                  deserve the effort.
		- when running "BIG" simulations (over 500 Mb TS output) make sure you have
		  at least 10% more disk space than the space required indicator shows,because
                  that's an aproximated value that might underestimate the real size of your
		  output (variable on the settings you chose)
		- use the DELETE buttons before leaving the program , your HDD space might
                  be at stake.
		- chose a setting for "Number of Files" and "File Size" within reasonable
                  limits and then play with the rest of the settings ( Buffer Length , PES
                  Header Length , PES Packet Length and Carrier ) to observe how your system
                  it's running in different conditions.For example , if you'll set a high
		  Buffer Length ( like 99 ) you'll see that on the diagram the eficiency
		  reaches it's maximum towards the end , when reading it's done exclusive
                  from the buffer ( and RAM speed it's higher than HDD's)

	SPECIFICATIONS :
		- Don't try to run this program from CD,it won't work
		- This program does't requires installation,just copy the folder
		  to your HDD and run it.
		- This program is freeware , no license needed.
		- DotNET FrameWork it's a freeware Microsoft Support product
		- WinCommander it's a shareware product

	BENCHMARK POSSIBLE ROLE :
			If you have no interest in MPEG2 multiplexing for HDTV you might still find
		find this program interesting as a benchmark for different systems.
		For example , running this program on diferent systems and even on different
                operating systems might give an indicator of the system's overall performance.
		Keep in mind that the CARRIER setting it's making the difference between the
		components you test
			- "File" : tests HDD & CPU with the accent on HDD test.
			- "Emulated Network" : tests the CPU mainly.

	WARNING :
		- Intensive use of this program can stress your HDD
		



	PRODUCT 		: TS Constructor version 1.0
	RELEASE DATE		: 29th of March , 2004
	DEVELOPMENT PLATFORM 	: Microsoft Visual Studio .NET 2002 , C#
	DEVELOPMENT LANGUAGE	: English

	AUTHOR	: Angel
	E-MAIL	: ro_angel_bv@hotmail.com


By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
Malaysia Malaysia
Dumitru Bogdan - alias Angel

Born 1980 , Brasov , Romania

Final year student at Transilvania University of Brasov , Faculty of Electrical Engineering & Computer Science , Department of Electronics & Computers

Programming : Visual C++ , Visual Fox Pro , Assembler & later , C#

Motto : "Nothing Last Forever" , and software is no exception

Comments and Discussions