Beispiel #1
0
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;
	}
}
Beispiel #2
0
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;
		}
	}
}