CONTENTS

�1���� Scope
�2���� Normative references
�3���� Definitions
������� 3.1���� Definitions
������� 3.2���� Abbreviations
�4���� General
������� 5.1���� Information object conformance
����������������� 5.1.1���� Profiles
����������������� 5.1.2���� Encoding
����������������� 5.1.3���� Syntax
����������������� 5.1.4���� Semantics
������� 5.2���� Implementation conformance
����������������� 5.2.1���� Conformance requirements
����������������� 5.2.2���� Conformance documentation
������� 5.3���� Application conformance
������� 5.4���� Test Methods
�6���� Overview
������� 6.1���� Description methodology
������� 6.2���� Data processing operations
������� 6.3���� Access to external data and functions
�7���� MHEG/MHEG-3 relationship
������� 7.1���� MHEG entities
������� 7.2���� Functional entities
������� 7.3���� MHEG-SIR script interpreter
�8���� Elements of MHEG-SIR
������� 8.1���� Data types
����������������� 8.1.1���� Predefined types
����������������� 8.1.2���� Declared constructed types
������� 8.2���� Data
����������������� 8.2.1���� Immediate values
����������������� 8.2.2���� Constants
����������������� 8.2.3���� Variables
������� 8.3���� Functions
����������������� 8.3.1���� Routines
����������������� 8.3.2���� Services
����������������� 8.3.3���� Predefined functions
������� 8.4���� Messages
����������������� 8.4.1���� Package exceptions
����������������� 8.4.2���� Predefined messages
������� 8.5���� Instructions
������� 8.6���� Identifiers
����������������� 8.6.1���� Type identifiers
���������������� �8.6.2���� Data identifiers
����������������� 8.6.3���� Function identifiers
����������������� 8.6.4���� Message identifiers
�9���� The MHEG-SIR virtual machine
������� 9.1���� Structure of the MHEG-SIR virtual machine
������� 9.2���� Structures and notations
����������������� 9.2.1���� Table
����������������� 9.2.2���� Stack
����������������� 9.2.3���� Parameter stack
����������������� 9.2.4���� Queue
����������������� 9.2.5���� Data representation
������� 9.3���� Memory areas
����������������� 9.3.1���� Mh-script memory areas
����������������� 9.3.2���� Rt-script memory areas
������� 9.4���� Script statuses
����������������� 9.4.1���� Mh-script statuses
����������������� 9.4.2���� Rt-script statuses
������� 9.5���� Processing units
����������������� 9.5.1 ����Message reception
����������������� 9.5.2���� Mh-script initialization
����������������� 9.5.3���� Rt-script initialization
����������������� 9.5.4���� Rt-script execution unit
����������������� 9.5.5���� MHEG-SIR instruction execution unit
10���� Provisions for run-time environment access
������ 10.1���� General model
������ 10.2���� Declaration of IDL interfaces
������ 10.3���� Invocation of external operations in an MHEG-SIR program
������ 10.4���� Handling of external exceptions in an MHEG-SIR program
������ 10.5���� Invocation of external operations by an MHEG-3 engine
������ 10.6���� Handling of external exceptions by an MHEG-3 engine
������ 10.7���� Platform mapping specifications
11���� Provisions for MHEG object manipulation
������ 11.1���� Invoking MHEG actions
���������������� 11.1.1���� Sending messages to other scripts
���������������� 11.1.2���� Exchange of information with MHEG objects
������ 11.2���� Receiving MHEG messages
���������������� 11.2.1���� MHEG-3 API run operations
����������� �����11.2.2���� MHEG API exceptions
12���� MHEG-SIR declarations
������ 12.1���� Type declaration
���������������� 12.1.1���� Type identifier
���������������� 12.1.2���� Type description
������ 12.2���� Constant declaration
���������������� 12.2.1���� Data identifier
���������������� 12.2.2���� Type identifier
���������������� 12.2.3���� Constant value
������ 12.3���� Global variable declaration
���������������� 12.3.1���� Data identifier
���������������� 12.3.2���� Type identifier
���������������� 12.3.3� ���Constant reference
������ 12.4���� Package declaration
���������������� 12.4.1���� Package identifier
���������������� 12.4.2���� Name
���������������� 12.4.3���� Service description
���������������� 12.4.4���� Exception description
������ 12.5���� Handler declaration
���������������� 12.5.1���� Message identifier
���������������� 12.5.2���� Function identifier
������ 12.6���� Routine declaration
���������������� 12.6.1���� Function identifier
���������������� 12.6.2���� Type identifier
���������������� 12.6.3���� Parameter description
���������������� 12.6.4���� Local variable declaration
���������������� 12.6.5���� Program code
13���� MHEG-SIR instructions
������ 13.1���� Presentation methodology
���������������� 13.1.1���� Error conditions
����������� �����13.1.2���� Formal specification
���������������� 13.1.3���� Data table notation
���������������� 13.1.4���� Template instruction notation
���������������� 13.1.5���� Primitives
������ 13.2���� Classification of MHEG-SIR instructions
������ 13.3���� Description of instructions
���������������� 13.3.1���� No operation
���������������� 13.3.2���� Yield
���������������� 13.3.3���� Return
���������������� 13.3.4���� Free
���������������� 13.3.5���� Not
���������������� 13.3.6���� Or
���������������� 13.3.7 ����Exclusive or
���������������� 13.3.8���� And
���������������� 13.3.9���� Equal reference
��������������� 13.3.10���� Equal
��������������� 13.3.11���� Less than
��������������� 13.3.12���� Greater than
��������������� 13.3.13���� Add
��������������� 13.3.14���� Subtract
��������������� 13.3.15���� Multiply
��������������� 13.3.16���� Divide
��������������� 13.3.17���� Negate
��������������� 13.3.18���� Remainder
��������������� 13.3.19���� Duplicate
��������������� 13.3.20���� Convert
��������������� 13.3.21���� Jump on true
��������������� 13.3.22���� Jump on false
��������������� 13.3.23���� Jump
��������������� 13.3.24���� Shift
��������������� 13.3.25���� Get object reference
��������������� 13.3.26���� Long jump on true
��������������� 13.3.27���� Long jump on false
��������������� 13.3.28���� Long jump
��������������� 13.3.29���� Call
��������������� 13.3.30���� External call
��������������� 13.3.31���� Push
��������������� 13.3.32���� Push reference
��������������� 13.3.33���� Push immediate
����� ����������13.3.34���� Pop
��������������� 13.3.35���� Pop reference
��������������� 13.3.36���� Pop contents
��������������� 13.3.37���� Allocate
��������������� 13.3.38���� Increment
��������������� 13.3.39���� Decrement
��������������� 13.3.40���� Get
� ��������������13.3.41���� Get contents
��������������� 13.3.42���� Set
��������������� 13.3.43���� Set contents
������ 13.4���� Type conversion rules
���������������� 13.4.1���� Reversible conversions
���������������� 13.4.2���� Lossless extensions
������ ����������13.4.3���� Lossy extensions
���������������� 13.4.4���� Truncations to boolean
���������������� 13.4.5���� Truncations between integer or between floating-point types
���������������� 13.4.6���� Truncations from floating-point to integer
14���� IDL mapping to MHEG-SIR
������ 14.1���� IDL specifications
������ 14.2���� IDL interfaces and modules
������ 14.3���� IDL operations
���������������� 14.3.1���� Operation name
���������������� 14.3.2���� Operation parameters
���������������� 14.3.3���� Implicit parameter
���������������� 14.3.4���� Return value
������ 14.4���� IDL attributes
���������������� 14.4.1���� Accessor
���������������� 14.4.2���� Modifier
���������������� 14.4.3���� Readonly attribute
������ 14.5���� IDL inherited operations
������ 14.6���� IDL exceptions
���������������� 14.6.1���� Exception name
���������������� 14.6.2���� Exception members
���������������� 14.6.3���� Implicit member
������ 14.7���� IDL types
���������������� 14.7.1���� char type
���������������� 14.7.2���� enum type
���������������� 14.7.3���� Constructed types
���������������� 14.7.4���� any type
���������������� 14.7.5���� Restrictions on types
������ 14.8���� IDL constants
15���� The MHEG-3 API
������ 15.1���� ScriptInterpreter object
���������������� 15.1.1��� �kill operation
���������������� 15.1.2���� prepare operation
������ 15.2���� MhScript object
���������������� 15.2.1���� destroy operation
���������������� 15.2.2���� new operation
������ 15.3���� RtScript object
���������������� 15.3.1���� delete operation
���������������� 15.3.2���� setPriority operation
���������������� 15.3.3���� getPriority operation
���������������� 15.3.4���� setData operation
���������������� 15.3.5���� getData operation
���������������� 15.3.6���� allocate operation
������������� ���15.3.7���� free operation
���������������� 15.3.8���� stop operation
���������������� 15.3.9���� reInit operation
��������������� 15.3.10���� getRtScriptStatus operation
��������������� 15.3.11���� open operation
������ 15.4���� RoutineInvocation object
���������������� 15.4.1���� close operation
���������������� 15.4.2���� routine_id readonly attribute
���������������� 15.4.3���� setParameter operation
���������������� 15.4.4���� getPrototype operation
���������������� 15.4.5���� run operation
�������� ��������15.4.6���� reset operation
���������������� 15.4.7���� getInvocationStatus operation
Annex A � ASN.1 specification of interchanged scripts
Annex B � Coded representation of interchanged scripts
������� B.1���� Coding for interchanged scripts
����� ��B.2���� Coding for the program code
����������������� B.2.1���� Instruction op-codes
����������������� B.2.2���� Instruction operands
Annex C � MHEG-SIR predefined elements
������� C.1���� Predefined types
����������������� C.1.1���� Primitive types
��� ��������������C.1.2���� MHEG API types
������� C.2���� Predefined functions
����������������� C.2.1���� MHEG API operations
����������������� C.2.2���� MHEG-3 API operations
������� C.3���� Predefined messages
����������������� C.3.1���� MHEG-3 API operations
����������������� C.3.2���� The InstructionExecutionError exception
����������������� C.3.3���� MHEG-3 API exceptions
����������������� C.3.4���� MHEG API exceptions
Annex D � IDL Platform mapping specification form
Annex E � MHEG API definition process
������� E.1���� Generic API definition framework
����������������� E.1.1���� MHEG elements input to MHEG API definition process
����������������� E.1.2���� IDL elements output by MHEG API definition process
����������������� E.1.3���� Requirements on the MHEG API definition process
����������������� E.1.4���� General structure of the MHEG API
����������������� E.1.5���� IDL non-object datatype definition
����������������� E.1.6���� IDL interface definition
����������������� E.1.7���� IDL attribute definition
����������������� E.1.8���� IDL operation definition
����������������� E.1.9���� IDL exception definition
������� E.2���� MHEG API mapping to MHEG-SIR
Annex F � IDL specification of the MHEG-3 API
Annex G � Relationships with other ITU-T Recommendations of the T.170-Series (and parts of ISO/IEC 13522)
������� G.1���� Relationships with ITU-T Rec. T.171 (and ISO/IEC 13522‑1)
������� G.2���� Relationships with ITU-T Rec. T.172 (and ISO/IEC 13522‑5)
Appendix I � MHEG-SIR syntax (EBNF notation)
Appendix II � Textual notation for MHEG-SIR scripts
Appendix III � MHEG entities
����� III.1���� MHEG objects
����� III.2���� Mh-objects
����� III.3���� Rt-objects
����� III.4���� Interchanged MHEG objects
Appendix IV � Main features of MHEG-SIR
������ IV.1���� Features of using applications
���������������� IV.1.1���� Manipulation of MHEG entities
���������������� IV.1.2���� Computations, variable handling and control structures
���������������� IV.1.3���� External device control
���������������� IV.1.4���� Data acquisition
���������������� IV.1.5���� Access to external data
���������������� IV.1.6���� Access to arbitrary external run-time services
������ IV.2���� Functional features
���������������� IV.2.1���� Data processing operations
���������������� IV.2.2���� Access to external data and functions
������ IV.3���� Technical features
���������������� IV.3.1���� Hardware independence
���������������� IV.3.2���� Final form representation
���������������� IV.3.3���� Compactness
���������������� IV.3.4���� Ease of implementation
���������������� IV.3.5���� Interpretation efficiency
���������������� IV.3.6���� Openness and extensibility
���������������� IV.3.7���� Non-revisability
���������������� IV.3.8���� Provisions for real-time interchange
���������������� IV.3.9���� Semantic validation for quality of service purposes
��������������� IV.3.10���� Syntax checkability (with regard to contamination hazards)
��������������� IV.3.11���� Non-proprietary representation
��������������� IV.3.12���� Secure script processing