void WriteThumbnailToResourceFork(FSRef *ref, int destWidth, int destHeight) { OSStatus err; PicHandle pict; HFSUniStr255 fork; SInt16 resf; err = FSGetResourceForkName(&fork); if (err == noErr) { err = FSCreateResourceFork(ref, fork.length, fork.unicode, 0); if ((err == noErr) || (err == errFSForkExists)) { err = FSOpenResourceFile(ref, fork.length, fork.unicode, fsWrPerm, &resf); if (err == noErr) { pict = GetScreenAsPicHandle(IPPU.RenderedScreenWidth, IPPU.RenderedScreenHeight, destWidth, destHeight); if (pict) { AddResource((Handle) pict, 'PICT', 128, "\p"); WriteResource((Handle) pict); ReleaseResource((Handle) pict); } CloseResFile(resf); }
void MacQTVideoConfig(WindowRef parent) { OSStatus err; ComponentInstance ci; if (running) return; MacQTOpenVideoComponent(&ci); long flag; flag = scListEveryCodec | scAllowZeroKeyFrameRate | scDisableFrameRateItem; flag |= ((qtVersion >= 0x7008000) ? scAllowEncodingWithCompressionSession : 0); err = SCSetInfo(ci, scPreferenceFlagsType, &flag); #ifdef MAC_QT6_SUPPORT PicHandle pict = nil; if (qtVersion < 0x7008000) { Rect rct; int width, height; width = IPPU.RenderedScreenWidth; height = IPPU.RenderedScreenHeight; pict = GetScreenAsPicHandle(width, height, width, height); HNoPurge((Handle) pict); rct.left = (width - scTestImageWidth) >> 1; rct.top = (height - scTestImageHeight) >> 1; rct.right = rct.left + scTestImageWidth; rct.bottom = rct.top + scTestImageHeight; err = SCSetTestImagePictHandle(ci, pict, &rct, scPreferCropping); }
void MacQTVideoConfig(WindowRef parent) { OSStatus err; ComponentInstance ci; if (running) return; MacQTOpenVideoComponent(&ci); long flag; flag = scListEveryCodec | scAllowZeroKeyFrameRate | scDisableFrameRateItem; err = SCSetInfo(ci, scPreferenceFlagsType, &flag); PicHandle pict; Rect rct; int width, height; width = IPPU.RenderedScreenWidth; height = IPPU.RenderedScreenHeight; pict = GetScreenAsPicHandle(width, height, width, height); HNoPurge((Handle) pict); rct.left = (width - scTestImageWidth) >> 1; rct.top = (height - scTestImageHeight) >> 1; rct.right = rct.left + scTestImageWidth; rct.bottom = rct.top + scTestImageHeight; err = SCSetTestImagePictHandle(ci, pict, &rct, scPreferCropping); SCWindowSettings ws; ws.size = sizeof(SCWindowSettings); ws.windowRefKind = scWindowRefKindCarbon; ws.parentWindow = parent; err = SCSetInfo(ci, scWindowOptionsType, &ws); err = SCRequestSequenceSettings(ci); if (err == noErr) { CFDataRef data; Handle hdl; err = SCGetInfo(ci, scSettingsStateType, &hdl); if (err == noErr) { HLock(hdl); data = CFDataCreate(kCFAllocatorDefault, (unsigned char *) *hdl, GetHandleSize(hdl)); if (data) { CFPreferencesSetAppValue(CFSTR("QTVideoSetting"), data, kCFPreferencesCurrentApplication); CFRelease(data); } DisposeHandle(hdl); } } MacQTCloseVideoComponent(ci); KillPicture(pict); }