/* * MP4 library API functions * * These are wrapper functions that provide C linkage conventions * to the library, and catch any internal errors, ensuring that * a proper return value is given. */ #include "mp4common.h" static u_int8_t ipod_magic[] = { 0x6b, 0x68, 0x40, 0xf2, 0x5f, 0x24, 0x4f, 0xc5, 0xba, 0x39, 0xa5, 0x1b, 0xcf, 0x03, 0x23, 0xf3 }; class IPodUUIDAtom : public MP4Atom { public: IPodUUIDAtom() : MP4Atom("uuid") { SetExtendedType(ipod_magic); MP4Integer32Property* value = new MP4Integer32Property("value"); value->SetValue(1); AddProperty(value); } }; extern "C" void AddIPodUUID(MP4FileHandle hFile, MP4TrackId trackId) { MP4Track* track = ((MP4File*)hFile)->GetTrack(trackId); MP4Atom* avc1 = track->GetTrakAtom()->FindChildAtom("mdia.minf.stbl.stsd.avc1"); avc1->AddChildAtom(new IPodUUIDAtom()); }