OSW-logo 

OSWMxfTool  VERSION V1.6 (2011-04-06)

This product is used by...
   

The OSWMxfTool
has been developed to solve a wide range of compatibility issues with MXF-Op1a-IMX files (MPEG-2, SDTV, 2..8 PCM-Tracks).
   (!) 2011-09: Currently working on OSWMxfTool (V2.0), which will support XDCAM HD 422 too.

The key features of this product are:

Partial File Export allows to extract a (sub-)part of the input-MXF
correct Timecode-Problems works with MXF-header and/or MXF-Frame-Timecodes!
correct AspectRatio-Metadata-Problems MXF-header and/or MPEG-stream AspectRatio-information!
correct MXF-Problems solves several well known MXF-problems, like: "incomplete" files, undefinded/wrong length-metadata, wrong UMID-formats...
convert PCM-Audio-quantization  from X tracks @16,20,24Bits to Y tracks @16,24Bits.


Some example use cases:
- Fix problems of eVTR MXF files
(MXF-header is "incomplete", Essence- and 1st frame-timecodes may contain different values, Essence-Timecode may be discontinous)

Solve compatibility issues between the following systems by using the OSWMxfTool during MXF-file-exchange:
- Sony eVTR
- Sony PDW-U1
- Sony PDW-HD1500
- Avid Transfer Manager
- Quantel editing systems/ enterprise solutions
- Apple Final Cut Pro
- Omneon Server
OSWMxfTool is a Win32-application (WinXP,Vista,Windows7, Win-Server 2003 and 2008; 32/64bit editions); Linux-Version on req.

The performance/throughput of the tool depends primarily on the disk-performance of the HW-platform.
With a standard SATA-disk one can expect >5x play-rate, with a RAID-system >15x play-rate (or more) is possible.


Here's the command-line interface of OSWMxfTool (V1.6):

Screenshot OSWMxfTool cmd-line interface


Example: Config-XML to define a filesystem-folder as a "watchfolder": 

 
<?xml version="1.0" encoding="utf-8" ?>
<!--
============================================================================
OSWMxfTool (V1.5+): Watchfolder-Config DEMO FILE

Remarks:
 1) The folder that will be monitored by the system has to be defined 
     in the <WatchfolderPath>-XML-node.
     -Local folder syntax: C:\myFolder
     -Network folder syntax (SMB): \\myServer\myFolder
     
 1b) A watchfolder (C:\myFolder) *may* contain 1..N subfolders, p.ex: 
        C:\myFolder\subfolderA, C:\myFolder\subfolderB
     You have to define which of these subfolders have to be monitored by this program (XML-node: <WatchfolderSubfolders>).
     Example:
	 <WatchfolderSubfolders>
			<Subfolder_0>subfolderA</Subfolder_0>
			<Subfolder_1>subfolderB</Subfolder_1>
	 </WatchfolderSubfolders>
     
	 If the program should process the contents of the main watchfolder (<WatchfolderPath>)
	 you have to add a special entry:
	    
	 <WatchfolderSubfolders>
			<Subfolder_0>@WTF_ROOT@</Subfolder_0>
			...
	 </WatchfolderSubfolders>

 
 2) Up to 100 "FileGroups" can be specified (FileGroup_0 .. FileGroup_99).
     The watchfolder-logic is checking each detected file for a 
     "FileNamePattern"-match (AND, when necessary: "SubfolderNamePattern"-match) by traversing all FileGroup_X specifications
     in NUMERIC ORDER.
     The first FileGroup-specification that matches, will be used to process the input-file.
     
 2a) Regular expression examples:
 	a1) All files with name-pattern: *.mxl  (p.ex: hello.mxf, fileA122-32.mxf)
 		=> RegExp: ^[\w\d\s_-]*\.mxf
 	a2) All files with name-pattern:  ABC_1234.mxf (p.ex: ABC_0000.mxf, ABC_2222.mxf)
 		=> RegExp: ^ABC_\d\d\d\d\.mxf
 	
	a3) Syntax parts:
		\w : "word character" (A-Z,a-z)
		\d : "digit" (0-9)
		\. : the "." character (needs to be "escaped" with a \, like other special-chars: * $ { } [ ] .)
		[a-z]  : any character in the char-set (a,b...,z).
		[a-z]* : 0..N times "any character in the char-set (a,b,..,z)"    
		[a-z]{2,5} : 2..5 times "any character in the char-set (a,b,..,z)"    

		^ : The regular expression has to "hit" the beginning of the string  
     
     a4) For more info: 
     http://www.radsoftware.com.au/articles/regexlearnsyntax.aspx
     

 3.) FileReadyDetectionLogic
 3a) OSW.MXF-IMX.FileHasMxfFooter : MXF-file contains a valid footer; 
      therefore: High probability that the MXF-processing will work
      
 3b) OSW.FileSizeNotGrowing : Checks if the size (in bytes) of the input-file
      has not grown during the last 30+ seconds.


 4.) "Actions":
 4a) Fcn:  OSW.MXF-IMX.PFE_ProcessAllFrames
     FcnParam0: Mode-string(s)
     REM:  
 
 4b) Fcn: OSW.CopyFile
     FcnParam0: (not used)
     REM: Transfer a COPY of the input-file to the output-file/location.
     
 4c) Fcn: OSW.NoOperation
  	 FcnParam0: (not used)
  	 REM: No output-file is created; This action always returns "Success".
  	      Therefore this action will invoke the fcns in the "OnSuccess"-Block.
  
 4d) Fcn: OSW.FTPClient_Tx
 	 FcnParam0: FTP_Host=myFtpServer.com; FTP_Username=myUserName; FTP_Password=myPwd; FTP_UseStandardProxy=false; FTP_ReadWriteTimeoutMs=600000
 	 REM:
 	 This fcn will try to transfer the input-file to a FTP-server.
 	  

 4e) Useful 'text-variables'
   e1) in XML-node <OutputFile_FileName>:
		- @INPUTFILE_NAME@ : name (without extension) of input-file
		- @INPUTFILE_FULLNAME@ : name (with extension) of input-file
		
   e2) in XML-node <OutputFile_Folder>:
   		- @WATCHFOLDER_PATH@ : full path of main-watchfolder
   		- @SUBFOLDER_NAME@ : name of the subfolder where the input-file has been detected
      
 5.) "OnSuccess", "OnFailure"
     Depending on the completion status of the "Action"-fcn the watchfolder-logic
     executes the additional steps that are defined in these tags.
 5a) Empty-strings or missing-XML-tags mean: Do nothing!
 
 5b) "InputFile_MoveToFolder": Do a "MOVE"-filesys-operation on this file 
       (=fast, but does only work within the same drive, filesystem-tree; Otherwise this operation will fail!)
 5c) "InputFile_CopyToFolder": Do a "COPY"-filesys-operation on this file
       (=slower, but works between 2 drives or even 2 servers)
 5d) "InputFile_Delete": Run a "DELETE"-filesys-operation on this file
 
 5e) "OutputFile_Rename": Optionally renames the output-file after the successful transfer of the
     output-file into the OutputFile_Folder.

============================================================================
-->
 <OSWMxfTool>
 <WatchfolderConfig>
  <Name>Demo Watchfolder Config</Name>
  <LogFolder>C:\OSWMxfTool\Log</LogFolder>
  <RemoteCtrlPort>50000</RemoteCtrlPort>
  <AutoShutdownMode>0</AutoShutdownMode>
  <WatchfolderPath>C:\OSWMxfTool\Demo_Watchfolder</WatchfolderPath>
<WatchfolderSubfolders>
  <Subfolder_0>@WTF_ROOT@</Subfolder_0>
</WatchfolderSubfolders>
 <FileGroup_0>
  <FileNamePattern>^[\w\d\s_-]*\.mxf</FileNamePattern>
  <SubfolderNamePattern />
  <FileReadyDetectionLogic>OSW.MXF-IMX.FileHasMxfFooter</FileReadyDetectionLogic>
 <Action>
  <Fcn>OSW.MXF-IMX.PFE_ProcessAllFrames</Fcn>
  <FcnParam_0>CorrectETC,AspectRatioUseMxfHeaderAsRef,ForceAudioTo8x16,InputAudioIgnoreChannelValidFlags</FcnParam_0>
  <OutputFile_FileName>@INPUTFILE_NAME@_out.mxf</OutputFile_FileName>
  <OutputFile_Folder>C:\OSWMxfTool\Demo_Watchfolder_OUTPUT\OK\</OutputFile_Folder>
  </Action>
 <OnSuccess>
  <InputFile_MoveToFolder />
  <InputFile_CopyToFolder />
  <InputFile_Delete>true</InputFile_Delete>
  </OnSuccess>
 <OnFailure>
  <InputFile_MoveToFolder>C:\OSWMxfTool\Demo_Watchfolder_OUTPUT\NOK</InputFile_MoveToFolder>
  <InputFile_CopyToFolder />
  <InputFile_Delete>false</InputFile_Delete>
  </OnFailure>
  </FileGroup_0>
  <FileGroup_1>
  <FileNamePattern>^[\w\d\s_-]*\.xml</FileNamePattern>
  <SubfolderNamePattern>subfolderB</SubfolderNamePattern>
  <FileReadyDetectionLogic>OSW.FileSizeNotGrowing</FileReadyDetectionLogic>
 <Action>
  <Fcn>OSW.CopyFile</Fcn>
  <FcnParam_0 />
  <OutputFile_FileName>@INPUTFILE_FULLNAME@</OutputFile_FileName>
  <OutputFile_Folder>C:\OSWMxfTool\Demo_Watchfolder_OUTPUT\OK\</OutputFile_Folder>
  </Action>
 <OnSuccess>
  <InputFile_CopyToFolder />
  <InputFile_Delete>true</InputFile_Delete>
  </OnSuccess>
 <OnFailure>
  <InputFile_MoveToFolder>C:\OSWMxfTool\Demo_Watchfolder_OUTPUT\NOK\</InputFile_MoveToFolder>
  </OnFailure>
  </FileGroup_1>
  </WatchfolderConfig>
  </OSWMxfTool>



Option:  OSWMxfTool_Admin_UI (web/silverlight-based):
Displays/ controls the activity of 1..N OSWMxfTool-agent-EXEs.





Interested?
Please contact Originate Software GmbH  for additional information and license cost.