1 ##################################################################################
\r
2 CasparCG 2.0 Documentation
\r
3 ##################################################################################
\r
4 ==================================================================================
\r
6 ==================================================================================
\r
8 Version Date Description Author
\r
9 ----------------------------------------------------------------------------------
\r
10 1 2011-05-12 Initial draft. Robert Nagy
\r
12 ==================================================================================
\r
14 ==================================================================================
\r
15 The CasparCG 2.0 Server is based open tree components types; "producers", "mixers" and
\r
16 "consumers" which in combined configurations make up a "channel". The server also
\r
17 has "protocols" for communication and controlling.
\r
19 Producer - Renders and plays media such as video, animations, images and audio.
\r
20 A producer listens for commands and data sent from a client controller, then
\r
21 loads and renders that media and sends it to the next stage in the rendering
\r
22 pipeline (the mixer).
\r
24 Consumer - Receives playing media such as video, animations, images and audio
\r
25 from a producer and displays that media on a specified output, for example a
\r
26 window on the computer monitor or an SDI card.
\r
28 Mixer - Composites video- and audio-streams received from producers on different
\r
29 layers. Also performs various video and audio transformations on the video-streams.
\r
31 Protocol - Recevies, parses and executes commands.
\r
33 ----------------------------------------------------------------------------------
\r
34 Figure 1. A simplified diagram of the CasparCG 2.0 Architecture.
\r
35 ----------------------------------------------------------------------------------
\r
36 |----------| ##################
\r
37 | PROTOCOL |<--- | TCP CONNECTION |
\r
38 |----------| ##################
\r
40 | | commands/responses
\r
42 |----------| <- empty frame <- |----------| <- frame format <- |----------|
\r
43 | PRODUCER | | MIXER | | CONSUMER |
\r
44 |----------| -> rendered frames -> |----------| -> formatted frame -> |----------|
\r
48 ######## ####### ##################
\r
49 | FILE | | GPU | | DISPLAY DEVICE |
\r
50 ######## ####### ##################
\r
52 **********************************************************************************
\r
54 **********************************************************************************
\r
55 CasparCG 2.0 currently (fully or partially) supports the following producers:
\r
57 Name File Extensions Description
\r
58 --------------------------------------------------------------------------
\r
63 ct ct Plays "compressed templates"
\r
64 zip file containing a
\r
65 flash-template together with
\r
66 required media and data xml.
\r
68 ffmpeg mpg, mpeg, avi, mov, qt, Plays regular video and/or
\r
69 webm, dv, mp4, f4v, flw, mkv, audio
\r
70 mka, wmv, ogg, divx, xvid,
\r
73 image tga, png, bmp, jpg, jpeg, gif Plays images.
\r
76 decklink Plays input from a decklink
\r
79 ----------------------------------------------------------------------------------
\r
80 1.2.1. Flash Producer (flash)
\r
81 ----------------------------------------------------------------------------------
\r
82 ----------------------------------------------------------------------------------
\r
83 1.2.2. Template Graphics Producer (cg)
\r
84 ----------------------------------------------------------------------------------
\r
85 ----------------------------------------------------------------------------------
\r
86 1.2.3. Compressed Template Graphics Producer (ct)
\r
87 ----------------------------------------------------------------------------------
\r
88 ----------------------------------------------------------------------------------
\r
89 1.2.4. FFMPEG Producer (ffmpeg)
\r
90 ----------------------------------------------------------------------------------
\r
91 ----------------------------------------------------------------------------------
\r
92 1.2.5. Image Producer (image)
\r
93 ----------------------------------------------------------------------------------
\r
94 ----------------------------------------------------------------------------------
\r
95 1.2.5. Decklink Producer (decklink)
\r
96 ----------------------------------------------------------------------------------
\r
98 **********************************************************************************
\r
100 **********************************************************************************
\r
101 CasparCG 2.0 currently (fully or partially) supports the following producers:
\r
104 ------------------------------------------
\r
105 bluefish Plays video and/or audio to a bluefish-device.
\r
107 decklink Plays video and/or audio to a decklink-device.
\r
109 ffmpeg Plays video and/or audio to a file.
\r
111 oal Plays audio to the default system audio-device.
\r
113 ogl Plays video to a windowed or fullscreen window.
\r
115 ----------------------------------------------------------------------------------
\r
116 1.2.1. Bluefish Consumer (bluefish)
\r
117 ----------------------------------------------------------------------------------
\r
118 ----------------------------------------------------------------------------------
\r
119 1.2.2. Decklink Consumer (decklink)
\r
120 ----------------------------------------------------------------------------------
\r
121 ----------------------------------------------------------------------------------
\r
122 1.2.3. FFMPEG Consumer (ffmpeg)
\r
123 ----------------------------------------------------------------------------------
\r
124 ----------------------------------------------------------------------------------
\r
125 1.2.4. OpenAL Consumer (openal)
\r
126 ----------------------------------------------------------------------------------
\r
127 ----------------------------------------------------------------------------------
\r
128 1.2.5. OpenGL Consumer (opengl)
\r
129 ----------------------------------------------------------------------------------
\r
131 **********************************************************************************
\r
133 **********************************************************************************
\r
134 CasparCG 2.0 currently only supports a GPU-accelerated OpenGL 3.1 mixer.
\r
136 **********************************************************************************
\r
138 **********************************************************************************
\r
140 ==================================================================================
\r
141 2. Advanced Media Control Protocol (AMCP) 2.0
\r
142 ==================================================================================
\r
143 The AMCP protocol is the main communication protocol used to control and query
\r
146 - All communication is presumed to be encoded in UTF-8.
\r
147 - Each command has to be terminated with both a carriage return and a linefeed
\r
148 character. (\r\n, <CR><LF>, <0x0D><0x0A> or <13><10>, whichever your programming
\r
149 language likes best).
\r
150 - The whole command string is case insensitive.
\r
151 - Since the parameters in a command is separated by spaces, you need to enclose
\r
152 the parameter with quotation marks if you want it to contain spaces.
\r
154 **********************************************************************************
\r
155 2.1. Backward Compatibility
\r
156 **********************************************************************************
\r
157 The AMCP 2.0 protocol implementation is mostly backward compatible with the
\r
158 previous AMCP 1.8 and 1.7.1 protocols. This is achieved by providing default
\r
159 values for parameters used by the AMCP 2.0 protocol.
\r
161 ----------------------------------------------------------------------------------
\r
162 2.1.1. Breaking Changes
\r
163 ----------------------------------------------------------------------------------
\r
164 - CLEAR command will also clear any visible template graphic in the specified
\r
167 **********************************************************************************
\r
168 2.2 Special sequences
\r
169 **********************************************************************************
\r
170 Since bare quotation marks are used to keep parameters with spaces in one piece,
\r
171 there has to be another way to indicate a quotation mark in a string. Enter special
\r
172 sequences. They behave as in most programming languages. The escape character is
\r
173 backslash (
\92\
\92). In order to get a quotation mark you enter \
\94. The full list of
\r
174 valid sequences is just below.
\r
176 \
\94 - Quotation mark.
\r
180 These sequences apply to all parameters, it doesn
\92t matter if it
\92s a file name or
\r
181 a long string of xml-data.
\r
183 **********************************************************************************
\r
184 2.3. Command Specification
\r
185 **********************************************************************************
\r
187 ----------------------------------------------------------------------------------
\r
188 2.3.1. Required Value
\r
189 ----------------------------------------------------------------------------------
\r
192 [my_value_name:my_type,my_type2]
\r
196 Required value with one of the comma separated types
\93my_typex
\94.
\r
200 [transition:CUT,MIX,PUSH,WIPE] - A required value for "transition" which
\r
201 can be either CUT, MIX, PUSH or WIPE.
\r
205 [channel:int] - A required value for "channel" which must a signed
\r
209 ----------------------------------------------------------------------------------
\r
210 2.3.2. Optional Expression
\r
211 ----------------------------------------------------------------------------------
\r
214 {my_expr|my_default_expr}
\r
218 Optional expression where
\93my_def_expr
\94 is used if no expression
\r
219 is provided. If |"my_def_expr" is not provided then it is
\r
220 assumed to evaluate to |"".
\r
224 {-[layer:int]|-0} - An optional expression which will be evaluated
\r
225 to "-0" if not provided.
\r
232 {[tween:string]} - An optional expression will be evaluated to an
\r
233 emptry string if not provided.
\r
241 **********************************************************************************
\r
242 2.4. Basic Commands
\r
243 **********************************************************************************
\r
245 ----------------------------------------------------------------------------------
\r
247 ----------------------------------------------------------------------------------
\r
250 LOADBG [channel:int]{-[layer:int]|-0} [clip:string] {[loop:LOOP]}
\r
251 {[transition:CUT,MIX,PUSH,WIPE] [duration:uint] {[tween:string]|linear}
\r
252 {[direction:LEFT,RIGHT]|RIGHT}|CUT 0} {([start:uint]{,[length:uint]})|(0)}
\r
256 Loads a clip in the background and prepares it for playout.
\r
258 The string "clip" will be parsed by available registered producer factories. If
\r
259 a successfully match is found then the producer will be loaded into the background.
\r
261 If a file with the same name (extension excluded) but with the additional
\r
262 postfix "_a" is found this file will be used as key for the main "clip".
\r
264 Supplying the "loop" value will cause the clip to loop.
\r
268 LOADBG 1 MY_FILE PUSH 20 EASEINSINE
\r
269 LOADBG 1-1 MY_FILE SLIDE 10 LEFT
\r
274 See Appendix A: Tweener for supported values for tween.
\r
276 ----------------------------------------------------------------------------------
\r
278 ----------------------------------------------------------------------------------
\r
281 LOAD [channel:int]{-[layer:int]|-0} [clip:string] {[loop:LOOP]}
\r
282 {([start_frame:uint]{,[end_frame:uint]})|(0)}
\r
286 Loads a clip to the foreground and plays the first frame before pausing. If
\r
287 any clip is playing on the target foreground then this clip will be replaced.
\r
296 See 1.2.1. LOADBG for additional details.
\r
298 ----------------------------------------------------------------------------------
\r
300 ----------------------------------------------------------------------------------
\r
303 PLAY [channel:int]{-[layer:int]|-0} {"additional parameters"}
\r
307 Moves clip from background to foreground and starts playing it. If a
\r
308 transition (see LOADBG) is prepared it will be executed.
\r
310 If "additional parameters" (see LOADBG) is provided then the provided clip
\r
311 will first be loaded to the background.
\r
315 >> PLAY 1 MY_FILE PUSH 20 EASEINSINE
\r
316 >> PLAY 1-1 MY_FILE SLIDE 10 LEFT
\r
317 >> PLAY 1-0 MY_FILE
\r
321 See 1.2.1. LOADBG for additional details.
\r
323 ----------------------------------------------------------------------------------
\r
325 ----------------------------------------------------------------------------------
\r
328 PAUSE [channel:int]{-[layer:int]|-0}
\r
332 Pauses foreground clip.
\r
339 ----------------------------------------------------------------------------------
\r
341 ----------------------------------------------------------------------------------
\r
344 PAUSE [channel:int]{-[layer:int]|-0}
\r
348 Removes foreground clip.
\r
355 ----------------------------------------------------------------------------------
\r
357 ----------------------------------------------------------------------------------
\r
360 CLEAR [channel:int]{-[layer:int]}
\r
364 Removes all clips (both foreground and background). If no layer is specified
\r
365 then all layers in the specified channel are cleared.
\r
372 ----------------------------------------------------------------------------------
\r
374 ----------------------------------------------------------------------------------
\r
377 SWAP [channel1:int]{-[layer1:int]} [channel2:int]{-[layer2:int]}
\r
381 Swaps layers between channels (both foreground and background will be swapped).
\r
382 If layers are not specified then all layers in respective channel will be swapped.
\r
389 ----------------------------------------------------------------------------------
\r
391 ----------------------------------------------------------------------------------
\r
394 ADD [channel:int]{-[layer:int]|-0} [parameters:string]
\r
398 The string "clip" will be parsed by available registered consumer factories. If
\r
399 a successfull match is found a consumer will be created and added to the channel.
\r
403 >> ADD 1 DECKLINK 1 PAL
\r
404 >> ADD 1-2 BLUEFISH 1 PAL
\r
406 ----------------------------------------------------------------------------------
\r
408 ----------------------------------------------------------------------------------
\r
411 REMOVE [channel:int]{-[layer:int]|-0}
\r
415 Removes an existing consumer from channel.
\r
422 ----------------------------------------------------------------------------------
\r
424 ----------------------------------------------------------------------------------
\r
427 PARAM [channel:int]{-[layer:int]|-0} [param:string]
\r
431 Calls param method on the specified producer with the provided "param" string.
\r
436 >> PARAM 1-2 "SEEK_FRAME 25"
\r
438 **********************************************************************************
\r
440 **********************************************************************************
\r
441 The DATA commands are convenient to use when you have large datasets that might not
\r
442 be available at broadcast-time. DATA allows you to store a dataset on the
\r
443 CasparCG Server and assign it to a much shorter name. This name can then be used to
\r
444 recall the data when displaying a template graphic.
\r
446 ----------------------------------------------------------------------------------
\r
448 ----------------------------------------------------------------------------------
\r
451 DATA STORE [name:string] [data:string]
\r
455 Stores the dataset data under the name name.
\r
459 >> DATA STORE my_data "Some useful data"
\r
461 ----------------------------------------------------------------------------------
\r
462 2.5.2. DATA RETRIEVE
\r
463 ----------------------------------------------------------------------------------
\r
466 DATA RETRIEVE [name:string] [data:string]
\r
470 Returns the data saved under the name "name".
\r
472 ----------------------------------------------------------------------------------
\r
474 ----------------------------------------------------------------------------------
\r
481 Returns a list of all saved datasets.
\r
483 **********************************************************************************
\r
484 2.6. Template Graphics Commands
\r
485 **********************************************************************************
\r
487 ----------------------------------------------------------------------------------
\r
488 2.6.1. Template Data
\r
489 ----------------------------------------------------------------------------------
\r
490 Data to templates is sent in xml formatted as follows:
\r
493 <componentData id="f0">
\r
494 <data id="text" value="Niklas P Andersson" /> </componentData>
\r
495 <componentData id="f1">
\r
496 <data id="text" value="Developer" />
\r
498 <componentData id="f2">
\r
499 <data id="text" value="Providing an example" />
\r
503 The node under each componentData is sent directly into the specified component.
\r
504 This makes it possible to provide completely custom data to templates. The data-nodes
\r
505 in this example is just the way the default CasparCG textfield wants its data.
\r
506 More information about this will be provided with the tools and actionscript classes
\r
507 required to build your own templates.
\r
509 'A complete call' to CG ADD (see below), correctly escaped and with the data above
\r
510 would look like this:
\r
512 CG 1 ADD 0 "demo/test" 1 "<templateData><componentData id=\"f0\"><data id=\"text\"
\r
513 value=\"Niklas P Andersson\"></data> </componentData><componentData id=\"f1\"><data
\r
514 id=\"text\" value=\"developer\"></data></componentData><componentData id=\"f2\"><data
\r
515 id=\"text\" value=\"Providing an example\"></data> </componentData></templateData>"
\r
517 ----------------------------------------------------------------------------------
\r
519 ----------------------------------------------------------------------------------
\r
522 CG [channel:int]{-[layer:int]|-0} ADD [flash_layer:uint] [template:string]
\r
523 [play-on-load:0,1] [data]
\r
527 Prepares a template for displaying. It won
\92t show until you call CG PLAY
\r
528 (unless you supply the play-on-load flag, 1 for true). Data is either inline
\r
529 xml or a reference to a saved dataset.
\r
530 Please see 2.5.1 for a complete example with data.
\r
534 >> CG 1 ADD 10 svtnews/info 1
\r
536 ----------------------------------------------------------------------------------
\r
538 ----------------------------------------------------------------------------------
\r
541 CG [channel:int]{-[layer:int]|-0} REMOVE [flash_layer:uint]
\r
545 Removes the visible template from a specific layer.
\r
547 ----------------------------------------------------------------------------------
\r
549 ----------------------------------------------------------------------------------
\r
552 CG [channel:int]{-[layer:int]|-0} CLEAR [flash_layer:uint]
\r
556 Clears all layers and any state that might be stored. What this actually does
\r
557 behind the scene is to create a new instance of the
\r
558 Adobe Flash player ActiveX controller in memory.
\r
560 ----------------------------------------------------------------------------------
\r
562 ----------------------------------------------------------------------------------
\r
565 CG [channel:int]{-[layer:int]|-0} PLAY [flash_layer:uint]
\r
569 Plays / displays the template in the specified layer.
\r
571 ----------------------------------------------------------------------------------
\r
573 ----------------------------------------------------------------------------------
\r
576 CG [channel:int]{-[layer:int]|-0} STOP [flash_layer:uint]
\r
580 Stops and removes the template from the specified layer. This is different
\r
581 than REMOVE in that the template gets a chance to animate out when it is stopped.
\r
583 ----------------------------------------------------------------------------------
\r
585 ----------------------------------------------------------------------------------
\r
588 CG [channel:int]{-[layer:int]|-0} NEXT [flash_layer:uint]
\r
592 Triggers a
\94continue
\94 in the template on the specified layer. This is used to
\r
593 control animations that has multiple discreet steps.
\r
595 ----------------------------------------------------------------------------------
\r
597 ----------------------------------------------------------------------------------
\r
600 CG [channel:int]{-[layer:int]|-0} GOTO [flash_layer:uint] [label:string]
\r
604 Jumps to the specified label in the template on the specified layer.
\r
606 ----------------------------------------------------------------------------------
\r
608 ----------------------------------------------------------------------------------
\r
611 CG [channel:int]{-[layer:int]|-0} GOTO [flash_layer:uint] [data:string]
\r
615 Sends new data to the template on specified layer. Data is either inline xml
\r
616 or a reference to a saved dataset.
\r
618 ----------------------------------------------------------------------------------
\r
620 ----------------------------------------------------------------------------------
\r
623 CG [channel:int]{-[layer:int]|-0} GOTO [flash_layer:uint] [method:string]
\r
627 Calls a custom method in the document class of the template on the specified
\r
628 layer. The method must return void and take no parameters.
\r
630 **********************************************************************************
\r
631 2.7. Mixer Commands
\r
632 **********************************************************************************
\r
634 ----------------------------------------------------------------------------------
\r
635 2.7.1. MIXER VIDEO IS_KEY
\r
636 ----------------------------------------------------------------------------------
\r
639 MIXER [channel:int]{-[layer:int]|-0} VIDEO IS_KEY {is_key:0,1|0}
\r
643 If "is_key" equals 1 then the specified layer will not be rendered,
\r
644 instead it will be used as the key for the layer above.
\r
648 >> MIXER VIDEO 1-0 IS_KEY 1
\r
652 See Appendix A: Tweener for supported values for tween.
\r
654 ----------------------------------------------------------------------------------
\r
655 2.7.2. MIXER VIDEO OPACITY
\r
656 ----------------------------------------------------------------------------------
\r
659 MIXER [channel:int]{-[layer:int]|-0} VIDEO OPACITY {opacity:float}
\r
660 {[duration:uint] {[tween:string]|linear}|0 linear}
\r
664 Changes the opacity of the specified layer.
\r
668 >> MIXER VIDEO 1-0 OPACITY 0.5 25 easeinsine
\r
672 See Appendix A: Tweener for supported values for tween.
\r
674 ----------------------------------------------------------------------------------
\r
675 2.7.3. MIXER VIDEO GAIN
\r
676 ----------------------------------------------------------------------------------
\r
679 MIXER [channel:int]{-[layer:int]|-0} VIDEO GAIN {opacity:float}
\r
680 {[duration:uint] {[tween:string]|linear}|0 linear}
\r
684 Changes the gain of the specified layer.
\r
688 >> MIXER VIDEO 1-0 GAIN 0.5 25 easeinsine
\r
692 See Appendix A: Tweener for supported values for tween.
\r
694 ----------------------------------------------------------------------------------
\r
695 2.7.4. MIXER VIDEO FILL_RECT
\r
696 ----------------------------------------------------------------------------------
\r
699 MIXER [channel:int]{-[layer:int]|-0} VIDEO FILL_RECT [x:float] [y:float]
\r
700 [x-scale:float] [y-slace:float] {[duration:uint] {[tween:string]|linear}|0 linear}
\r
704 Scales the video stream on the specified layer.
\r
708 >> MIXER VIDEO 1-0 FILL_RECT 0.25 0.25 0.5 0.5 25 easeinsine
\r
712 This feature is not yet fully supported (2011-05-12) for interlaced video sources
\r
713 since the frames are not deinterlaced before scaling.
\r
715 See Appendix A: Tweener for supported values for tween.
\r
717 ----------------------------------------------------------------------------------
\r
718 2.7.5. MIXER VIDEO KEY_RECT
\r
719 ----------------------------------------------------------------------------------
\r
722 MIXER [channel:int]{-[layer:int]|-0} VIDEO KEY_RECT [x:float] [y:float]
\r
723 [x-scale:float] [y-slace:float] {[duration:uint] {[tween:string]|linear}|0 linear}
\r
727 Masks the video stream on the specified layer.
\r
731 >> MIXER VIDEO 1-0 KEY_RECT 0.25 0.25 0.5 0.5 25 easeinsine
\r
735 See Appendix A: Tweener for supported values for tween.
\r
737 ----------------------------------------------------------------------------------
\r
738 2.7.6. MIXER VIDEO GRID
\r
739 ----------------------------------------------------------------------------------
\r
742 MIXER [channel:int] GRID [resolution:uint] VIDEO {[duration:uint]
\r
743 {[tween:string]|linear}|0 linear}
\r
747 Creates a grid of video streams in ascending order of the layer index, e.g.
\r
748 if resolution equals 2 then a 2x2 grid of layers will be created.
\r
752 >> MIXER VIDEO 1 GRID 2
\r
756 This feature is not yet fully supported (2011-05-12) for interlaced video sources
\r
757 since the frames are not deinterlaced before scaling.
\r
759 See Appendix A: Tweener for supported values for tween.
\r
760 ----------------------------------------------------------------------------------
\r
761 2.7.7. MIXER VIDEO RESET
\r
762 ----------------------------------------------------------------------------------
\r
765 MIXER [channel:int]{-[layer:int]|-0} VIDEO RESET {[duration:uint]
\r
766 {[tween:string]|linear}|0 linear}
\r
770 Reset all video transformations.
\r
774 >> MIXER VIDEO 1 RESET
\r
775 >> MIXER VIDEO 1-0 RESET
\r
779 See Appendix A: Tweener for supported values for tween.
\r
781 ----------------------------------------------------------------------------------
\r
782 2.7.8. MIXER AUDIO GAIN
\r
783 ----------------------------------------------------------------------------------
\r
786 MIXER [channel:int]{-[layer:int]|-0} AUDIO GAIN {opacity:float}
\r
787 {[duration:uint] {[tween:string]|linear}|0 linear}
\r
791 Changes the gain(volume) of the specified layer.
\r
795 >> MIXER AUDIO 1-0 GAIN 0.5 25 easeinsine
\r
799 See Appendix A: Tweener for supported values for tween.
\r
801 ----------------------------------------------------------------------------------
\r
802 2.7.9. MIXER AUDIO RESET
\r
803 ----------------------------------------------------------------------------------
\r
806 MIXER [channel:int]{-[layer:int]|-0} AUDIO RESET {[duration:uint]
\r
807 {[tween:string]|linear}|0 linear}
\r
811 Reset all audio transformations.
\r
815 >> MIXER AUDIO 1 RESET
\r
816 >> MIXER AUDIO 1-0 RESET
\r
820 See Appendix A: Tweener for supported values for tween.
\r
822 ----------------------------------------------------------------------------------
\r
823 2.7.10. MIXER RESET
\r
824 ----------------------------------------------------------------------------------
\r
827 MIXER [channel:int]{-[layer:int]|-0} RESET {[duration:uint]
\r
828 {[tween:string]|linear}|0 linear}
\r
832 Reset all transformations.
\r
836 >> MIXER AUDIO 1 RESET
\r
837 >> MIXER AUDIO 1-0 RESET
\r
841 See Appendix A: Tweener for supported values for tween.
\r
843 **********************************************************************************
\r
844 2.8. Query Commands
\r
845 **********************************************************************************
\r
847 ----------------------------------------------------------------------------------
\r
849 ----------------------------------------------------------------------------------
\r
852 CINF [filename:string]
\r
856 Returns information about a mediafile.
\r
858 ----------------------------------------------------------------------------------
\r
860 ----------------------------------------------------------------------------------
\r
867 Lists all mediafiles.
\r
869 ----------------------------------------------------------------------------------
\r
871 ----------------------------------------------------------------------------------
\r
874 TLS {folder:string|./}
\r
878 Lists all templates. Lists only templates in the specified folder, if provided.
\r
880 ----------------------------------------------------------------------------------
\r
882 ----------------------------------------------------------------------------------
\r
885 VERSION {[component:SERVER,FLASH,TEMPLATEHOST]|SERVER}
\r
889 Returns the version of specified component.
\r
892 ----------------------------------------------------------------------------------
\r
894 ----------------------------------------------------------------------------------
\r
901 Returns information about the channels on the server. Use this without parameters
\r
902 to check how many channels a server has.
\r
904 **********************************************************************************
\r
906 **********************************************************************************
\r
908 ----------------------------------------------------------------------------------
\r
910 ----------------------------------------------------------------------------------
\r
917 Disconnects from the server.
\r
919 **********************************************************************************
\r
921 **********************************************************************************
\r
923 ----------------------------------------------------------------------------------
\r
924 2.10.1. Information
\r
925 ----------------------------------------------------------------------------------
\r
927 100 [action] - Information about an event.
\r
928 101 [action] - Information about an event. A line of data is being returned.
\r
930 ----------------------------------------------------------------------------------
\r
931 2.10.2. Successfull
\r
932 ----------------------------------------------------------------------------------
\r
934 200 [command] OK - The command has been executed
\r
935 201 [command] OK - The command has been executed and a line of data is
\r
937 202 [command] OK - The command has been executed and several lines of
\r
938 data are being returned (terminated by an empty line).
\r
940 ----------------------------------------------------------------------------------
\r
941 2.10.3. Client Error
\r
942 ----------------------------------------------------------------------------------
\r
944 400 ERROR - Command not understood
\r
945 401 [command] ERROR - Illegal channel
\r
946 402 [command] ERROR - Parameter missing
\r
947 403 [command] ERROR - Illegal parameter
\r
948 404 [command] ERROR - Media file not found
\r
950 ----------------------------------------------------------------------------------
\r
951 2.10.4. Server Error
\r
952 ----------------------------------------------------------------------------------
\r
954 500 FAILED - Internal server error
\r
955 501 [command] FAILED - Internal server error
\r
956 502 [command] FAILED - Media file unreadable
\r
958 ==================================================================================
\r
959 APPENDIX A : TWEENER
\r
960 ==================================================================================
\r
962 The following list specifies all supported tweens.
\r