© ISO/IEC 2014 – All rights reserved ISO/IEC JTC 1/SC 29 N Date: 2014-10-24 ISO/IEC CD 23008-4 ISO/IEC JTC 1/SC 29/WG 11 Secretariat: Information technology — High efficiency coding and media delivery in heterogeneous environments — Part 4: MMT Reference and Conformance Software Élément introductif — Élément central — Partie 4: Titre de la partie Warning This document is not an ISO International Standard. It is distributed for review and comment. It is subject to change without notice and may not be referred to as an International Standard. Recipients of this draft are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation. Document type: International Standard Document subtype: Document stage: (30) Committee Document language: E D:\116097385.doc STD Version 2.1c2 ISO/IEC CD 23008-4 Copyright notice This ISO document is a working draft or committee draft and is copyright-protected by ISO. While the reproduction of working drafts or committee drafts in any form for use by participants in the ISO standards development process is permitted without prior permission from ISO, neither this document nor any extract from it may be reproduced, stored or transmitted in any form for any other purpose without prior written permission from ISO. Requests for permission to reproduce this document for the purpose of selling it should be addressed as shown below or to ISO's member body in the country of the requester: [Indicate the full address, telephone number, fax number, telex number, and electronic mail address, as appropriate, of the Copyright Manger of the ISO member body responsible for the secretariat of the TC or SC within the framework of which the working document has been prepared.] Reproduction for sales purposes may be subject to royalty payments or a licensing agreement. Violators may be prosecuted. ii © ISO/IEC 2014 – All rights reserved ISO/IEC CD 23008-4 Contents Page Foreword ............................................................................................................................................................ iv 1 Scope ...................................................................................................................................................... 1 2 Configuration File Format..................................................................................................................... 4 3 Version Control and Compiling ........................................................................................................... 6 © ISO/IEC 2014 – All rights reserved iii ISO/IEC CD 23008-4 Foreword ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission) form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC participate in the development of International Standards through technical committees established by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2. The main task of the joint technical committee is to prepare International Standards. Draft International Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as an International Standard requires approval by at least 75 % of the national bodies casting a vote. Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. ISO/IEC 23008-4 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 29, Coding of audio, picture, multimedia and hypermedia information. ISO/IEC 23008 consists of the following parts, under the general title Information technology — High efficiency coding and media delivery in heterogeneous environments: Part 1: MPEG media transport (MMT) - Part 2: High efficiency video coding (HEVC) - Part 3: 3D Audio - Part 4: MMT Reference and Conformance Software - Part 10: FEC Codes - Part 11: Composition Information (CI) Part 13: MPEG media transport (MMT) Implementation Guideline iv © ISO/IEC 2014 – All rights reserved COMMITTEE DRAFT ISO/IEC CD 23008-4 Information technology — High efficiency coding and media delivery in heterogeneous environments — Part 4: MMT Reference and Conformance Software 1 Scope The reference and conformance software operates according to Figure 1 — Operation of Reference and Conformance Software. It takes as input the MPUs, generic files, and signaling messages that are to be transmitted. The MMTP sender then generates the MMTP flow as a multiplex of MMTP packets from the different sources and stores them into a pre-configured location. The MMTP receiver de-multiplexes the MMTP flow based on the packet_id and the mode and passes the packets to the corresponding reconstruction module. The reconstruction module extracts the payload and reconstructs the resource (i.e. the MPU, the generic file, or the signaling message). Figure 1 — Operation of Reference and Conformance Software The following figure depicts the structure and class diagram of the reference and conformance software. The yellow, orange, and green boxes indicate classes, general or binary files (MPU, Generic, Configuration, and Packet dump), and XML files respectively. © ISO/IEC 2014 – All rights reserved 1 ISO/IEC CD 23008-4 Figure 2 — Figure 2. Class diagram of MMTP sender 2 © ISO/IEC 2014 – All rights reserved ISO/IEC CD 23008-4 Figure 3 — Class diagram of MMTP receiver The MMTP reference software works both sender and receiver side with a configuration (Demon 0: sender and 1: receiver). MMTP sender has three functions such as loading files (MPUs, Generic, and signaling files) from pre-configured directories, creation MMT packets, and storing packets and also receiver side has several functions which are loading packets, de-packetizing, and reconstruction files. MMT, MMT packet, Packet Main, MPU meta data, GFD meta data, and Signaling meta data classes are used both sender and receiver side. Loading module with Load MPU, Load GFD, and Load Signaling class are used only sender side and related reconstruction classes are used only receiver side. - MMT: MMT is a main class. MMT reads a configuration file (MMT_config) and distinguishes MMTP a sender and receiver mode. If the mode is a sender, the MMT reads all files from sender directories that are pre-configured certain locations to load MPUs, Generic, and signaling files and starts a packetizing for each file. The MMT calls a MMT packet class for creation packets. On the other hands, if the mode is a receiver, the MMT calls a depacketization function. - MMT packet: The main function of MMT packet is a packetization and de-packetization. In sender case, the MMT packet distinguishes packet types such as (0x00: MPU, 0x01:GFD, 0x02:Signaling) and calls loaders for each mode and calls the Packet Main class to © ISO/IEC 2014 – All rights reserved 3 ISO/IEC CD 23008-4 manipulate a header information. If the mode is a receiver, it calls the de-packetization module and reconstruction module for each mode. 2 - Packet Main (Main Header Data): The MMTP main packet header is defined except payload data fields. The Packet Main calls MPU meta data, GFD meta data, and Signaling meta data to store meta information for each mode. - MPU Meta Data: The MMTP payload header for a MPU mode is defined and create MPU packet and de-packet. - GFD Meta Data: The MMTP payload header for a GFD mode is defined and create GFD packet and de-packet. - Signaling Meta Data: MMTP payload header for a signaling mode is defined and create signaling packet and de-packet. - Load MPU: Parsing and storing functions for MPU or ISOBMFF standards. Read binary MPU files or ffmpeg files and load box information (ftyp, moov, moof, samples, etc) at the matching variables. - Load GFD: Parsing and storing functions for any generic files. Read those files and load information at the variables. - Load Signaling: Parsing and storing functions for any signaling files. Read signaling files and load information at the variables - MPU Reconstruction: Reconstruct MPU files. This is called after receiving each packet and payload data append the right place. - GFD Reconstruction: Reconstruct generic files. This is called after receiving each packet and payload data append the right place. - Signaling Reconstruction: Reconstruct signaling xml file. This is called after receiving each packet and payload data append the right place. Configuration File Format In this section, we describe the format of the confirmation file that is used to configure both the reference MMTP sender and the receiver. Figure 4 shows the example of configuration file. 4 © ISO/IEC 2014 – All rights reserved ISO/IEC CD 23008-4 Figure 4 — Exampe of configuration file - VERSION: Version of MMT reference software - DEMON: Distinguish tasks (0: MMTP sender, 1:MMTP receiver) - DIR_SENDER_MPU_AUDIO: Audio MPU file location - DIR_SENDER_MPU_VIDEO: Video MPU file location - DIR_SENDER_GFD: Generic file location - DIR_SENDER_SIGNAL: Signaling file (*.xml) location © ISO/IEC 2014 – All rights reserved 5 ISO/IEC CD 23008-4 3 6 - DIR_RECEIVER_MPU: MPU file location after reconstruction - DIR_RECEIVER_GFD: GFD file location after reconstruction - DIR_RECEIVER_SIGNAL: Signaling file location after reconstruction - DIR_PKT: Location of packet dump - DIR_PKT_VIEW: Location of packet viewer. Each packet creates xml format for packet conformation. - MTU: Max size of a MMT packet for packet fragmentation Version Control and Compiling - Development environment o Language: C/C++ (Ubuntu/Linaro 4.8.1-10 ubuntu9) o Operating System: Host (Window) Virtual Box -> Linux ubuntu 9 o Compiler: GCC version 4.8.1 o IDE: eclipse c++ version 3.8 o Additional Library: Tinyxml (for packet viewer) - Configuration (Ubunto + Eclipse) and compiling o Install eclipse and tinyxml o GCC c++ linker library: tinyxml, pthread library path: /usr/lib, /usr/local/bin (depend on the library location) © ISO/IEC 2014 – All rights reserved