/*---------------------------------------------------------------------- | AP4_SttsAtom::AddEntry +---------------------------------------------------------------------*/ AP4_Result AP4_SttsAtom::AddEntry(AP4_UI32 sample_count, AP4_UI32 sample_duration) { m_Entries.Append(AP4_SttsTableEntry(sample_count, sample_duration)); m_Size += 8; return AP4_SUCCESS; }
/*---------------------------------------------------------------------- | AP4_SttsAtom::AP4_SttsAtom +---------------------------------------------------------------------*/ AP4_SttsAtom::AP4_SttsAtom(AP4_Size size, AP4_ByteStream& stream) : AP4_Atom(AP4_ATOM_TYPE_STTS, size, true, stream) { AP4_UI32 entry_count; stream.ReadUI32(entry_count); while (entry_count--) { AP4_UI32 sample_count; AP4_UI32 sample_duration; if (stream.ReadUI32(sample_count) == AP4_SUCCESS && stream.ReadUI32(sample_duration) == AP4_SUCCESS) { m_Entries.Append(AP4_SttsTableEntry(sample_count, sample_duration)); } } }
/*---------------------------------------------------------------------- | AP4_SttsAtom::AP4_SttsAtom +---------------------------------------------------------------------*/ AP4_SttsAtom::AP4_SttsAtom(AP4_UI32 size, AP4_UI32 version, AP4_UI32 flags, AP4_ByteStream& stream) : AP4_Atom(AP4_ATOM_TYPE_STTS, size, version, flags) { m_LookupCache.entry_index = 0; m_LookupCache.sample = 0; m_LookupCache.dts = 0; AP4_UI32 entry_count; stream.ReadUI32(entry_count); while (entry_count--) { AP4_UI32 sample_count; AP4_UI32 sample_duration; if (stream.ReadUI32(sample_count) == AP4_SUCCESS && stream.ReadUI32(sample_duration) == AP4_SUCCESS) { m_Entries.Append(AP4_SttsTableEntry(sample_count, sample_duration)); } } }