[vlc-devel] Re: Initial rtci interface

Sigmund Augdal sigmunau at stud.ntnu.no
Sat Nov 13 16:09:29 CET 2004

Is there a very compelling reason to implement this from scrach, and not use
a existing standard defined protocol like ORB (someone tried indeed this) or

I really dislike the idea of inventing the wheel over and over again, and
such systems are designed and thouroughly thought through before. My vote
goes for beefing up the corba module


On Sat, Nov 13, 2004 at 09:55:37AM -0500, Mark Moriarty wrote:
> Initial thoughts on what I would like an rtci to act like.  It is a
> "melding", aspects of VLM and the command-line.  One crucial thing is that
> it is oriented on inter-program communications, must be readily parsable.
> It is focused on the external interface, data exchange.
> Thoughts/comments welcome.  If someone is already doing this, please let me
> know.
> Thanks.
> Mark

> Connection
> A login username is required.  The default is "admin" (lower case).
> Simultaneous connections are permitted.
> An access control list, to permit only one source client to connect is available.  The format of this command is:
> --rtci-allow="ip_address"
> The default of ""  allows multiple connections, whatever the originating address.
> Commands
> Commands are of the form:
> --option1=option_value --option2=option_value --options_string_3="option_value"
> "--" is a token delimiter, used to separate command options
> If the item being controlled is a string -- filename, MRL, etc. -- it is enclosed in quotes
> option_value must immediately follow the "="
> Multiple options may be included in one command line
> "?" is a special character, request for variable value
> Examples:
> --logo-x=100 --logo-y=50 --logo-file="testfile.png"
> Set the logo graphic offsets, and the logo to be displayed
> --logo-x=100
> Just change the logo X offset
> --logo-x=?  --logo-y=?
> Request the current logo offsets
> Multiple items can be combined on one command line.
> A single command line may not exceed 240 characters.
> A command line must be terminated with a "\r" (carriage return).  Carriage return-linefeed (\r\n) combinations are acceptable -- the \n will be discarded.
> Booleans:
> Some commands are on/off, to enable or diable options.  0 = Off, 1 = On
> --network-display-connects=0
> Do not supply information on RTCI about incoming connections
> --network-display-connects=1
> Do send information on RTCI about incoming connections
> Read/Write
> Many commands are read/write -- the user is able to either set the value or obtain information (via a "?").  Some commands are read-only, however -- will only return the current value of an item.
> Responses:
> Responses from VLC all start with a "<<"
> A response may be multi-line.  Each response terminates with a carriage return "\r"
> At the end of a response, a ">>" input prompt is provided, so the actual last three characters of a response sequence are the carriage return and ">>"
> A verbose command is available, to determine the complexity of responses.
> --rtci-verbose=0 signifies short responses, an acknowledgement or non-acknowledgement of successful command processing.
> --rtci-verbose=1 signifies provide extended response information.
> If rtci-verbose=1, responses will be given for each individual parameter:
> >>logo-x=100  --logo-y="fruitloops" --logo-file=? --logo-transparency=200
> <<logo-x=100 <ACK>
> <<logo-y= <NACK> Invalid argument type
> <<logo-file="myfile.png" <ACK>
> <<logo-transparency=200 <ACK>
> >>
> If rtci-verbose=0, responses will be provided on a command-line-by-command-line basis, only one response line for the entire input command.
> >>--logo-x=50 --logo-y=100
> << <ACK>
> >>
> signifies that the command line was accepted, successfully processed.
> >>--logo-x=50 --logo-y="fruitloops"
> << <NACK>
> >>
> signifies that there were one or more errors processing the command line.
> Exception:
> If a command-line includes information requests (e.g., "--logo-x=?"), there will always be a response for that request, even with --rtci-verbose=0
> >>logo-x=50 --logo-y=? --logo-file="something-non-existant"
> <<logo-y=100
> << <NACK>
> >>                    {because there was a problem with the logo-file}
> Status
> It will be possible to enable status reporting on the interface, messages generated by VLC.  These VLC-generated messages will be of the form:
> <<STATUS date-time-stamp Message
> >>
> At a minimum, it will be possible to enable reporting of all Wrn and Err messages, and to explicitly request reporting of Connect and Disconnect actions.  
> It will also be possible to enable various playlist activities (when new titles start playing, etc.)
> An independent Status port will also be provided.
> {not sure if this should be TCP, or if UDP is acceptable/reasonable to use}  
> Classes of items sent through this port will be configurable independently from the status reports sent on the main control interface.
> --------
> Playlist info -- see http interface code
> --rtci-boot="ip_address" to force a disconnect of a user

This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html

More information about the vlc-devel mailing list