Medialon MxMs' Help 
  
Name : Visual Circuit Servers
Version : 1.0.0
Available for : Manager V5 (all versions)
Limitation In :  
Device Brand : Medialon
Positrack Compatible : No
Resources type : TCP/IP Network
 
Compatible hardware interfaces - available resource modules (MRC) :
 

 

> Overview | > Installation (MXM) | > Creation (Device) | > Commands (List Of) | > Variables (List Of) | > Support



Overview :

A POP or DVP Visual Circuits server consists on an NT based PC equiped with up to 5 Mpeg2 decoding cards and 1, 2 or 3 hard drives. Each cards consists of 4 independant Mpeg2 streams, thus up to 20 different streams can be played at the same time from one server (PC). Streams can be synchronized: this is very important for screen walls applications that need to play several files with different contents at the same time. For huge synchronized streams applications, several Visual Circuits POP&DVP servers can be synchronized together, extending the number of synchronized channels.

Instead of controlling an external server, this MxM can control a 4 channel Visual Circuit card in the SAME PC running Manager. In this case, only one card can be controlled and a network circuit board must be installed in the PC, even if it is not used, the MxM use network communication layer to drive the Visual Circuit board. This feature allow to create simple show control installation "All in one" PC, controller and video player.

Here is a brief description of the VisualCircuits servers range:


POP4 : 1 decoding board, 1 HD IDE
POP8 : 2 decoding board, 1 HD SCSI




DVP8 : 2 decoding board, 1 HD SCSI
DVP12 : 3 decoding board, 2 HD SCSI
DVP16 : 4 decoding board, 2 HD SCSI
DVP20 : 5 decoding board, 3 HD SCSI


Medialon Manager software and mxmVisualCircuitsServer plug-in offer a full control of the POP & DVP server over the ethernet. To make the system work, the "Medialon Controler Service" must be installed on each server you want to control (see MxM Installation part ), and the mxmVisualCircuitsServer must be in the /mxm directory of the Medialon Manager.

> Top

Installation (MXM) :
 

Paragraphs overview :

1) VCC4Pro Driver Installation :
2) Additionnal software :
3) VCC4Pro Driver configuration :
4) Server and driver optimisation :
5) Video file format :
6) Medialon Controler Service Installation :
7) Medialon Controler Service Configuration :
8) HDVP server support



1) VCC4Pro Driver Installation :

The driver "Visual Circuits Mpeg2 drivers" (file VCC4Pro.sys in the Winnt\System32\Drivers directory) must be installed in the video server in order to work.
Every server delivered by Visual Circuits is fully configured and this VCC driver is allready installed in the server. First of all you should check if it is installed and if its version is the latest one. In order to do this, follow one of the methods described below:

      Control Panel, Add/Remove Programs, "Visual Circuits Mpeg2 drivers" should be in the installed programs list
      Control Panel, click on "Devices", the "VCC4Pro" driver should be started
If the "VCC4Pro" driver is not installed, here is the procedure to install it:
      Start the program "Setup.exe" on the server
      Choose "Full driver install"
      Choose the type of card you have in the server: 4ReelTime Pro or RGB (this is mentioned on the boards, but all servers are now equiped with RGB boards)
      Choose between PAL and NTSC
      Choose between Composite or RGB output
      Choose the number of boards present in the server
      Choose the default directory for installation
      Reboot the server
The latest version of the "VCC4Pro" driver is 3.42: this is the version that must be installed on the server to make it work.

2) Additionnal software :

Once the "Visual Circuits Mpeg2 drivers" is installed on the server, you can launch the Vidserve application in "Startup Menu/VisualCircuits". This software is very usefull to play different files on different outputs to test new driver configuration.



Vcc4Pro is the NT driver installed in the server that control the Mpeg2 cards, you can check its status in the ControlPanel/Devices. If not started or not properly installed, the server will not work.

The VccReg Parameter Editor software allows to change the Vcc4Pro driver parameters (you can find it in "Startup Menu/VisualCircuits") : changing these parameters may affect the quality of the decoded video, so only advanced users may change some of these values.



3) VCC4Pro Driver configuration :
All these parameters should not be changed excepted these:
      Pal for changing NTSC to PAL
      InitOnOpen, to change the load function behavior (reinit or smooth load on the video outputs on load)
      DSizeOSD can be set to 0 if no GIF overlay is needed (sligh performance increase if 0)
      OldBoard: choosing between RGB or PRO cards
Standard Driver Configuration (run VccReg Parameter Editor)
. General :
      . AudioSync = 0
      . DSizeOSD = 8000 (if 0, no Gif overlay)
      . FastLoad = 1
      . GenLock = 0
      . GreenBarFix = 1
      . InitOnOpen =
        . 1 screen goes to black after a load (no video signal on output)
        . 0 the previously playing video stops (video signal still present on output)
      . Network = 0
      . NumberOfChannel =
        . 4 normal use
        . 1 if using "4Reel RGB Plus" board: 1 stream only
      . OldBoard = 1 or 0, depending on the card (RGB or PRO)
      . Pal = 1 (or 0)
. Performance:
      . AuxSkip= 0
      . BufferSizePerChannel = 400000
      . DMAMode = 0
      . MaxDisks = 1, 2 or 3 depending on the hard drive number in the server
      . MaxDMA = 40000
      . MaxFileRead = 200000
      . MinDMA = 10000
      . MinFileRead = 100000
      . NoCache = 1
      . NonPagePoolSize =
        . 1800000 for a 1 card server
        . 2800000 for a 2 card server
        . 3800000 for a 3 card server
        . 4800000 for a 4 card server
        . 5800000 for a 5 card server
      . NoReadBuff = 1 (very important for sync play, do not change its value)
      . StarveCheck = 0
. Audio/Video:
      . AudioFreq = 0
      . DisableSync = 0
      . DSizeAudio = 0
      . FrameShift = 0
      . MaxSyncFix = 0
      . RampVolume =0
      . SVideo = 1
      . VideoHSize = 0
      . VideoPicRate = 0
      . VideoTypes = 0
      . VideoVSize = 0
. Special:
      . DSizePES = 3000
      . LateLoadNext = 1
      . MaxCards = 8
      . MultiApp = 0
      . XFerSpeed = 0


4) Server and driver optimisation :
The standard driver configuration should work in most cases, but you can experience jerkyness or stuttering when playing back some video files. In any cases, if you have video stuttering during playback, the first thing you have to check is the bitrates of the files. The total bitrate of each card must not exceed 40 Mbits/sec per card, and 15 Mbits/sec max par channel, for non synchronized play. To playback synchronized, the total bitrate of a card must be less than 24 Mbits/sec (for example 4 channels of 6Mbits/sec).

For test purposes you can start the Vidserve application and play some files on different streams. The playback of the video files with that application is usefull the check the compatibility of the Mpeg files with the decoding boards, in normal or synchro mode.
If you experience troubles in playing files with Vidserve, re-install the Vcc4Pro driver as described in section 1), and check the bitrates of the files: the bitrates must follow the recommendations described in the "EncodingSpec.pdf" documentation file.

5) Video file format :
The Visual Circuits servers can play several Mpeg 2 files on their outputs. The file format must be Mpeg2 program, or Mpeg2 video only, or audio only Mpeg Layer2. Please refer to the "EncodingSpec.pdf" document which precisely describe the file formats that can be played back by the server. These recommendations must be followed very carefully when encoding the files : if not, the play back (especially in sync mode) might give bad performances: stutterings, jerkyness ...
Allthough the servers can play audio only files, it is not recommended to playback these types of files. The main reason is that if you use this kind of files, you will not be able to apply "Locate(timecode)" commands to the stream, and not stream timecode will be returned from the server to the mxm : please refer to the description of the mxm commands for more details.

Remark : Accents are not allowed in video file names.

6) Medialon Controler Service Installation :

The "Medialon Controler Service" is an NT based software service that allows for Medialon Manager and mxmVisualCircuitsServer to control one or several Visual Circuits video servers. To make the system work , the "Medialon Controler Service" must be installed on each video server to control with Medialon Manager.

The correct version of "Medialon Controler Service" to install is V1.12 or later.

To install the "Medialon Controler Service", run "setup.exe" from the "Medialon VisualCircuits Server Controler" directory. Once installed, you must reboot the server.

7) Medialon Controler Service Configuration :
You can find the "Medialon VC Server Setup" software in the Control Panel. This allows to configure and monitor the "Medialon Controler Service" Service.
In the "Control panel" of this software, both the Medialon Controler Service and Vcc4Pro driver must be in the running state in order for Manager to control a server.
The communicaton protocol is based on UDP/IP (User Datagram Protocol), which is faster than an TCP/IP connection.



The "Server port" must be the same as the port chosen when creating a device with Manager.
The "Streaming port" is not used yet.
"Max Session" limits the number of Manager Visual Circuits devices connected to the server.



The "Control" tabsheet allows to monitor and start/stop either the video driver or "Medialon Controler Service"



The "Software" tabsheet allows to launch the "FrameIndexer" software and to specify a timecode mode.

1) "Use internal timecode from video file": recommended option
Using this option, the Manager timecode of a stream will match exaclty to the internal timecode of the video Mpeg file. This timecode may not start at "00:00:00/00" depending on what was configured during the encoding session. As recommended by VisualCircuits in the "EncodingSpec.pdf" file, video Mpeg should be encoded with the internal timecode starting at "00:00:00/00".

2) "Use timecode starting at "00:00:00/00"
This option can be used if the Mpeg files do not have internal timecode starting at "00:00:00/00", but the timecode returned in Manager will not be correct if using the LoadNext function. This option should not be used, unless you use the video server with no LoadNext function call.


The "FrameIndexer" software allows to generate an .mtc file based on an .mpg file, that will be used when asking for a locate command with the mxmVisualCircuitServer, or with positracking purposes.



8) HDVP server support

The "Medialon Controler Service" does support HDVP servers control since version 1.12 and mxmVisualCircuitsServer version 1.2.0.
There are restriction using HDVP servers with the mxmVisualCircuitsServer, the listed mxm function are not supported:

      . Locate not supported
      . GetFileInfos not supported
      . SetSpeed not supported
      . LoadGifDisplay not supported
      . GifDisplay not supported
      . GifDisplay not supported
      . SetXYMix not supported
      . SetupSync not supported
      . VideoGenlock not supported


The timecode of each video stream returned in Manager represent the real internal video file timecode, thus it might not start at 00:00:00/00". This depends on the configuration chosen during the encoding process.

> Top


Creation (Device) :



.IPAddress: address of the server to control
.Server Port : server UDP listening port (this value must be the same as the one chosen with "Medialon VC Server Setup" in the Configuration Panel of the video server machine)
.Device Port : local computer UDP listening port

Note: for HDVP servers, availables streams are "1", "5", "9" and "13" depending on the hardware configuration (4 HDFocus decoding board max in a server)

Here is an example of an installation with 2 DVP 8 servers, 2 device of 4 streams each control the first DVP server, and 1 device of 8 streams controls the second DVP server


> Top


Commands (List Of) :

SetClipPath :

      Description : To change the directory path of the server where video files are stored.
      Parameters :
      ClipPath : [Type : String] : New path name
      Usage : the ClipPath variable contains the new clip path after this command completion.
GetClipList :
      Description :To retreive the video file list of the chosen directory
      Parameters :
      No parameters
      Usage : the ClipList variable contains the video clip list after this command completion.
      Remark : Accents are not allowed in video file names.
Load :
      Description : To prepare a video file to be played on an output
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      FileName: [Type : String] : video file name to load
      Usage : the variable Stream(X) of each concerned stream of the device turns to "Loaded" and StreamTime(X) turns to "00:00:00/01" if the files are correctly loaded.
      Remark : Accents are not allowed in video file names.
Play :
      Description : To play the previously loaded video
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      Usage : the variable Stream(X) of each concerned stream of the device turns to "Playing" and StreamTime(X) starts to grow after this command completion
Stop :
      Description : To stop the curently playing video
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      Usage : the variable Stream(X) of each concerned stream of the device turns to "Stopped" and StreamTime(X) after this command completion.
Locate :
      Description : To seek to a given timecode in a playing file
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      Timecode: [Type : Time] : timecode to be reached
      Usage : in order to use this command on a playing file, the "MTC Indexed file" of the video files must be first created. To do this you must start the "Frame Indexer" software on the video server, from the "Medialon VC Server Setup" utility software. Click on "Index File..." to select a video file start the indexation process. Once the process if finished, an indexed file with the .mtc extension is created, and the locate function can be used with the mxm. If the MTC is not present on the server, the locate function call will turn the Stream(X) variable to "Error"
SetSpeed :
      Description : To choose the speed of a playing file
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      Speed: [Type : Enum] : Normal or Fast
Rewind:
      Description : To rewind a file
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      Note: function supported only by VisualCircuits HD servers.
Loop:
      Description : To set or unset a stream into loop mode
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      Loop: [Type : Enum] : On or Off
      Usage : once a stream is configured to play loop, the file will play again as soon as it will reach the end. The StreamTime(X) variable will not reseted when the playing file reaches the end.
LoadNext :
      Description : To load a file while another file is still being played; back to back switch is done between files
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      FileName: [Type : String] : file name of the next video that will be played on the given output
      Usage : in order to complete a back to back sequence between 2 files, you must follow these steps:
        First load the "File1.mpg", then Play it.
        Wait for about 2-3 second and apply the LoadNext command on "File2.mpg".
        As soon as the end of "File1.mpg" will be reached, "File2.mpg" will start.
      You can create a sequence with multiple video files using this command.
      Remark : Accents are not allowed in video file names.
Mute :
      Description : To mute the audio output of a stream
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      Mute: [Type : Enum] : On or Off
Black:
      Description : To set a black display to a stream
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      Black: [Type : Enum] : On or Off
ColorBar:
      Description : Make a color bar appear on a stream
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      ColorBar: [Type : Enum] : On or Off
Reset:
      Description : To reset a channel
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
LoadGIFFile:
      Description : To load a .gif file from the ClipPath of the server
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      GIF File: [Type : String] : file name of the GIF image to load
      X Position: [Type : Integer] : video horizontal coordinant of the GIF
      Y Position: [Type : Integer] : video vertical coordinant of the GIF
      Transparent Level: [Type : Integer] : level of transparent color (values from 0 to 15)
      Transparent Color: [Type : Integer] : transparent color value (values from 0 to 15)
      Usage : For transparency of 1 color, set the level to 0 and the color to a given value
          Set the color to -1 for all pixels equally transparency according to the level
          Set the color to -2 for background transparency
          Set (X pos, Y pos) = (0, 0) for top left corner
          Set (X pos, Y pos) = (-1, -1) to center horizontal and vertical
          Set (X pos, Y pos) = (-2, -2) for bottom right corner
GIFDisplay:
      Description : To show or hide the previously loaded .gif image on a stream
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      GIFDisplay: [Type : Enum] : On or Off, to turn on or off the display of the GIF overlay
SetXYMix:
      Description : To adjust the position, and transparent level of the displayed .GIF image
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      GIF File: [Type : String] : file name of the GIF image to load
      X Position: [Type : Integer] : video horizontal coordinant of the GIF
      Y Position: [Type : Integer] : video vertical coordinant of the GIF
      Transparent Level: [Type : Integer] : level of transparent color (values from 0 to 15)
      Usage : refer to LoadGIFFile command for details
SetupSync:
      Description : This function allows to synchronize several devices either concerning the same or different servers.
      Parameters :
      Type: [Type : Enum] : type of sync behavior of the device: "None", "Master" or "Slave"
      MasterDeviceName: [Type : String] : this variable is to be used only when the type paramter is set to Slave. Is this case, you have to enter the name of a Visual Circuits server device that have been previously configured as a master.
      Usage : This command allows to configure a multiple video server system to play synchonized. Here is an example of the SetupSync command to sync together 3 DVP 16 servers, playing in loop.
        1) Create a startup task containing these commands:
            DVP1->SetupSync("Master", " ")
            DVP2->SetupSync("Slave", "DVP1")
            DVP3->SetupSync("Slave", "DVP1")
            DVP1 is now configured as the master server, DVP2 and DVP3 as the slaves.
        2) Load the desired files on each stream of each server. The files must be the exact same length and bitrate in order for the sync to work good, without any jerkyness (refer to EncodingSpec.pdf")
        3) Call these commands to set the servers in the loop mode:
            DVP1->Loop("All", "On")
            DVP2->Loop("All", "On")
            DVP3->Loop("All", "On")
        4) Call these commands to start the loop&sync playback of the files:
            DVP1->Play("All")
            DVP2->Play("All")
            DVP3->Play("All")
VideoGenlock:
      Description : To genlock on an external video source
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      VideoGenlock: [Type : Enum] : On or Off, to turn on or off the video genlock of a stream
SetVolume:
      Description : To change the volume on a desired stream
      Parameters :
      Stream: [Type : Enum] : video output affected by the command
      Volume: [Type : Integer] : volume value, from 0 (mute) to 10 (max volume)
      AudioGenlock: [Type : Enum] : On or Off, to turn on or off the audio genlock of a stream
ShutDown:
      Description : to restart of shutdown the video server
      Parameters :
      Mode: [Type : Enum] : "Restart" or "Shutdown"
      Usage : calling this function with "Restart" will cause the server to reboot, communication with the server will be disrupted during the reboot time and will cause the "Status" variable to turn to "TransmissionError". After the server reboot Manger will automatically restart the connection with the server and will be able to control it again.
GetFileInfos:
      Description : to retreive usefull informations about a video file (such duration, bitrate...)
      Parameters :
      FileName: [Type : String] : video file to get information from
      Usage : Calling this function will fill the following device variables : "Infos_FileName", "Infos_FrameNumber", "Infos_StartTimecode", "Infos_Duration", "Infos_ImageHSize", "Infos_ImageVSize", "Infos_BitRate", "Infos_FileType". This feature is available only if the corresponding ".mtc2" (not .mtc) has been previously generated with the FrameIndexer software.

> Top


Variables (List Of) :

ClipPath:

      Type : String.
      Description : Contains the directory when video files are stored
      Usage : SetClipPath command must be used to change the value of this variable

ClipList :
      Type : String.
      Description : Contains the video file list of the current selected server directory
      Usage : GetClipList command must be used to retreive the video file list from the server
Status:
      Type : Enum.
      Description : Current status of the server
      Available Values :
        "Unconnected" : Medialon Manager and the video servers are not connected
        "Ready " : the server is connected and anwsers correctly to the mxmVisualCircuitsServer requests
        "Transmission Error" : the server is not responding to the mxmVisualCircuitsServer requests (communication is disrupted between Medialon Manager and the video server)
      Usage : this variable should always be set to "Ready".
SyncType:
      Type : Enum.
      Description : Chosen sync mode for the device
      Available Values :
        "None" : no sync is set for the device
        "Master " : the device is configured as a master
        "Slave" : the device is configured as a slave
      Usage : this variable is changed by using the SetupSync command
SlavedTo:
      Type : String.
      Description : Name of the master device to whom the device is synchronized
      Usage : this variable is changed by using the SetupSync command
Stream 1 to X: (number of stream set at creation)
      Type : Enum.
      Description : Return status from specified stream
      Available Values :
        "Ready" : the stream is ready to play video files
        "Playing" : the stream is currently playing a video file
        "Stopped" : the stream is stopped
        "Loaded" : the stream is loaded, ready to play the video
        "Error" : the stream is in error, for example after a Load of a video file not present in the server, or after a Locate but with no MTC file created (see Locate function)
CurrentTime1 to X: (number of stream set at creation)
      Type : Time.
      Description : Return current timecode from specified stream
Info_FileName:
      Type : String
      Description : current video file being asked for informations
      Usage : this variable is changed by using the GetFileInfos command
Info_FrameNumber:
      Type : Integer
      Description : number of frames of the current Info_FileName video file
      Usage : this variable is changed by using the GetFileInfos command
Info_StartTimecode:
      Type : Time
      Description : internal timecode start value of the current Info_FileName video file
      Usage : this variable is changed by using the GetFileInfos command
Info_Duration:
      Type : Time
      Description : timecode duration of the current Info_FileName video file
      Usage : this variable is changed by using the GetFileInfos command
Info_ImageHSize:
      Type : Integer
      Description : horizontal size of the current Info_FileName video file
      Usage : this variable is changed by using the GetFileInfos command
Info_ImageVSize:
      Type : Integer
      Description : vertical size of the current Info_FileName video file
      Usage : this variable is changed by using the GetFileInfos command
Info_BitRate:
      Type : Integer
      Description : bitrate (in MBits/seconds) of the current Info_FileName video file
      Usage : this variable is changed by using the GetFileInfos command
Info_FileType:
      Type : Enum : "Unknown", "Mpeg1system", "Mpeg2 program"
      Description : Mpeg type of the current Info_FileName video file
      Usage : this variable is changed by using the GetFileInfos command

> Top

Support (Difference with previous versions) :

> Top