Skip to main content

MbufAllocContainer

BoardSupported
Host SystemYes
V4L2Yes
Clarity UHDPartial
Concord PoENo
GenTLPartial
GevIQYes
GigE VisionYes
IndioNo
Iris GTXPartial
Radient eV-CLPartial
Rapixo CLPartial
Rapixo CoFYes
Rapixo CXPYes
USB3 VisionYes

Allocate a container.

Syntax

AIL_ID MbufAllocContainer(
AIL_ID SystemId, //in
AIL_INT64 Attribute, //in
AIL_INT64 ControlFlag, //in
AIL_ID * ContainerBufIdPtr //out
)

Description

This function allocates a container on the specified system. A container is a data object that stores related buffers, referred to as the container's buffer components. By default, a container is empty. Components are automatically added to a container, when you grab into it or use it as a destination of a supported function. You can also add components to a container using MbufAllocComponent.

After allocating the container, you should check if the operation was successful, using MappGetError or by verifying that the container identifier returned is not M_NULL (or nullptr ifM_UNIQUE_ID was specified).

When the container is no longer required, release it usingMbufFreeunless M_UNIQUE_ID was specified during allocation; if M_UNIQUE_ID was specified, the smart identifier manages the container's lifetime and you must not manually free it.

Parameters

SystemId (in, AIL_ID)

Specifies the Aurora Imaging Library system on which to allocate the container. This parameter should be set to one of the following values:

For specifying the Aurora Imaging Library system

ValueDescription
M_DEFAULT_HOSTSpecifies the default Host system of the current Aurora Imaging Library application.
System identifierSpecifies a valid system identifier, previously allocated using MsysAlloc.

Attribute (in, AIL_INT64)

Specifies the container usage.

For specifying the container usage

ValueDescription
M_DISPSpecifies that image buffer components of the container can be displayed, and that the container can become 3D-displayable. You can inquire whether a container is currently 3D-displayable using MbufInquireContainerwithM_3D_DISPLAYABLE.
M_GRABSpecifies that the image buffer components of the container can be used to grab data, and that the container itself can be used to grab data.
M_PROCSpecifies that image buffer components of the container can be processed, and that the container can become 3D-processable. You can inquire whether a container is currently 3D-processable using MbufInquireContainerwithM_3D_PROCESSABLE for a point cloud container or with M_3D_PROCESSABLE_DEPTH_MAP for a depth map container.

ControlFlag (in, AIL_INT64)

Reserved for future expansion and must be set to M_DEFAULT.

ContainerBufIdPtr *(out, AIL_ID)

Specifies the address of the variable in which to write the container identifier or specifies the data type that the function should use to return the container identifier.

For retrieving the identifier or specifying how to return it

ValueDescription
M_NULLSpecifies that you will use this function's return value to obtain the identifier of the allocated container; in this case, a standard Aurora Imaging Library identifier of type AIL_ID is returned.
M_UNIQUE_IDSpecifies that you will use this function's return value to obtain the identifier of the allocated container; in this case, an Aurora Imaging Library smart identifier of type _AIL_UNIQUE_BUF_ID_is returned instead of a standard Aurora Imaging Library identifier.This setting is only available when using C++11 (or later).An Aurora Imaging Library smart identifier manages the lifespan of the Aurora Imaging Library object it owns (similar to a std::unique_ptr). Note, you can use an Aurora Imaging Library smart identifier as though it were a standard Aurora Imaging Library identifier, except that you cannot use it to manually free the container (it is freed automatically). For more information, see Aurora Imaging Library smart identifiers.
Address in which to write the identifierSpecifies the address of an AIL_ID in which to write the identifier of the allocated container.

If allocation fails, M_NULL is written as the identifier. |

Return Value

Type: AIL_ID

The returned value is the container identifier either as a standard identifier (AIL_ID) or a smart identifier (AIL_UNIQUE_BUF_ID). If allocation fails, M_NULL is returned (or nullptr ifM_UNIQUE_ID was specified).

Copyright © 2026 Zebra Technologies.