ÁQuickTime ComponentsContentsFigures and ListingsAbout This BookFormat of a Typical ChapterConventions Used in This BookSpecial FontsTypes of NotesDevelopment EnvironmentFor More InformationOverviewProviding Movie Playback2Figure 1-1 QuickTime components for movie playbackCapturing Sequences of Images1Figure 1-2 QuickTime components for image capture+Compressing and Decompressing Still Images<Figure 1-3 QuickTime components for compressing still images>Figure 1-4 QuickTime components for decompressing still images,Converting Data for Use in QuickTime Movies%Creating Previews of QuickTime MoviesMovie Controller Components"About Movie Controller Components"The Elements of a Movie Controller(Figure 2-1 The standard movie controllerBadgesFigure 2-2 A movie with a badgeSpatial PropertiesEFigure 2-3 Movie controller spatial elements for attached controllersEFigure 2-4 Movie controller spatial elements for detached controllersTFigure 2-5 Clipping the controller window region with the controller clipping region"Using Movie Controller ComponentsPlaying Movies=Listing 2-1 Playing a movie with a movie controller componentCustomizing Movie Controllers4Listing 2-2 Using a movie controller filter function&Movie Controller Components ReferenceMovie Controller ActionsMovie Controller Functions#Associating Movies With ControllersNewMovieControllerMCNewAttachedController
MCSetMovie
MCGetMovieDisposeMovieControllerManaging Controller AttributesMCPositionControllerMCSetControllerAttachedMCIsControllerAttachedMCSetVisibleMCGetVisibleMCDrawBadgeMCSetControllerBoundsRectMCGetControllerBoundsRectMCGetControllerBoundsRgnMCGetWindowRgn MCSetClip MCGetClipMCSetControllerPortMCGetControllerPortHandling Movie EventsMCIsPlayerEvent
MCDoActionMCSetActionFilterWithRefConMCGetControllerInfoMCMovieChangedEditing MoviesMCEnableEditingMCIsEditingEnabledMCCutMCCopyMCPasteMCClearMCUndoMCSetUpEditMenuMCGetMenuString)Getting and Setting Movie Controller TimeMCSetDurationMCGetCurrentTimeCustomizing Event Processing
MCActivateMCClickMCDrawMCIdleMCKeyApplication-Defined FunctionMyPlayerFilterWithRefCon'Summary of Movie Controller Components,Standard Image-Compression Dialog Components3About Standard Image-Compression Dialog Components2Figure 3-1 Dialog box for single-frame compression4Figure 3-2 Dialog box for image-sequence compression3Using Standard Image-Compression Dialog Components@Figure 3-3 Elements of the standard image-compression dialog boxEOpening a Connection to a Standard Image-Compression Dialog Component%Displaying the Dialog Box to the UserSetting Default ParametersDesignating a Test Image#Listing 3-1 Specifying a test image3Displaying the Dialog Box and Retrieving ParametersJListing 3-2 Displaying the dialog box to the user and compressing an imageExtending the Basic Dialog Box6Listing 3-3 Defining a custom button in the dialog box"Listing 3-4 A sample hook function,Listing 3-5 Positioning related dialog boxes7Creating a Standard Image-Compression Dialog Component7Standard Image-Compression Dialog Components ReferenceRequest Types!The Spatial Settings Request Type"The Temporal Settings Request Type#The Data-Rate Settings Request Type%The Color Table Settings Request Type"The Progress Function Request Type#The Extended Functions Request Type!The Preference Flags Request TypeThe Settings State Request TypeThe Sequence ID Request Type The Window Position Request TypeThe Control Flags Request Type5Standard Image-Compression Dialog Component Functions3Getting Default Settings for an Image or a SequenceSCDefaultPixMapSettingsSCDefaultPictHandleSettingsSCDefaultPictFileSettings4Displaying the Standard Image-Compression Dialog BoxSCRequestImageSettingsSCRequestSequenceSettingsCompressing Still ImagesSCCompressImageSCCompressPictureSCCompressPictureFileCompressing Image SequencesSCCompressSequenceBeginSCCompressSequenceFrameSCCompressSequenceEnd'Working With Image or Sequence Settings SCGetInfo SCSetInfoSpecifying a Test ImageSCSetTestImagePictHandleSCSetTestImagePictFileSCSetTestImagePixMap'Positioning Dialog Boxes and RectanglesSCPositionRectSCPositionDialogSCGetBestDeviceRectUtility FunctionSCNewGWorldApplication-Defined FunctionMyHook8Summary of Standard Image-Compression Dialog ComponentsImage Compressor Components!About Image Compressor ComponentsBanding and Extending ImagesSpooling of Compressed DataData Loading-Figure 4-1 Image bands and their measurementsData Unloading2Compressing or Decompressing Images AsynchronouslyProgress Functions"Using Image Compressor ComponentsPerforming Image CompressionChoosing a Compressor7Listing 4-1 Preparing for simple compression operations)Compressing a Horizontal Band of an ImageJListing 4-2 Performing simple compression on a horizontal band of an imageDecompressing an ImageChoosing a Decompressor.Listing 4-3 Preparing for simple decompression+Decompressing a Horizontal Band of an Image0Listing 4-4 Performing a decompression operation&Image Compressor Components Reference Constants'Image Compressor Component Capabilities#Format of Compressed Data and Files
Data Types#The Compressor Capability Structure$The Compression Parameters Structure&The Decompression Parameters Structure FunctionsDirect FunctionsCDGetCodecInfoCDGetMaxCompressionSizeCDGetCompressionTimeCDGetSimilarityCDGetCompressedImageSizeCDTrimImageCDCodecBusyIndirect FunctionsCDPreCompressCDBandCompressCDPreDecompressCDBandDecompress+Image Compression Manager Utility FunctionsSetImageDescriptionExtensionGetImageDescriptionExtensionRemoveImageDescriptionExtension"CountImageDescriptionExtensionType$GetNextImageDescriptionExtensionType'Summary of Image Compressor ComponentsSequence Grabber Components!About Sequence Grabber ComponentseFigure 5-1 Relationships among your application, a sequence grabber component, and channel components!Using Sequence Grabber Components&Previewing and Recording Captured Data
Previewing Recording8Playing Captured Data and Saving It in a QuickTime Movie)Initializing a Sequence Grabber Component5Listing 5-1 Initializing a sequence grabber component,Creating a Sound Channel and a Video Channel8Listing 5-2 Creating a sound channel and a video channel0Previewing Sound and Video Sequences in a Window<Listing 5-3 Previewing sound and video sequences in a windowCapturing Sound and Video Data%Listing 5-4 Capturing sound and video)Setting Up the Video Bottleneck Functions5Listing 5-5 Setting up the video bottleneck functions4Drawing Information Over Video Frames During Capture@Listing 5-6 Drawing information over video frames during capture&Sequence Grabber Components Reference
Data Types%The Compression Information StructureThe Frame Information Structure$Sequence Grabber Component Functions'Configuring Sequence Grabber ComponentsSGInitializeSGSetDataOutputSGGetDataOutputSGSetGWorldSGGetGWorldSGNewChannelSGNewChannelFromComponentSGGetIndChannelSGDisposeChannelSGSetDataProcSGGetAlignmentProc'Controlling Sequence Grabber ComponentsSGStartPreviewSGStartRecordSGIdleSGUpdateSGStopSGPause
SGGetPause SGPrepare SGRelease
SGGetMovieSGGetLastMovieResID
SGGrabPict&Working With Sequence Grabber SettingsSGSettingsDialogSGGetSettingsSGSetSettingsSGGetChannelSettingsSGSetChannelSettings-Working With Sequence Grabber CharacteristicsSGSetMaximumRecordTimeSGGetMaximumRecordTimeSGGetStorageSpaceRemainingSGGetTimeRemainingSGGetTimeBase
SGSetFlags
SGGetFlags$Working With Channel CharacteristicsSGSetChannelUsageSGGetChannelUsageSGGetChannelInfoSGSetChannelPlayFlagsSGGetChannelPlayFlagsSGSetChannelMaxFramesSGGetChannelMaxFramesSGSetChannelBoundsSGGetChannelBoundsSGSetChannelVolumeSGGetChannelVolumeSGSetChannelRefConSGGetChannelSampleDescriptionSGGetChannelTimeScaleSGSetChannelClipSGGetChannelClipSGSetChannelMatrixSGGetChannelMatrixWorking With Channel DevicesSGGetChannelDeviceListSGDisposeDeviceListSGAppendDeviceListToMenuSGSetChannelDeviceWorking With Video ChannelsSGGetSrcVideoBoundsSGSetVideoRectSGGetVideoRectSGSetVideoCompressorTypeSGGetVideoCompressorTypeSGSetVideoCompressorSGGetVideoCompressorSGSetVideoDigitizerComponentSGGetVideoDigitizerComponentSGVideoDigitizerChangedSGSetCompressBuffer9Figure 5-2 The effect of the SGSetCompressBuffer functionSGGetCompressBufferSGSetFrameRateSGGetFrameRateSGSetUseScreenBufferSGGetUseScreenBufferWorking With Sound ChannelsSGSetSoundInputDriverSGGetSoundInputDriverSGSoundInputDriverChangedSGSetSoundRecordChunkSizeSGGetSoundRecordChunkSizeSGSetSoundInputRateSGGetSoundInputRateSGSetSoundInputParametersSGGetSoundInputParameters Video Channel Callback FunctionsSGSetVideoBottlenecksSGGetVideoBottlenecks6Utility Functions for Video Channel Callback FunctionsSGGetBufferInfoSGGrabFrameSGGrabFrameCompleteSGDisplayFrameSGCompressFrameSGCompressFrameComplete
SGAddFrameSGTransferFrameForCompressSGGrabCompressCompleteSGDisplayCompressApplication-Defined FunctionsMyGrabFunctionMyGrabCompleteFunctionMyDisplayFunctionMyCompressFunctionMyCompressCompleteFunctionMyAddFrameFunctionMyTransferFrameFunctionMyGrabCompressCompleteFunctionMyDisplayCompressFunctionMyDataFunctionMyModalFilter'Summary of Sequence Grabber Components#Sequence Grabber Channel Components)About Sequence Grabber Channel Components`Figure 6-1 Relationships of an application, a sequence grabber component, and channel components,Creating Sequence Grabber Channel Components!Component Type and Subtype ValuesRequired FunctionsComponent Manager Request Codes+A Sample Sequence Grabber Channel Component-Implementing the Required Component FunctionsKListing 6-1 Setting up global variables and implementing required functions3Initializing the Sequence Grabber Channel Component?Listing 6-2 Initializing the sequence grabber channel component(Setting and Retrieving the Channel State?Listing 6-3 Determining usage parameters and getting usage dataManaging Spatial Properties,Listing 6-4 Managing spatial characteristics/Controlling Previewing and Recording Operations;Listing 6-5 Controlling previewing and recording operationsManaging Channel Devices:Listing 6-6 Coordinating devices for the channel component*Utility Functions for Recording Image Data Listing 6-7 Recording image data"Providing Media-Specific Functions"Listing 6-8 Showing the tick count Managing the Settings Dialog BoxRListing 6-9 Including a tick count checkbox in a dialog box in the panel component9Displaying Channel Information in the Settings Dialog Box(Listing 6-10 Displaying channel settings)Using Sequence Grabber Channel Components
Previewing RecordingWorking With Callback Functions5Using Callback Functions for Video Channel ComponentsGUsing Utility Functions for Video Channel Component Callback Functions -Sequence Grabber Channel Components Reference Functions/Configuring Sequence Grabber Channel ComponentsSGInitChannelSGSetGWorld/Controlling Sequence Grabber Channel ComponentsSGStartPreviewSGStartRecordSGIdleSGUpdateSGStopSGWriteSamplesSGPause SGPrepare SGRelease2Configuration Functions for All Channel ComponentsSGSetChannelUsageSGGetChannelUsageSGGetChannelInfoSGSetChannelPlayFlagsSGGetChannelPlayFlagsSGSetChannelMaxFramesSGGetChannelMaxFramesSGSetChannelRefConSGGetDataRateSGGetChannelSampleDescriptionSGGetChannelTimeScaleSGSetChannelClipSGGetChannelClipSGSetChannelMatrixSGGetChannelMatrixWorking With Channel DevicesSGGetChannelDeviceListSGSetChannelDevice4Configuration Functions for Video Channel ComponentsSGSetChannelBoundsSGGetChannelBoundsSGGetSrcVideoBoundsSGSetVideoRectSGGetVideoRectSGSetVideoCompressorTypeSGGetVideoCompressorTypeSGSetVideoCompressorSGGetVideoCompressorSGSetVideoDigitizerComponentSGGetVideoDigitizerComponentSGVideoDigitizerChangedSGSetCompressBufferSGGetCompressBufferSGSetFrameRateSGGetFrameRateSGSetUseScreenBufferSGGetUseScreenBufferSGAlignChannelRect4Configuration Functions for Sound Channel ComponentsSGSetChannelVolumeSGGetChannelVolumeSGSetSoundInputDriverSGGetSoundInputDriverSGSoundInputDriverChangedSGSetSoundRecordChunkSizeSGGetSoundRecordChunkSizeSGSetSoundInputRateSGGetSoundInputRateSGSetSoundInputParametersSGGetSoundInputParameters9Utility Functions for Sequence Grabber Channel ComponentsSGAddMovieDataSGWriteMovieDataSGAddFrameReferenceSGGetNextFrameReferenceSGSortDeviceListSGChangedSource/Summary of Sequence Grabber Channel Components!Sequence Grabber Panel Components(About Sequence Grabber Panel ComponentsFFigure 7-1 Sequence grabbers, channel components, and panel components8Figure 7-2 A sample sequence grabber settings dialog box*Creating Sequence Grabber Panel Components-Implementing the Required Component Functions/Listing 7-1 Implementing the required functionsManaging the Dialog Box,Listing 7-2 Managing the settings dialog boxManaging Your Panel’s Settings7Listing 7-3 Managing the settings for a panel component+Sequence Grabber Panel Components Reference5Component Flags for Sequence Grabber Panel Components FunctionsManaging Your Panel ComponentSGPanelSetGrabberSGPanelCanRunSGPanelSetResFileSGPanelGetDITLSGPanelInstallSGPanelRemoveProcessing Your Panel’s EventsSGPanelItemSGPanelEventSGPanelValidateInputManaging Your Panel’s SettingsSGPanelGetSettingsSGPanelSetSettings-Summary of Sequence Grabber Panel ComponentsVideo Digitizer Components About Video Digitizer Components+Figure 8-1 Basic tasks of a video digitizer$Types of Video Digitizer ComponentsSource Coordinate Systems%Figure 8-2 Video digitizer rectangles!Using Video Digitizer ComponentsSpecifying Destinations#Starting and Stopping the DigitizerMultiple Buffering+Obtaining an Accurate Time of Frame Capture#Creating Video Digitizer Components!Component Type and Subtype ValuesRequired FunctionsOptional Functions"Frame Grabbers Without Playthrough(Frame Grabbers With Hardware Playthrough#Key Color and Alpha Channel DevicesCompressed Source Devices%Video Digitizer Components Reference ConstantsCapability FlagsCurrent FlagsData Types#The Digitizer Information StructureThe Buffer List StructureThe Buffer Structure#Video Digitizer Component Functions4Getting Information About Video Digitizer ComponentsVDGetDigitizerInfoVDGetCurrentFlagsSetting Source CharacteristicsVDGetMaxSrcRectVDGetActiveSrcRectVDGetVBlankRectVDSetDigitizerRectVDGetDigitizerRectSelecting an Input SourceVDGetNumberOfInputs
VDSetInput
VDGetInputVDGetInputFormatVDSetInputStandardSetting Video DestinationsVDSetPlayThruDestinationVDPreflightDestinationVDGetPlayThruDestinationVDSetPlayThruGlobalRectVDPreflightGlobalRectVDGetMaxAuxBuffer%Controlling Compressed Source DevicesVDGetCompressionTypesVDSetCompressionVDSetCompressionOnOffVDCompressOneFrameAsyncVDCompressDoneVDReleaseCompressBufferVDGetImageDescriptionVDResetCompressSequenceVDSetTimeBaseControlling DigitizationVDSetPlayThruOnOffVDGrabOneFrameVDSetupBuffersVDReleaseAsyncBuffersVDGrabOneFrameAsyncVDDoneVDSetFrameRateVDGetDataRateControlling ColorVDUseThisCLUTVDGetCLUTInUseVDSetInputColorSpaceModeVDGetInputColorSpaceModeVDGetDMADepthsControlling Analog VideoVDGetVideoDefaultsVDSetBlackLevelValueVDGetBlackLevelValueVDSetWhiteLevelValueVDGetWhiteLevelValueVDSetHueVDGetHueVDSetSaturationVDGetSaturationVDSetBrightnessVDGetBrightnessVDSetContrastVDGetContrastVDSetSharpnessVDGetSharpnessVDSetInputGammaRecordVDGetInputGammaRecordVDSetInputGammaValueVDGetInputGammaValueSelectively Displaying VideoVDSetKeyColorVDGetKeyColorVDSetKeyColorRangeVDAddKeyColorVDGetKeyColorRangeVDGetNextKeyColorVDSetMasterBlendLevelVDGetMaskandValueVDGetMaskPixMapClippingVDSetClipRgnVDClearClipRgnVDSetClipStateVDGetClipStateUtility FunctionsVDSetPLLFilterTypeVDGetPLLFilterTypeVDSetFieldPreference VDGetFieldPreferenceVDSetDigitizerUserInterruptVDGetSoundInputDriverVDGetPreferredTimeScaleApplication-Defined Function&Summary of Video Digitizer ComponentsMovie Data Exchange Components$About Movie Data Exchange ComponentsPFigure 9-1 The Movie Toolbox, movie data import components, and your applicationPFigure 9-2 The Movie Toolbox, movie data export components, and your application$Using Movie Data Exchange Components"Importing and Exporting Movie Data+Configuring a Movie Data Exchange Component0Finding a Specific Movie Data Exchange Component(Creating a Movie Data Exchange ComponentA Sample Movie Import Component4Implementing the Required Import Component Functions6Listing 9-1 Implementing the required import functionsImporting a Scrapbook File&Listing 9-2 Importing a Scrapbook fileA Sample Movie Export Component4Implementing the Required Export Component Functions6Listing 9-3 Implementing the required export functionsExporting Data to a PICS File:Listing 9-4 Exporting a frame of movie data to a PICS file)Movie Data Exchange Components ReferenceImporting Movie DataMovieImportHandleMovieImportFile(Configuring Movie Data Import ComponentsMovieImportSetDurationMovieImportSetSampleDurationMovieImportSetSampleDescriptionMovieImportSetMediaFileMovieImportSetDimensionsMovieImportSetChunkSizeMovieImportSetProgressProcMovieImportSetAuxiliaryDataMovieImportSetFromScrapMovieImportDoUserDialogExporting Movie DataMovieExportToHandleMovieExportToFile(Configuring Movie Data Export ComponentsMovieExportSetProgressProcMovieExportGetAuxiliaryDataMovieExportDoUserDialog*Summary of Movie Data Exchange Components Derived Media Handler Components'About Derived Media Handler ComponentsMedia Handler ComponentsNFigure 10-1 Logical relationships between the Movie Toolbox and media handlers Derived Media Handler Components\Figure 10-2 Relationship between the base media handler component and derived media handlers*Creating a Derived Media Handler Component*Component Flags for Derived Media HandlersRequest Processing(A Sample Derived Media Handler Component-Implementing the Required Component Functions0Listing 10-1 Implementing the required functions.Initializing a Derived Media Handler Component1Listing 10-2 Initializing a derived media handlerDrawing the Media Sample%Listing 10-3 Drawing the media sample+Derived Media Handler Components Reference Data Type Functions%Managing Your Media Handler ComponentMediaInitialize MediaIdleMediaGGetStatusGeneral Data ManagementMediaPutMediaInfoMediaGetMediaInfoMediaSetActiveMediaPrerollMediaSetRateMediaTrackEditedMediaSampleDescriptionChangedMediaHasCharacteristicMediaSetMediaTimeScaleMediaSetMovieTimeScaleGraphics Data ManagementMediaSetGWorldMediaSetDimensionsMediaSetMatrixMediaSetClipMediaGetTrackOpaqueMediaGetNextBoundsChangeMediaGetSrcRgnSound Data ManagementMediaGSetVolume#Base Media Handler Utility FunctionMediaSetHandlerCapabilities,Summary of Derived Media Handler ComponentsClock ComponentsAbout Clock ComponentsuFigure 11-1 Relationships of an application, the movie controller component, the Movie Toolbox, and a clock componentClock Components Reference%Component Capability Flags for ClocksComponent Types for Clocks Data TypeClock Component FunctionsGetting the Current TimeClockGetTimeUsing the Callback FunctionsClockNewCallBackClockCallMeWhenClockCancelCallBackClockDisposeCallBackManaging the TimeClockTimeChangedClockRateChangedClockStartStopChangedClockSetTimeBase%Movie Toolbox Clock Support FunctionsAddCallBackToTimeBaseExecuteCallBackRemoveCallBackFromTimeBaseGetFirstCallBackGetNextCallBackSummary of Clock ComponentsPreview ComponentsAbout Preview ComponentsObtaining Preview DatacFigure 12-1 Relationships of a preview component, the Image Compression Manager, and an applicationStoring Preview Data in FilesUsing the Preview DataCreating Preview Components)Implementing Required Component FunctionsBListing 12-1 Implementing the required Component Manager functions"Displaying Image Data as a PreviewKListing 12-2 Converting data into a form that can be displayed as a previewPreview Components Reference FunctionsDisplaying PreviewsPreviewShowDataHandling EventsPreviewEventCreating PreviewsPreviewMakePreviewPreviewMakePreviewReference ResourcesThe Preview Resource!Listing 12-3 The preview resource#The Preview Resource Item Structure0Listing 12-4 The preview resource item structureSummary of Preview ComponentsGlossaryIndex