grass valley developers

Home > Products > K2 > tstream - GXF file parser and checker

tstream - GXF file parser and checker

tstream is a tool for parsing and checking GXF files. You can download it by clicking here.

You run tstream from a DOS window like this:

 

C:\temp>tstream
Usage:
tstream [/v] [/i] [/f] host cmd srcname dstname [option list]

for eg: tstream [/v] rfile name-of-the-file

 /v for verbose output
 /i create optional index file with retr, or use it with stor
 /f verifies FLT entries

The following commands are supported (all optional sizes are in bytes):
 retr.....retrieve srcname dstname [bufferSize] [windowSize]
 stor.....store srcname dstname [bufferSize] [windowSize]
 rfile....read stream_file [output_stream_file]...... parse it [and reform it] ...
 find.....read stream_file, parse each byte, profile headers found...
 help.....print this message

C:\temp>

Example 1: Verify that a GXF file is valid:

Here is a valid GXF file:

C:\temp>tstream rfile Clip.gxf
picture 180
parseFile: read 8155960 bytes
Num Packet of types: Map 2 EOF 1 UMF 4 FLT 1 media 131

Here is an invalid GXF file:

C:\temp>tstream rfile BadClip.gxf
picture 30 ERROR: unable to read 65536 payload bytes....

parseFile: read 2095200 bytes

Example 2: Split a GXF file into elementary files

Notice all elementary files with the names "newclip.*". newclip.M0 is the video track, newclip.A* are the audio tracks, newclip.T0 is the timecode track. The file "newclip" is the reassembled GXF file from the elementary files. It should match the original Clip.gxf file. There is also the XML representation of the clip in Clip.gxf.xml.

C:\temp>tstream rfile Clip.gxf newclip
picture 180
parseFile: read 8155960 bytes
Num Packet of types: Map 2 EOF 1 UMF 4 FLT 1 media 131

C:\temp>dir
Directory of C:\temp

04/28/2008 10:19 AM  .
04/22/2008 11:36 AM  ..
04/28/2008 08:50 AM 114,688 tstream.exe
12/07/2007 12:28 PM 8,155,960 Clip.gxf
04/28/2008 10:12 AM 83,542 Clip.gxf.xml
04/28/2008 10:19 AM 8,155,960 newclip
04/28/2008 10:19 AM 5,416,048 newclip.M0
04/28/2008 10:19 AM 327,680 newclip.A1
04/28/2008 10:19 AM 327,680 newclip.A2
04/28/2008 10:19 AM 327,680 newclip.A3
04/28/2008 10:19 AM 327,680 newclip.A4
04/28/2008 10:19 AM 327,680 newclip.A5
04/28/2008 10:19 AM 327,680 newclip.A6
04/28/2008 10:19 AM 327,680 newclip.A7
04/28/2008 10:19 AM 327,680 newclip.A8
04/28/2008 10:19 AM 0 newclip.T9
 14 File(s) 25,090,497 bytes
 2 Dir(s) 52,428,800,000 bytes free

Example 3: Show verbose GXF file details

C:\temp>tstream /v rfile Clip.gxf
--------reading header (offset 0)--------
stream header: 00 00 00 00 01 BC 00 00 02 C0 00 00 00 00 E1 E2
 Packet type = MAP
map->firstField = 0
map->lastField = 180
map->markIn = 0
map->markOut = 180
map->spaceEst = 7964 MB
map->status = 0
map->ctimeHi = 0
map->ctimeLo = 0
map->clipName = V:/default/Clip
map->uniqueName = (null)
map->setName = (null)
map->typeName = (null)
map->description= (null)
map->mediaFound = 1
map->nTracks = 10
map->Track[0]
 mapTrack->mediaName = Video_0.M0
 mapTrack->mediaVersion = 0
 mapTrack->mediaType = 11 MPEG525
 mapTrack->frameRate = 5 VIO_FR_30M
 mapTrack->linesPerFrame = 1 VIO_LINES_525
 mapTrack->fieldsPerFrame = 2 VIO_FPF_INTERLACED
 mapTrack->dropFrame = 0
 MPEG aux info:
 Bitrate: 25000000bps
 numIPerGop: 1
 Is16x9: 0 (Aspect Ratio 4x3)
 IsCBG: 0
 numPPerI: 3
 numBPerIorP: 1
 pixStruct: 0 PixStructureFrame
 chromaFmt: 2 MpegChroma422
 closedGop: 1 (Closed GOP)
 startLineNum: 13
 numLines16: 32 (Number of encoded video lines 512)
 validInfo: 1
 Progressive_sequence: 0
 field1OnTop: 1 (Top-field first)
map->Track[1]
 mapTrack->mediaName = Audio_0.A0
 mapTrack->mediaVersion = 0
 mapTrack->mediaType = 10 AUDIO_PCM16_MEDIA
 mapTrack->frameRate = 5 VIO_FR_30M
 mapTrack->linesPerFrame = 1 VIO_LINES_525
 mapTrack->fieldsPerFrame = 2 VIO_FPF_INTERLACED
 mapTrack->dropFrame = 0
 Audio aux info:
 First sample: 0
 Last sample: 14674
map->Track[2]
 mapTrack->mediaName = Audio_0.A1
 mapTrack->mediaVersion = 0
 mapTrack->mediaType = 10 AUDIO_PCM16_MEDIA
 mapTrack->frameRate = 5 VIO_FR_30M
 mapTrack->linesPerFrame = 1 VIO_LINES_525
 mapTrack->fieldsPerFrame = 2 VIO_FPF_INTERLACED
 mapTrack->dropFrame = 0
 Audio aux info:
 First sample: 0
 Last sample: 14674

etc.