void STSDAtom::OnProcessMetaData() { FullAtom::OnProcessMetaData(); ReadArrayHeader(&theHeader); // This Atom allows for multiple Desc Entries, we don't // Ok the committee was drunk when they designed this. // We are actually reading a Atom/Box where the Atom Type is the codec id. uint32 Size; Read(&Size); Read(&codecid); Read(theSampleEntry.Reserved,6); Read(&theSampleEntry.DataReference); switch (GetMediaHandlerType()) { case 'soun': ReadSoundDescription(); theAudioDescription.codecid = codecid; break; case 'vide': ReadVideoDescription(); theVideoDescription.codecid = codecid; break; case 'hint': break; default: break; } }
void STSDAtom::OnProcessMetaData() { ReadArrayHeader(&theHeader); for (uint32 i=0;i<theHeader.NoEntries;i++) { switch (getMediaComponentSubType()) { case 'soun': ReadSoundDescription(); break; case 'vide': ReadVideoDescription(); break; default: // Skip SampleDescBase aSampleDescBase; Read(&aSampleDescBase.Size); Read(&aSampleDescBase.DataFormat); Read(aSampleDescBase.Reserved,6); Read(&aSampleDescBase.DataReference); printf("%c%c%c%c\n",char(aSampleDescBase.DataFormat>>24),char(aSampleDescBase.DataFormat>>16),char(aSampleDescBase.DataFormat>>8),char(aSampleDescBase.DataFormat)); theStream->Seek(aSampleDescBase.Size - SampleDescBaseSize, SEEK_CUR); break; } } }