> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Metadata API

> This file contains metadata IDs.

**Header:** `spf/api/modules/metadata_api.h`

## Structures

### `metadata_tracking_event_t`

Payload for Metadata tracking event.

**Members**

<ParamField path="metadata_id" type="uint32_t">
  Globally Unique ID of the metadata.
</ParamField>

<ParamField path="source_module_instance" type="uint32_t">
  Specifies the source module of the metadata.
</ParamField>

<ParamField path="module_instance_id" type="uint32_t">
  Specifies the module instance ID of the module which is raising the event when MD is consumed/dropped.
</ParamField>

<ParamField path="flags" type="uint32_t">
  Specifies the control flags for the metadata event.
</ParamField>

<ParamField path="token_lsw" type="uint32_t" />

<ParamField path="token_msw" type="uint32_t">
  Specifies the LSW of the unique token.
</ParamField>

<ParamField path="status" type="uint32_t">
  Specifies the MSW of the unique token.
</ParamField>

## Type Definitions

### `metadata_header_t`

```cpp theme={null}
typedef struct metadata_header_t metadata_header_t
```

### `metadata_tracking_event_t`

```cpp theme={null}
typedef struct metadata_tracking_event_t metadata_tracking_event_t
```

## Macros

### `MODULE_CMN_MD_ID_EOS`

```c theme={null}
#define MODULE_CMN_MD_ID_EOS 0x0A00100C
```

### `MD_HEADER_FLAGS_BIT_MASK_CLIENT_INFO`

Metadata API to support the requirement of exchanging the metadata between the client and SPF.

```c theme={null}
#define MD_HEADER_FLAGS_BIT_MASK_CLIENT_INFO AR_NON_GUID(0x00000001)
```

### `MD_HEADER_FLAGS_SHIFT_CLIENT_INFO`

Definition of a metadata client information flag shift value.

```c theme={null}
#define MD_HEADER_FLAGS_SHIFT_CLIENT_INFO 0
```

### `MD_HEADER_FLAGS_BIT_MASK_TRACKING_CONFIG`

Definition of a metadata tracking configuration bitmask.

```c theme={null}
#define MD_HEADER_FLAGS_BIT_MASK_TRACKING_CONFIG AR_NON_GUID(0x00000006)
```

### `MD_HEADER_FLAGS_SHIFT_TRACKING_CONFIG_FLAG`

Definition of a metadata tracking configuration shift value.

```c theme={null}
#define MD_HEADER_FLAGS_SHIFT_TRACKING_CONFIG_FLAG 1
```

### `MD_HEADER_FLAGS_BIT_MASK_TRACKING_EVENT_POLICY`

Definition of a metadata tracking event policy flag bitmask.

```c theme={null}
#define MD_HEADER_FLAGS_BIT_MASK_TRACKING_EVENT_POLICY AR_NON_GUID(0x00000008)
```

### `MD_HEADER_FLAGS_SHIFT_TRACKING_EVENT_POLICY_FLAG`

Definition of a metadata tracking event policy flag shift value.

```c theme={null}
#define MD_HEADER_FLAGS_SHIFT_TRACKING_EVENT_POLICY_FLAG 3
```

### `MD_HEADER_FLAGS_BIT_MASK_ASSOCIATION`

Definition of a metadata association with data bitmask.

```c theme={null}
#define MD_HEADER_FLAGS_BIT_MASK_ASSOCIATION AR_NON_GUID(0x00000010)
```

### `MD_HEADER_FLAGS_SHIFT_ASSOCIATION_FLAG`

Definition of a metadata association with data flag shift value.

```c theme={null}
#define MD_HEADER_FLAGS_SHIFT_ASSOCIATION_FLAG 4
```

### `MD_HEADER_FLAGS_CLIENT_EXTERNAL`

Definition of a external client of SPF.

```c theme={null}
#define MD_HEADER_FLAGS_CLIENT_EXTERNAL 0
```

### `MD_HEADER_FLAGS_CLIENT_INERTNAL`

Definition of a internal client of SPF.

```c theme={null}
#define MD_HEADER_FLAGS_CLIENT_INERTNAL 1
```

### `MD_HEADER_FLAGS_TRACKING_CONFIG_DISABLE`

Definition of a metadata tracking configuration disable.

```c theme={null}
#define MD_HEADER_FLAGS_TRACKING_CONFIG_DISABLE 0
```

### `MD_HEADER_FLAGS_TRACKING_CONFIG_ENABLE_FOR_DROPS_ONLY`

Definition of a metadata tracking configuration to enable for md drops only.

```c theme={null}
#define MD_HEADER_FLAGS_TRACKING_CONFIG_ENABLE_FOR_DROPS_ONLY 1
```

### `MD_HEADER_FLAGS_TRACKING_CONFIG_ENABLE_FOR_DROP_OR_CONSUME`

Definition of a metadata tracking configuration to enable for md drop or consume.

```c theme={null}
#define MD_HEADER_FLAGS_TRACKING_CONFIG_ENABLE_FOR_DROP_OR_CONSUME 2
```

### `MD_HEADER_FLAGS_TRACKING_EVENT_POLICY_LAST`

Definition of a metadata tracking event policy last.

```c theme={null}
#define MD_HEADER_FLAGS_TRACKING_EVENT_POLICY_LAST 0
```

### `MD_HEADER_FLAGS_TRACKING_EVENT_POLICY_EACH`

Definition of a metadata tracking event policy last.

```c theme={null}
#define MD_HEADER_FLAGS_TRACKING_EVENT_POLICY_EACH 1
```

### `MD_HEADER_FLAGS_SAMPLE_ASSOCIATED`

Definition of a metadata sample association .

```c theme={null}
#define MD_HEADER_FLAGS_SAMPLE_ASSOCIATED 0
```

### `MD_HEADER_FLAGS_BUFFER_ASSOCIATED`

Definition of a metadata sample association .

```c theme={null}
#define MD_HEADER_FLAGS_BUFFER_ASSOCIATED 1
```

### `MD_TRACKING_FLAGS_BIT_MASK_LAST_INSTANCE`

Definition of a metadata last instance flag bitmask.

```c theme={null}
#define MD_TRACKING_FLAGS_BIT_MASK_LAST_INSTANCE AR_NON_GUID(0x00000001)
```

### `MD_TRACKING_FLAGS_IS_LAST_INSTANCE_FLAG`

Definition of a metadata last instance flag shift value.

```c theme={null}
#define MD_TRACKING_FLAGS_IS_LAST_INSTANCE_FLAG 0
```

### `MD_TRACKING_STATUS_IS_CONSUMED`

tracking status of the metadata when the meta-data is consumed.

```c theme={null}
#define MD_TRACKING_STATUS_IS_CONSUMED AR_NON_GUID(0x00000000)
```

### `MD_TRACKING_STATUS_IS_DROPPED`

tracking status of the metadata when the meta-data is dropped.

```c theme={null}
#define MD_TRACKING_STATUS_IS_DROPPED AR_NON_GUID(0x00000001)
```

### `EVENT_ID_MODULE_CMN_METADATA_TRACKING_EVENT`

The metadata event is raised if the metadata is set as tracking metadata.

```c theme={null}
#define EVENT_ID_MODULE_CMN_METADATA_TRACKING_EVENT 0x0300100C
```

### `MODULE_CMN_MD_ID_MEDIA_FORMAT`

Metadata ID to specify the Media format Media format as metadata is propagated by the endpoint module in SPF to the client.

```c theme={null}
#define MODULE_CMN_MD_ID_MEDIA_FORMAT 0x0A001056
```
