DrasticWiki : DrasticHttpCommands

Basic HTML Commands For VVW/QuickClip Network Option


The commands for VVW may be sent via http by the commands below (play, stop, etc)
from a user web page. To have the page displayed again after the command it must be 
'passed through' the command interpretor. This is done using the VVW virtual
pass through page 'VVWPassThrough'. Following this command should be a '?'
seperator, the page name 'page=XXX.html' and then any other commands seperated by 
the '&' sign.


page=%s Next page to load
channel=%ld Channel for this command, overrides cur chan
mode=%ld Clip=0, VTR=1, Single=2
type=%ld General type number
setchannel=%ld Set a new current channel
load=%s Load a new clip (server and single mode)
delete=%s Delete a clip
remove=%s Remove clip from list, but leave on disk
insert=%s Add a new clip
recstop=%s Record-Stop with new clip name (8 characters)

Transport

play Play mode (normal play speed)
play=%ld Play mode at speed where
stop Stop mode
pause Pause mode
record Begin record
speed=%ld Set play speed (requires play)
seek=%s Seek to an timecode
setin=%ld Set a new in point
setout=%ld Set a new out point
setpos=%ld Set a new position


To get the current status as a small web page:
http://localhost/VVWStatus=#
Where # is 0, 1 or 2
0: Page with title
1: Horizontal status
2: Vertical status


To get the current list of media (in clip or single mode) or 
the edit list (VTR mode).
http://localhost/VVWMedia=#
Where # is 0, 1, or 2
0: List with channel select, mode and mini control
1: List with mini control (play, pause, etc)
2: List by itself


Other internal pages are:
http://localhost/VVWSystem
– Lists available channels with name, type, presets, mode and time code type

http://localhost/VVWAudio
– Lists number of audio channels, input and output type, and input and output leves

http://localhost/VVWVideo
– Lists input and outputs as well as reference setting

http://localhost/VVWControl*
– Simple control panel (http buttons), media listing and status

http://localhost/VVWMisc
– VVW / MR Versions, downloads for Java applications, external links/contact

http://localhost/VVWChannels
– Horizontal table of all available channels state, position and 
current clip (auto refreshing)


Internal responses (mostly used for secondary php/perl servers). These
are text only responses. They do not include and html tags of any sort and 
are normally used when another web server used perl or php to integrate our 
control and response into another page.

http://localhost/VVWGetState
– returns state as a word, e.g. Play, Pause, Stop, etc
http://localhost/VVWGetPosition
– returns position as a time code, e.g. 00:00:04;28
http://localhost/VVWGetFrame
– returns position as a frame number, e.g. 148
http://localhost/VVWGetLastChangeMs
– returns the ms time of the last change of the current clip bin or vtr tc space
http://localhost/VVWGetErrorLogMs
– returns the ms time of the last change of the error log


XML Returns. These are to be used with Ajax/DOM pages.

http://localhost/VVWXMLGetStatus
– Returns a XML package including state, speed, position start and end points.

http://localhost/VVWXMLNextClip
– Returns a XML package with all the clip information. Used to retieve the clip bin information

http://localhost/VVWXMLClipInfo
– Returns a XML package with all the clip information. Used to retieve information on a specific clip

http://localhost/VVWXMLEDLState
– Used in conjunction with VVWXMLEDLInfo to retrieve the time code space edits. The command will always be VVWXMLEDLState?position=#&videochannels=#&audiochannels=#&infochannels=#.

http://localhost/VVWXMLEDLInfo
– Used in conjunction with VVWXMLEDLState to retrieve the time code space edits.

Here us a basic EDL retrieval session:


Call Position Start End  File Name Comment
VVWXMLEDLInfo 0
0 0 0
Restart list at 0
return info 0 0 300 1 2 0 file1.mov 10 sec VA2 from file1
VVWXMLEDLState 0
0 0 0
First state sent in above
return state 0
1 2 0
Used clip channels to pass back into Info
VVWXMLEDLInfo 0
1 2 0
Copy of the return of VVWXMLEDLState above
return info 0 0 150 0 1 0 file2.wav 5 sec A1 from file2
VVWXMLEDLState 0
1 2 0
Use the return of the last VVWXMLEDLState
return state 0
1 3 0
These are the channels used so far
VVWXMLEDLInfo 0
1 3 0
Copy of the return of VVWXMLEDLState above
return info 150 150 210 0 1 0 file3.wav 2 sec A1 from file3
VVWXMLEDLState 0
1 3 0
Use the return of the last VVWXMLEDLState
return state 150
0 1 0
All edits completed before 150

Take the MEDIACMD struct returned from VVWXMLEDLState and find the next active
clip. For the first clip in time line, send all zeroes. Other then the first call,
all calls should include the position/channel bits from the previous VVWXMLEDLState
call and (other then first call) VVWXMLEDLState should be call immeadiately before
VVWXMLEDLInfo .

http://localhost/VVWXMLNextDirEntry
– Used to retrieve the directory structure.
Takes 2 parameters:
  1. The base directory you are getting the listing for 
  2. The last directory entry returned

Assuming you had a directory structure that looked like this:

\Record\
\Record\Test.wav
\Record\Test.avi
\OfflineMedia\
\OfflineMedia\EmptyDir\
\OfflineMedia\retry.doc
\OfflineMedia\big.tga
\LocalMedia\AnotherDir\
\LocalMedia\test.aiff

The first call would only include the parameter '\'
http://localhost/VVWXMLNextDirEntry?\
Returns: <locator>\Record</locator>
This will return the first FileDir XML structure that will include the first locator. To get the next item, return the same base path plus the new locator.
http://localhost/VVWXMLNextDirEntry?\?\Record
Returns: <locator>\OfflineMedia</locator>
http://localhost/VVWXMLNextDirEntry?\?\OfflineMedia
Returns: <locator>\LocalMedia</locator>
http://localhost/VVWXMLNextDirEntry?\?\LocalMedia
Returns: <locator>END OF LIST</locator>
To descend into a sub directory, use the sub directory as the base path. To see what is in \Record
http://localhost/VVWXMLNextDirEntry?\Record\
Returns: <locator>\Record\..</locator>
http://localhost/VVWXMLNextDirEntry?\Record\&\Record\..
Returns: <locator>\Record\Test.wav</locator>
http://localhost/VVWXMLNextDirEntry?\Record\&\Record\Test.wav
Returns: <locator>\Record\Test.avi</locator>
http://localhost/VVWXMLNextDirEntry?\Record\&\Record\Test.avi
Returns: <locator>END OF LIST</locator>

http://localhost/VVWXMLFileInfo
– Used to retrieve information on a specific file.

http://localhost/VVWXMLGetErrorMsg&#
– Used to return one error message from the current list. The first call will not include an error number (just VVWXMLGetErrorMsg). This will return an ErrorNumber to use to get the next message (VVWXMLGetErrorMsg&202 for instance), as will each subsequent call. When all the error messages have been returned, it will return an ErrorNumber of -1.


Dealing with picon images

Server Mode, clip: Kroatien, file: KroatienMovie.mov


http://localhost/VVWXMLMediaCmd?SetValue&cmdalt=1000000&clipid=Kroatien&position=200
– Make a new picon from frame 200 of the clip Kroatien
– result name: KroatienMovie.picon.jpg

http://localhost/VVWXMLMediaCmd?GetValue&cmdalt=1000000&clipid=Kroatien&position=ffffffff
– Return the actual file name of the picon file (char elem 9)
– result name: Kroatien.picon.jpg

http://localhost/VVWXMLMediaCmd?GetValue&cmdalt=1000000&clipid=Kroatien&position=4294967295
– Return the size of the picon file in the Position elements
– result: dwPosition = 7900

http://localhost/VVWXMLMediaCmd?GetValue&cmdalt=1000000&clipid=Kroatien&position=1
– Return the actual bytes of data for the JPEG picon frame in arbID
– result: Not available in HTTP, have to use C/C++


http://localhost/VVWXMLMediaCmd?SetValue&cmdalt=1000000&filename=V:\Media\KroatienMovie.mov&position=100
– Make a new picon frame frame 100 without associating it with the clip
– result name: KroatienMovie.picon.jpg
(not normally used, conflicts with vtr tape mode picon)

VTR Tape Mode, Time line 00:00:01:00 Kroatien.mov


http://localhost/VVWXMLMediaCmd?SetValue&cmdalt=1000000&filename=V:\Media\Kroatien.mov&position=1000
– Make a new picon from the frame at position 1000, default for file
– result name: Kroatien.picon.jpg

http://localhost/VVWXMLMediaCmd?GetValue&cmdalt=1000000&filename=V:\Media\Kroatien.mov&position=ffffffff
– Return the actual file name of the picon file (char elem 9)
– result name: Kroatien.picon.jpg

http://localhost/VVWXMLMediaCmd?GetValue&cmdalt=1000000&filename=V:\Media\Kroatien.mov&position=4294967295
– Return the size of the picon file in the Position elements
– result: dwPosition = 7900

http://localhost/VVWXMLMediaCmd?GetValue&cmdalt=1000000&filename=V:\Media\Kroatien.mov&position=1
– Return the actual bytes of data for the JPEG picon frame in arbID
– result: Not available in HTTP, have to use C/C++




http://localhost/VVWXMLMediaCmd?<mediacmd>
– Allows user to send an arbitrary media cmd. It must be followed by at lease 1 parameter.
This may be followed by any combination of the following parameters:

– This command will return a XML MediaCmd with the results

Here are a few VVWXMLMediaCmd example commands:

VVWXMLMediaCmd?play
– Normal play
VVWXMLMediaCmd?play&speed=32760
– Play at 50% forward speed
VVWXMLMediaCmd?play&speed=-65520
– Play at 100% reverse play speed
VVWXMLMediaCmd?play&start=1:00&end=4:00&loop
– Play from one second to four seconds in a loop
VVWXMLMediaCmd?pause
– Pause the channel
VVWXMLMediaCmd?stop
– Stop (ee passthrough) the channel
VVWXMLMediaCmd?pause&position=1:00:00
– Seek to one minute
VVWXMLMediaCmd?record&clipid=newrec&end=5:00
– Record a new file name 'newrec' which will be five seconds long


Please see the supplied html files and the generated files for more information.