/* returns the ImageDescriptionHandle for the track. If it's not a video track, return NULL */ static ImageDescriptionHandle track_image_description(VALUE obj) { OSErr osErr; /* restrict reporting to video track */ if (track_get_media_type(obj) != VideoMediaType) return NULL; SampleDescriptionHandle sample_description = NULL; sample_description = (SampleDescriptionHandle)NewHandle(sizeof(SampleDescription)); if (LMGetMemErr() != noErr) { rb_raise(eQuickTime, "Memory Error %d when determining image description", LMGetMemErr()); return NULL; } GetMediaSampleDescription(TRACK_MEDIA(obj), 1, sample_description); osErr = GetMoviesError(); if (osErr != noErr) { rb_raise(eQuickTime, "Movie Error %d when determining image description", osErr); DisposeHandle((Handle)sample_description); return NULL; } return (ImageDescriptionHandle)sample_description; }
OSErr MemError(void) { OSErr err = LMGetMemErr(); LMSetMemErr(noErr); return err; }