---
title: "CMMetadataFormatDescriptionCreateWithMetadataFormatDescriptionAndMetadataSpecifications(allocator:sourceDescription:metadataSpecifications:formatDescriptionOut:)"
framework: coremedia
role: symbol
role_heading: Function
path: "coremedia/cmmetadataformatdescriptioncreatewithmetadataformatdescriptionandmetadataspecifications(allocator:sourcedescription:metadataspecifications:formatdescriptionout:)"
---

# CMMetadataFormatDescriptionCreateWithMetadataFormatDescriptionAndMetadataSpecifications(allocator:sourceDescription:metadataSpecifications:formatDescriptionOut:)

Creates a metadata format description by extending an existing description with the values you specify.

## Declaration

```swift
func CMMetadataFormatDescriptionCreateWithMetadataFormatDescriptionAndMetadataSpecifications(allocator: CFAllocator?, sourceDescription: CMMetadataFormatDescription, metadataSpecifications: CFArray, formatDescriptionOut: UnsafeMutablePointer<CMMetadataFormatDescription?>) -> OSStatus
```

## Parameters

- `allocator`: CFAllocator to be used. kCFAllocatorDefault if you don’t care.
- `sourceDescription`: Source metadata format description being extended
- `metadataSpecifications`: An array of dictionaries, each dictionary supplies a metadata identifier, a datatype, and an optional language tag.
- `formatDescriptionOut`: Returned newly created metadata CMFormatDescription

## See Also

### Working with Metadata Descriptions

- [CMMetadataDescriptionFlavor](coremedia/cmmetadatadescriptionflavor.md)
- [CMMetadataFormatDescriptionCreateWithKeys(allocator:metadataType:keys:formatDescriptionOut:)](coremedia/cmmetadataformatdescriptioncreatewithkeys(allocator:metadatatype:keys:formatdescriptionout:).md)
- [CMMetadataFormatDescriptionGetKeyWithLocalID(_:localKeyID:)](coremedia/cmmetadataformatdescriptiongetkeywithlocalid(_:localkeyid:).md)
- [CMMetadataFormatDescriptionCopyAsBigEndianMetadataDescriptionBlockBuffer(allocator:metadataFormatDescription:flavor:blockBufferOut:)](coremedia/cmmetadataformatdescriptioncopyasbigendianmetadatadescriptionblockbuffer(allocator:metadataformatdescription:flavor:blockbufferout:).md)
- [CMMetadataFormatDescriptionCreateByMergingMetadataFormatDescriptions(allocator:sourceDescription:otherSourceDescription:formatDescriptionOut:)](coremedia/cmmetadataformatdescriptioncreatebymergingmetadataformatdescriptions(allocator:sourcedescription:othersourcedescription:formatdescriptionout:).md)
- [CMMetadataFormatDescriptionCreateFromBigEndianMetadataDescriptionBlockBuffer(allocator:bigEndianMetadataDescriptionBlockBuffer:flavor:formatDescriptionOut:)](coremedia/cmmetadataformatdescriptioncreatefrombigendianmetadatadescriptionblockbuffer(allocator:bigendianmetadatadescriptionblockbuffer:flavor:formatdescriptionout:).md)
- [CMMetadataFormatDescriptionCreateFromBigEndianMetadataDescriptionData(allocator:bigEndianMetadataDescriptionData:size:flavor:formatDescriptionOut:)](coremedia/cmmetadataformatdescriptioncreatefrombigendianmetadatadescriptiondata(allocator:bigendianmetadatadescriptiondata:size:flavor:formatdescriptionout:).md)
- [CMMetadataFormatDescriptionCreateWithMetadataSpecifications(allocator:metadataType:metadataSpecifications:formatDescriptionOut:)](coremedia/cmmetadataformatdescriptioncreatewithmetadataspecifications(allocator:metadatatype:metadataspecifications:formatdescriptionout:).md)
- [CMSwapBigEndianMetadataDescriptionToHost(_:_:)](coremedia/cmswapbigendianmetadatadescriptiontohost(_:_:).md)
- [CMSwapHostEndianMetadataDescriptionToBig(_:_:)](coremedia/cmswaphostendianmetadatadescriptiontobig(_:_:).md)
- [CMMetadataFormatDescriptionGetIdentifiers(_:)](coremedia/cmmetadataformatdescriptiongetidentifiers(_:).md)
