Skip to content

MPEG 4 IPMPX related functions

Dimitri Podborski edited this page Sep 17, 2020 · 1 revision

MP4NewIPMPDescriptorPointer

ISOErr MP4NewIPMPDescriptorPointer( MP4Handle ipmpDescPtrH, 
            u8 ipmpDescPtrId,
            u16 ipmpToolDescId );

Creates a new IPMPDescriptorPointer. The parameters are:

ipmpDescPtrH Handle containing the output IPMP Descriptor Pointer

ipmpDescPtrId ID of the output IPMP Descriptor Pointer

ipmpToolDescId ID of the IPMP Tool Descriptor pointed by the output IPMP Descriptor Pointer

MP4AddDescToSampleDescription

ISOErr MP4AddDescToSampleDescription( MP4Handle sampleEntryH, MP4Handle descriptorH );

This function can be used to add an IPMP Descriptor Pointer into an existing sampleDescription.

MP4NewIPMPInitialize

ISOErr MP4NewIPMPInitialize( MP4Handle ipmpInitializeH,
            u8 controlPointCode,
            u8 sequenceCode );

Creates a new IPMPInitialize structure with the following parameters:

ipmpInitializeH Handle containing the output IPMPInitialize structure

controlPointCode The control Point Code can be one of the following:

  • MP4IPMP_NoControlPoint
  • MP4IPMP_DB_Decoder_ControlPoint
  • MP4IPMP_Decoder_CB_ControlPoint
  • MP4IPMP_CB_Compositor_ControlPoint
  • MP4IPMP_BIFSTree_ControlPoint

sequenceCode The higher the sequence code, the higher the sequencing priority of the IPMP tool instance at the given control point.

MP4AddIPMPDataToIPMPInitialize

ISOErr MP4AddIPMPDataToIPMPInitialize( 
            MP4Handle ipmpInitializeH,
            MP4Handle ipmpDataH );

Adds IPMP data to the IPMPInitialize structure with the following parameters:

ipmpInitializeH Handle containing the IPMPInitialize structure. Can be created with the MP4NewIPMPInitialize function.

ipmpDataH Handle containing the IPMP Data to insert in the IPMPInitalize structure.

MP4NewIPMPToolDescriptor

ISOErr MP4NewIPMPToolDescriptor( MP4Handle ipmpToolDescH,
            u16 ipmpToolDescrId,
            u64 ipmpToolIdLowerPart,
            u64 ipmpToolIdUpperPart,
            MP4Handle ipmpInitializeH );

Creates a new IPMP Tool Descriptor with the following parameters:

ipmpToolDescH Handle containing the ouptut IPMP Tool Descriptor

ipmpToolDescrId ID of the output IPMP Tool Descriptor

ipmpToolIdLowerPart First 64 bits of the 128bits IPMP Tool ID

ipmpToolIdUpperPart Last 64 bits of the 128bits IPMP Tool ID

ipmpInitializeH Handle Containing the IPMPInitialize structure. Can be set to NULL if no IPMPInitialize structure is present.

MP4AddIPMPDataToIPMPToolDescriptor

ISOErr MP4AddIPMPDataToIPMPToolDescriptor( 
            MP4Handle ipmpToolDescH,
            MP4Handle ipmpDataH );

Adds IPMP data to an IPMP Tool Descriptor with the following parameters:

ipmpToolDescH Handle containing the IPMP Tool Descriptor. Can be created with the MP4NewIPMPToolDescriptor function.

ipmpDataH Handle containing the IPMP Data to insert in the IPMP Tool Descriptor.

MP4NewIPMPToolDescriptorUpdate

ISOErr MP4NewIPMPToolDescriptorUpdate( MP4Handle ipmpToolDescUpdateH );

Creates a new IPMPToolDescriptorUpdate command.

MP4AddIPMPToolDescriptorToUpdate

ISOErr MP4AddIPMPToolDescriptorToUpdate( 
            MP4Handle ipmpToolDescUpdateH,
            MP4Handle ipmpToolDescH );

Adds an IPMP Tool Descriptor to IPMPToolDescriptorUpdate command with the following paramters:

ipmpToolDescUpdateH Handle containing the IPMPToolDescriptorUpdate command. Can be created with the MP4NewIPMPToolDescriptorUpdate function

ipmpToolDescH Handle containing the IPMPToolDescriptor to insert in the command. Can be created with the MP4NewIPMPToolDescriptor function.

MP4NewIPMPTool

ISOErr MP4NewIPMPTool( MP4Handle ipmpToolH,
            u64 ipmpToolIdLowerPart,
            u64 ipmpToolIdUpperPart,
            MP4Handle altGroupInfoH,
            MP4Handle parametricInfoH );

Creates a new IPMPTool structure with the following parameters:

ipmpToolH Handle containing the output IPMPTool structure

ipmpToolIdLowerPart First 64 bits of the 128bits IPMP Tool ID

ipmpToolIdUpperPart Last 64 bits of the 128bits IPMP Tool ID

altGroupInfoH Handle built as an u64[] array containing for example:

  • alternateTool1LowerPart
  • alternateTool1UpperPart
  • alternateTool2LowerPart
  • alternateTool2UpperPart
  • ...

Can be set to NULL if the IPMPTool has no alternate.

parametricInfoH Handle containing the parametric information of the IPMPTool. Can be set to NULL if the tool is not parametric.

MP4AddUrlToIPMPTool

ISOErr MP4AddUrlToIPMPTool( MP4Handle ipmpToolH, MP4Handle urlH )

Add a URL from which one or more tools specified in IPMPTool can be downloaded.

MP4NewIPMPToolListDescriptor

ISOErr MP4NewIPMPToolListDescriptor( MP4Handle ipmpToolListDescH );

Creates a new IPMPToolListDescriptor.

MP4AddIPMPToolToIPMPToolList

ISOErr MP4AddIPMPToolToIPMPToolList( 
            MP4Handle ipmpToolListDescH,
            MP4Handle ipmpToolH );

Adds and IPMPTool structure in an IPMP Tool List Descriptor with the following parameters:

ipmpToolListDescH Handle containing the IPMP Tool List Descriptor. Can be created with the MP4NewIPMPToolListDescriptor function

ipmpToolH Handle containing the IPMP Tool structure. Can be created with the MP4NewIPMPTool function.

MP4AddDescToMovieIOD (already present)

ISOErr MP4AddDescToMovieIOD( MP4Movie theMovie, MP4Handle descriptorH );

Adds a descriptor to the movie IOD. The descriptor can be an IPMP Tool List Descriptor.

Clone this wiki locally