# AP4_Expandable Class Reference

`#include <Ap4Expandable.h>`

Inheritance diagram for AP4_Expandable:

List of all members.

## Public Types
enum | ClassIdSize { CLASS_ID_SIZE_08, CLASS_ID_SIZE_16 }
## Public Member Functions
| AP4_Expandable (AP4_UI32 class_id, ClassIdSize class_id_size, AP4_Size header_size, AP4_Size payload_size)
virtual | ~AP4_Expandable ()
AP4_UI32 | GetClassId ()
AP4_Size | GetSize ()
AP4_Size | GetHeaderSize ()
virtual AP4_Result | Write (AP4_ByteStream &stream)
virtual AP4_Result | WriteFields (AP4_ByteStream &stream)=0
virtual AP4_Result | Inspect (AP4_AtomInspector &inspector)
## Static Public Member Functions
static AP4_Size | MinHeaderSize (AP4_Size payload_size)
## Protected Attributes
AP4_UI32 | m_ClassId
ClassIdSize | m_ClassIdSize
AP4_Size | m_HeaderSize
AP4_Size | m_PayloadSize

## Detailed Description

Definition at line 47 of file Ap4Expandable.h.

## Member Enumeration Documentation

enum AP4_Expandable::ClassIdSize

Enumerator:

  CLASS_ID_SIZE_08 |
  CLASS_ID_SIZE_16 |

Definition at line 51 of file Ap4Expandable.h.

## Constructor & Destructor Documentation

AP4_Expandable::AP4_Expandable | ( | AP4_UI32 | class_id,
|  | ClassIdSize | class_id_size,
|  | AP4_Size | header_size,
|  | AP4_Size | payload_size |
| ) |  |  |

virtual AP4_Expandable::~AP4_Expandable | ( |  | ) | `[inline, virtual]`

Definition at line 64 of file Ap4Expandable.h.

## Member Function Documentation

static AP4_Size AP4_Expandable::MinHeaderSize | ( | AP4_Size | payload_size | ) | `[static]`

AP4_UI32 AP4_Expandable::GetClassId | ( |  | ) | `[inline]`

Definition at line 65 of file Ap4Expandable.h.

References m_ClassId.

AP4_Size AP4_Expandable::GetSize | ( |  | ) | `[inline]`

Definition at line 66 of file Ap4Expandable.h.

References m_HeaderSize, and m_PayloadSize.

AP4_Size AP4_Expandable::GetHeaderSize | ( |  | ) | `[inline]`

Definition at line 67 of file Ap4Expandable.h.

References m_HeaderSize.

virtual AP4_Result AP4_Expandable::Write | ( | AP4_ByteStream & | stream | ) | `[virtual]`

Referenced by AP4_DescriptorListWriter::Action().

virtual AP4_Result AP4_Expandable::WriteFields | ( | AP4_ByteStream & | stream | ) | `[pure virtual]`

Implemented in AP4_UnknownCommand, AP4_DecoderConfigDescriptor, AP4_DecoderSpecificInfoDescriptor, AP4_UnknownDescriptor, AP4_EsDescriptor, AP4_EsIdIncDescriptor, AP4_EsIdRefDescriptor, AP4_UnknownExpandable, AP4_IpmpDescriptorPointer, AP4_IpmpDescriptor, AP4_ObjectDescriptor, AP4_InitialObjectDescriptor, AP4_DescriptorUpdateCommand, and AP4_SLConfigDescriptor.

virtual AP4_Result AP4_Expandable::Inspect | ( | AP4_AtomInspector & | inspector | ) | `[virtual]`

Reimplemented in AP4_Command, AP4_DecoderConfigDescriptor, AP4_DecoderSpecificInfoDescriptor, AP4_Descriptor, AP4_EsDescriptor, AP4_EsIdIncDescriptor, AP4_EsIdRefDescriptor, AP4_IpmpDescriptorPointer, AP4_IpmpDescriptor, AP4_ObjectDescriptor, AP4_InitialObjectDescriptor, and AP4_DescriptorUpdateCommand.

## Member Data Documentation

AP4_UI32 AP4_Expandable::m_ClassId`[protected]`

Definition at line 74 of file Ap4Expandable.h.

Referenced by GetClassId(), AP4_Descriptor::GetTag(), and AP4_Command::GetTag().

ClassIdSize AP4_Expandable::m_ClassIdSize`[protected]`

Definition at line 75 of file Ap4Expandable.h.

AP4_Size AP4_Expandable::m_HeaderSize`[protected]`

Definition at line 76 of file Ap4Expandable.h.

Referenced by GetHeaderSize(), and GetSize().

AP4_Size AP4_Expandable::m_PayloadSize`[protected]`

Definition at line 77 of file Ap4Expandable.h.

Referenced by GetSize().

The documentation for this class was generated from the following file:

- Ap4Expandable.h