---
title: "CMAudioFormatDescriptionGetRichestDecodableFormat(_:)"
framework: coremedia
role: symbol
role_heading: Function
path: "coremedia/cmaudioformatdescriptiongetrichestdecodableformat(_:)"
---

# CMAudioFormatDescriptionGetRichestDecodableFormat(_:)

Returns a read-only pointer to the appropriate audio format list item in an audio format description.

## Declaration

```swift
func CMAudioFormatDescriptionGetRichestDecodableFormat(_ desc: CMAudioFormatDescription) -> UnsafePointer<AudioFormatListItem>?
```

## Parameters

- `desc`: CMFormatDescription being interrogated.

## Return Value

Return Value A read-only pointer to the appropriate AudioFormatListItem inside the audio format description.

## Discussion

Discussion This property performs validation on the formats represented by the audio in the description.  It finds the first AudioFormatListItem for which the current system has a valid decoder. This API is specific to audio format descriptions, and will return NULL if called with a non-audio format description.  It may also return NULL if there is no suitable decoder available on the current system for this audio format.

## See Also

### Working with Audio Descriptions

- [CMSoundDescriptionFlavor](coremedia/cmsounddescriptionflavor.md)
- [CMAudioFormatDescriptionCreateSummary(allocator:formatDescriptionArray:flags:formatDescriptionOut:)](coremedia/cmaudioformatdescriptioncreatesummary(allocator:formatdescriptionarray:flags:formatdescriptionout:).md)
- [CMAudioFormatDescriptionCreate(allocator:asbd:layoutSize:layout:magicCookieSize:magicCookie:extensions:formatDescriptionOut:)](coremedia/cmaudioformatdescriptioncreate(allocator:asbd:layoutsize:layout:magiccookiesize:magiccookie:extensions:formatdescriptionout:).md)
- [CMAudioFormatDescriptionEqual(_:otherFormatDescription:equalityMask:equalityMaskOut:)](coremedia/cmaudioformatdescriptionequal(_:otherformatdescription:equalitymask:equalitymaskout:).md)
- [CMAudioFormatDescriptionGetChannelLayout(_:sizeOut:)](coremedia/cmaudioformatdescriptiongetchannellayout(_:sizeout:).md)
- [CMAudioFormatDescriptionGetFormatList(_:sizeOut:)](coremedia/cmaudioformatdescriptiongetformatlist(_:sizeout:).md)
- [CMAudioFormatDescriptionGetMagicCookie(_:sizeOut:)](coremedia/cmaudioformatdescriptiongetmagiccookie(_:sizeout:).md)
- [CMAudioFormatDescriptionGetMostCompatibleFormat(_:)](coremedia/cmaudioformatdescriptiongetmostcompatibleformat(_:).md)
- [CMAudioFormatDescriptionGetStreamBasicDescription(_:)](coremedia/cmaudioformatdescriptiongetstreambasicdescription(_:).md)
- [CMDoesBigEndianSoundDescriptionRequireLegacyCBRSampleTableLayout(_:flavor:)](coremedia/cmdoesbigendiansounddescriptionrequirelegacycbrsampletablelayout(_:flavor:).md)
- [CMSwapBigEndianSoundDescriptionToHost(_:_:)](coremedia/cmswapbigendiansounddescriptiontohost(_:_:).md)
- [CMSwapHostEndianSoundDescriptionToBig(_:_:)](coremedia/cmswaphostendiansounddescriptiontobig(_:_:).md)
- [CMAudioFormatDescriptionCreateFromBigEndianSoundDescriptionData(allocator:bigEndianSoundDescriptionData:size:flavor:formatDescriptionOut:)](coremedia/cmaudioformatdescriptioncreatefrombigendiansounddescriptiondata(allocator:bigendiansounddescriptiondata:size:flavor:formatdescriptionout:).md)
- [CMAudioFormatDescriptionCreateFromBigEndianSoundDescriptionBlockBuffer(allocator:bigEndianSoundDescriptionBlockBuffer:flavor:formatDescriptionOut:)](coremedia/cmaudioformatdescriptioncreatefrombigendiansounddescriptionblockbuffer(allocator:bigendiansounddescriptionblockbuffer:flavor:formatdescriptionout:).md)
- [CMAudioFormatDescriptionCopyAsBigEndianSoundDescriptionBlockBuffer(allocator:audioFormatDescription:flavor:blockBufferOut:)](coremedia/cmaudioformatdescriptioncopyasbigendiansounddescriptionblockbuffer(allocator:audioformatdescription:flavor:blockbufferout:).md)
