4 * Information bit definitions
for the
'thng' and other TheoraEncoder
8 * Copyright (c
) 2006 Arek Korbik
10 * This file is part of XiphQT
, the Xiph QuickTime Components
.
12 * XiphQT is free software
; you can redistribute it and
/or
13 * modify it under the terms of the GNU Lesser General Public
14 * License as published by the Free Software Foundation
; either
15 * version
2.1 of the License
, or (at your option
) any later version
.
17 * XiphQT is distributed
in the hope that it will be useful
,
18 * but WITHOUT ANY WARRANTY
; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
. See the GNU
20 * Lesser General Public License
for more details
.
22 * You should have received a copy of the GNU Lesser General Public
23 * License along with XiphQT
; if not
, write to the Free Software
24 * Foundation
, Inc
., 51 Franklin St
, Fifth Floor
, Boston
, MA
02110-1301 USA
32 #define thng_RezTemplateVersion 1
34 #define cfrg_RezTemplateVersion 1
36 #ifdef TARGET_REZ_MAC_PPC
37 #include <CoreServices/CoreServices.r>
38 #include <QuickTime/QuickTime.r>
39 #include <QuickTime/QuickTimeComponents.r>
41 #include "ConditionalMacros.r"
42 #include "CoreServices.r"
43 #include "QuickTimeComponents.r"
44 #include "ImageCodec.r"
45 #endif /* TARGET_REZ_MAC_PPC */
47 #include "TheoraEncoder.h"
50 /* How do I do this properly
... anybody?
*/
51 #if defined(BUILD_UNIVERSAL)
52 #define TARGET_CPU_PPC 1
53 #define TARGET_CPU_X86 1
58 #if TARGET_CPU_PPC && TARGET_CPU_X86
59 #define TARGET_REZ_FAT_COMPONENTS 1
60 #define Target_PlatformType platformPowerPCNativeEntryPoint
61 #define Target_SecondPlatformType platformIA32NativeEntryPoint
63 #define Target_PlatformType platformIA32NativeEntryPoint
65 #define Target_PlatformType platformPowerPCNativeEntryPoint
67 #define theoraThreadSafe cmpThreadSafe
69 #define Target_PlatformType platformWin32
70 #define theoraThreadSafe 0
72 #error get a real platform type
73 #endif /* TARGET_OS_MAC */
75 #if !defined(TARGET_REZ_FAT_COMPONENTS)
76 #define TARGET_REZ_FAT_COMPONENTS 0
80 #define kTheoraEncoderFlags (codecInfoDoes32 | codecInfoDoesTemporal | codecInfoDoesRateConstrain | theoraThreadSafe)
82 #define kTheoraFormatFlags (codecInfoDepth24)
84 resource
'cdci' (kTheoraEncoderResID
) {
85 kTheoraEncoderFormatName
, // Type
88 kXiphComponentsManufacturer
, // Manufacturer
89 0, // Decompression Flags
90 kTheoraEncoderFlags
, // Compression Flags
91 kTheoraFormatFlags
, // Format Flags
92 128, // Compression Accuracy
93 0, //128, // Decomression Accuracy
94 128, // Compression Speed
95 0, //128, // Decompression Speed
96 128, // Compression Level
100 0, // Decompression Pipeline Latency
101 0, // Compression Pipeline Latency
105 resource
'thng' (kTheoraEncoderResID
) {
106 compressorComponentType
, kVideoFormatXiphTheora
,
107 kXiphComponentsManufacturer
, // Manufacturer(??
)
109 'STR ', kTheoraEncoderNameStringResID
,
110 'STR ', kTheoraEncoderInfoStringResID
,
112 kTheora_imco_Version
,
113 componentDoAutoVersion
| componentHasMultiplePlatforms
, 0,
115 // component platform information
120 #if TARGET_REZ_FAT_COMPONENTS
124 Target_SecondPlatformType
,
130 resource
'STR ' (kTheoraEncoderNameStringResID
) {
131 "Xiph Theora Encoder"
134 // Component Information
135 resource
'STR ' (kTheoraEncoderInfoStringResID
) {
136 "Compresses into the Xiph Theora format."
139 resource
'dlle' (kTheoraEncoderResID
) {
140 "Theora_ImageEncoderComponentDispatch"
144 /* ========= Settings dialog resources
========= */
146 resource
'DITL' (kTheoraEncoderDITLResID
, "Compressor Options", purgeable
) {
148 //{0, 0, TEXT_HEIGHT
, 100}, CheckBox
{ enabled
, "Checkbox" },
149 //{TEXT_HEIGHT
+ INTER_CONTROL_SPACING
, 0, TEXT_HEIGHT
+ INTER_CONTROL_SPACING
+ POPUP_CONTROL_HEIGHT
, 165}, Control
{ enabled
, kTheoraEncoderPopupCNTLResID
},
150 //{0, 0, TEXT_HEIGHT
, 100}, Control
{ enabled
, kTheoraEncoderPopupCNTLResID
},
151 //{TEXT_HEIGHT
+ INTER_CONTROL_SPACING
, 0, TEXT_HEIGHT
+ INTER_CONTROL_SPACING
+ POPUP_CONTROL_HEIGHT
, 165}, CheckBox
{ enabled
, "Checkbox" },
152 {0, 0, POPUP_CONTROL_HEIGHT
, 205}, Control
{ enabled
, kTheoraEncoderPopupCNTLResID
},
153 {POPUP_CONTROL_HEIGHT
+ INTER_CONTROL_SPACING
, 100, TEXT_HEIGHT
+ INTER_CONTROL_SPACING
+ POPUP_CONTROL_HEIGHT
, 200}, CheckBox
{ enabled
, "Optimize" },
157 resource
'CNTL' (kTheoraEncoderPopupCNTLResID
, "Compressor Popup") {
162 100, /* title width
*/
163 kTheoraEncoderPopupMENUResID
,
164 //popupMenuCDEFProc
+ popupFixedWidth
,
165 popupMenuCDEFProc
+ popupFixedWidth
,
170 resource
'MENU' (kTheoraEncoderPopupMENUResID
, "Compressor Popup") {
171 kTheoraEncoderPopupMENUResID
,
173 allEnabled
, /* Enable flags
*/
176 { /* array
: 8 elements
*/
178 "Low", noIcon
, noKey
, noMark
, plain
,
180 "Medium", noIcon
, noKey
, noMark
, plain
,
182 "High", noIcon
, noKey
, noMark
, plain
,