From 8434b64bf82e3f111ca461a9789707558dff5dd3 Mon Sep 17 00:00:00 2001 From: Michael Roitzsch Date: Thu, 31 Oct 2002 16:58:12 +0000 Subject: new syntax for MRLs basic changes: - MRLs are a subset of URIs - important new delimiter is # - everything before the # will be passed to the input plugin - after the # you can add several ;-separated stream parameters: novideo - video will be ignored noaudio - audio will be ignored nospu - spus will be ignored demux:... - specify the demuxer to use (e.g. demux:mpeg_block) entry:value - assign any config entry a new value CVS patchset: 3112 CVS date: 2002/10/31 16:58:12 --- doc/MRLs | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 doc/MRLs (limited to 'doc') diff --git a/doc/MRLs b/doc/MRLs new file mode 100644 index 000000000..45b43ecfd --- /dev/null +++ b/doc/MRLs @@ -0,0 +1,71 @@ +proposition of generic syntax of MRLs +===================================== + +This document defines a draft for a syntactic specification of MRLs as +used by xine-lib. The language of MRLs is designed to be a true subset +of the language of URIs as given in RFC2396. A type 2 grammar for the +language of MRLs is given in EBNF below. + +Semantically, MRLs consist of two distinct parts that are evaluated by +different components of the xine architecture. The first part, +derivable from the symbol in the given grammar, is +completely handed to the input plugins, with input plugins signaling +if they can handle the MRL. +The second part, derivable from and delimited from the +first by a crosshatch ('#') contains parameters that modify the +initialization and playback behaviour of the stream to which the MRL +is passed. The possible parameters should be self-explaining, when +looking into the grammar. + +The following definition should be regarded as a guideline only. +Of course any given input plugin only understands a subset of all +possible MRLs. On the other hand, invalid MRLs according to this +definition might be understood for convenience reasons. +Some user awareness is required at this point. + +EBNF grammar for MRLs: + + ::= [#] + ::= (|) + ::= :(|)[?] + ::= (|) + ::= //[] + ::= / + ::= [] + ::= {} + ::= (||;|@|&|=|+|$|,) + ::= {(||+|-|.)} + ::= (|) + ::= [[@][:]] + ::= {(||;|:|&|=|+|$|,)} + ::= (|) + ::= {.}[.] + ::= (|{(|-)}) + ::= (|{(|-)}) + ::= {}.{}.{}.{} + ::= {} + ::= {} + ::= (||;|:|@|&|=|+|$|,) + ::= {/} + ::= {}{;} + ::= {} + ::= (||:|@|&|=|+|$|,) + ::= {} + ::= ;{} + ::= (||novideo|noaudio|nospu) + ::= : + ::= {} + ::= {} + ::= demux:{} + ::= (||:|@|&|=|+|$|,) + ::= (||) + ::= (;|/|?|:|@|&|=|+|$|,) + ::= (|) + ::= (-|_|.|!|~|*|'|(|)) + ::= % + ::= (|A|B|C|D|E|F|a|b|c|d|e|f) + ::= (|) + ::= (|) + ::= (a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z) + ::= (A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z) + ::= (0|1|2|3|4|5|6|7|8|9) -- cgit v1.2.3