MPEG 4 Scene Commands
Warning
GPAC's wiki has moved to wiki.gpac.io.
This github wiki will no longer be updated.
You can contribute to GPAC's documentation here.
We will now review the syntax of MPEG-4 scene commands in both BT and XMT-A formats. Please remember that BT and XMT languages are case sensitive.
RAP AT time IN esID { .... }
RAP
and IN esID
can be omitted most of the time.
<par begin="time" atES_ID="esID" isRAP="yes" > ... </par>
isRAP
and atES_ID
can be omitted most of the time. isRAP
is a GPAC extension.
REPLACE nodeName.fieldName BY newValue
<Replace atNode="nodeName" atField="fieldName" value="newValue" />
REPLACE nodeName.fieldName BY NodeDeclaration {... }
<Replace atNode="nodeName" atField="fieldName" >
<NodeXXX />
</Replace>
Note that the new node can be DEF'ed, or that a null node may be specified (NULL
).
REPLACE nodeName.fieldName[idx] BY newValue
<Replace atNode="nodeName" atField="fieldName" position="idx" value="newValue" />
For XMT-A, idx
can also take the special values 'BEGIN' and 'END'. Replacement of a node in an MFNode field is the combination of both syntax
REPLACE nodeName.fieldName BY [value1 ... valueN]
REPLACE nodeName.fieldName BY [Node { ... } ... Node { ... }]
<Replace atNode="nodeName" atField="fieldName" value="value1 ... valueN" />
<Replace atNode="nodeName" atField="fieldName" >
<NodeXXX>...</NodeXXX>
<NodeXXX>...</NodeXXX>
</Replace>
Replacement of a node in an MFNode field is the combination of both syntax
DELETE nodeName
DELETE nodeName.fieldName
<Delete atNode="nodeName" />
<Delete atNode="nodeName" atField="fieldName" />
DELETE nodeName.fieldName[idx]
<Delete atNode="nodeName" atField="fieldName" position="idx" />
For XMT-A, idx
can also take the special values 'BEGIN' and 'END'.
INSERT AT nodeName.fieldName[idx] newValue
APPEND TO nodeName.fieldName newValue
<Insert atNode="nodeName" atField="fieldName" position="idx" value="newValue" />
For XMT-A, idx
can also take the special values 'BEGIN' and 'END'.
INSERT AT nodeName.fieldName[idx] Node { }
APPEND TO nodeName.fieldName Node { }
<Insert atNode="nodeName" atField="fieldName" position="idx" >
<NodeXXX>...</NodeXXX>
</Insert>
For XMT-A, idx
can also take the special values 'BEGIN' and 'END'.
REPLACE ROUTE routeName BY nodeName1.fieldName1 TO nodeName2.fieldName2
<Replace atRoute="routeName">
<ROUTE fromNode="nodeName1" fromfield="fieldName1" toNode="nodeName2" toField="fieldName2" />
</Replace>
INSERT ROUTE nodeName1.fieldName1 TO nodeName2.fieldName2
<Insert>
<ROUTE fromNode="nodeName1" fromfield="fieldName1" toNode="nodeName2" toField="fieldName2" />
</Insert>