Differences

This shows you the differences between two versions of the page.

Link to this comparison view

wiki:ics [10.08.2011 10:46]
212.88.157.202 xviPyjjoYzuakTnPtf
wiki:ics [09.12.2013 01:48] (current)
rgareus old revision restored
Line 1: Line 1:
-Okay I'm convincedLet's put it to aciotn.+====== Image Compositor Socket ====== 
 +{{:wiki:ardour2vis.png?250  }} 
 +[[http://ardour.org|ardour]] - the new digital audio workstation - includes rudimentary support to display video-timelines. - For this to work the video-data needs to be supplied by a 3rd-party application via TCP-socket, hence the name: Image Compositor Socket.  
 + 
 +Back in 2004/2005 ''aniComp'' from the CMT, Glasgow Animatics-server was supported in Ardour-0.99; but since then 
 +ardour-2.X ICS code has been mostly unmaintained.  
 + 
 +I took to code a [[oss:sodankyla:start|video-server]] that implements the ICS protocol to communicate with ardour and manages EDL video-sessions.  This wiki page documents information regarding interoperability and interaction with ardour. 
 + 
 +===== ICS and ardour 2.X ===== 
 + 
 +ardour-0.99.3 works //just fine//. However the 2.0-ongoing branch (currently ardour-2.5, svn rev. 3617) introduces video-display regressions that require patching: You can grab split-patches and follow discussion at 
 +http://tracker.ardour.org/view.php?id=2364 or download a {{:wiki:ardour-r3617-video2.patch|combined patch}} from here. 
 + 
 +===== Setup ===== 
 + 
 +ardour enables it's video-capabilities if it can find an executable ''aniComp'' in ''$PATH''. Probably the easiest way to accoplish this is to: 
 +  sudo ln -s /bin/true /usr/local/bin/aniComp 
 + 
 +ardour2 will also need the an additional line in the ''ardour.menus'' configuration file: 
 +  <menuitem action='aniConnect'/> 
 +I've added it below the "AddTrackBus" entry. 
 + 
 +Launch the [[oss:sodankyla:start|socket-server]], ardour and activate ardour's "connect" menu-entry. 
 + 
 +===== ICS Protocol ===== 
 +{{:wiki:ardourvis-doc.png?250  |handwritten ICS-ardourvis annontations}} 
 +ICS communicates via TCP port 30000. The general syntax is in ASCII text: Every message but the raw-video-data is encoded as Text, integers are represented as decimal values.  
 + 
 +  NUMBER  := <ascii-decimal-integer (3 or 10bytes)> 
 +  TEXT    := <length (3bytes)><data (length bytes)> 
 +  REPLY   := "RT0" | "RT1" 
 +  COMMAND := <2-byte-command> [2-byte-id]* [TEXT]* [NUMBER]* 
 + 
 +there are various 2-byte identifiers for commands, items and attributes (eg. ''IN'': insert, ''RM'': remove, ''IT'': imageframe time axis etc). for a full list see the ardour source: 
 +  gtk2_ardour/ardour_image_compositor_socket.h 
 +  gtk2_ardour/imageframe_socket_handler.cc 
 +  gtk2_ardour/imageframe_socket_handler.h 
 +   
 +If you don't have aniComp and can't wait until [[oss:sodankyla:start|sodankyla]] is deployable, you can connect to ardour using the gnu-tool ''socket''.  Here's an annotated example session: 
 + 
 +  # 
 +  # $ socket -v -ls 30000 
 +  # 
 +  # load session 
 +  SAOS019/tmp/a25/a25.ardour 
 +  # 
 +  # create new video-track "TTTT" 
 +  INIT004TTTT 
 +  # rename "TTTT" to "NAME" 
 +  MVIT004TTTT004NAME 
 +  # insert a new marker-track (just testing) 
 +  INMT005VNAME004NAME 
 +  # add a new video-scene/group to the video-track 
 +  INIG004NAME007myscene 
 +  # add an image to the video-scene 
 +  #   Track  Scene     Chunk 
 +  #   |      |         |      start     duration 
 +  #   |  +   |  +      |  +   |         | 
 +  INII004NAME007myscene004myID00000000000000048000 
 +  # 
 +  # ardour asks: 
 +  # 
 +  # "RQID004NAME007myscene004myID066"  
 +  #      |  +   |  +      |  +   |  
 +  #      |      |         |      preferred height 
 +  #      Track  Scene     Chunk  
 +  # 
 +  # 
 +  # reply - header 
 +  #   Width 
 +  #   |  Height 
 +  #   |  |  SPP 
 +  #   |  |  |  Data len 
 +  #   |  |  |  |  
 +  RDID00800600300000000000000000000000000000144 
 +  # expect "RT1" from ardour. 
 +  # now send image data - here: 144 bytes  
 +  000...000 (repeat) 
 +   
 + 
 +Note: ardour-0.99.3 expects ''SPP=4'' and //RGBA// image data. The patched ardour2 can handle //RGB24// and //RGBA32//. 
 + 
 +====== external resources ====== 
 + 
 +  * http://subversion.ardour.org/svn/ardour2/branches/2.0-ongoing/gtk2_ardour/ardour_image_compositor_socket.h 
 +  * http://animix.sourceforge.net/anicomp/images/anicomp_preview_2.png 
 +  * http://sourceforge.net/projects/animix/ 
 +   
 +{{tag>FLOSS JACK Video Development}}
 
wiki/ics.1312965965.txt.gz · Last modified: 10.08.2011 10:46 by 212.88.157.202