3 * ***** BEGIN GPL LICENSE BLOCK *****
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
20 * All rights reserved.
22 * The Original Code is: all of this file.
24 * Contributor(s): none yet.
26 * ***** END GPL LICENSE BLOCK *****
29 /** \file blender/quicktime/quicktime_export.h
34 #ifndef __QUICKTIME_EXPORT_H__
35 #define __QUICKTIME_EXPORT_H__
37 #if defined (_WIN32) || (__APPLE__)
42 #define QTAUDIO_FLAG_RESAMPLE_NOHQ 1
43 #define QTAUDIO_FLAG_CODEC_ISCBR 2
47 typedef struct QuicktimeCodecTypeDesc {
51 } QuicktimeCodecTypeDesc ;
53 // quicktime movie output functions
56 struct wmOperatorType;
59 int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, struct ReportList *reports); //for movie handle (BKE writeavi.c now)
60 int append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty, struct ReportList *reports);
62 void filepath_qt(char *string, struct RenderData *rd);
64 /*RNA helper functions */
65 void quicktime_verify_image_type(struct RenderData *rd); //used by RNA for defaults values init, if needed
67 int quicktime_get_num_videocodecs(void);
68 QuicktimeCodecTypeDesc* quicktime_get_videocodecType_desc(int indexValue);
69 int quicktime_rnatmpvalue_from_videocodectype(int codecType);
70 int quicktime_videocodecType_from_rnatmpvalue(int rnatmpvalue);
74 int quicktime_get_num_audiocodecs(void);
75 QuicktimeCodecTypeDesc* quicktime_get_audiocodecType_desc(int indexValue);
76 int quicktime_rnatmpvalue_from_audiocodectype(int codecType);
77 int quicktime_audiocodecType_from_rnatmpvalue(int rnatmpvalue);
81 void SCENE_OT_render_data_set_quicktime_codec(struct wmOperatorType *ot); //Operator to raise quicktime standard dialog to request codec settings
85 void free_qtcomponentdata(void);
86 void makeqtstring(struct RenderData *rd, char *string); //for playanim.c
90 #if (defined(USE_QTKIT) && defined(MAC_OS_X_VERSION_10_6) && __LP64__)
91 //Include the quicktime codec types constants that are missing in QTKitDefines.h in 10.6 / 64bit
93 kRawCodecType = 'raw ',
94 kCinepakCodecType = 'cvid',
95 kGraphicsCodecType = 'smc ',
96 kAnimationCodecType = 'rle ',
97 kVideoCodecType = 'rpza',
98 kComponentVideoCodecType = 'yuv2',
99 kJPEGCodecType = 'jpeg',
100 kMotionJPEGACodecType = 'mjpa',
101 kMotionJPEGBCodecType = 'mjpb',
102 kSGICodecType = '.SGI',
103 kPlanarRGBCodecType = '8BPS',
104 kMacPaintCodecType = 'PNTG',
105 kGIFCodecType = 'gif ',
106 kPhotoCDCodecType = 'kpcd',
107 kQuickDrawGXCodecType = 'qdgx',
108 kAVRJPEGCodecType = 'avr ',
109 kOpenDMLJPEGCodecType = 'dmb1',
110 kBMPCodecType = 'WRLE',
111 kWindowsRawCodecType = 'WRAW',
112 kVectorCodecType = 'path',
113 kQuickDrawCodecType = 'qdrw',
114 kWaterRippleCodecType = 'ripl',
115 kFireCodecType = 'fire',
116 kCloudCodecType = 'clou',
117 kH261CodecType = 'h261',
118 kH263CodecType = 'h263',
119 kDVCNTSCCodecType = 'dvc ', /* DV - NTSC and DVCPRO NTSC (available in QuickTime 6.0 or later)*/
120 /* NOTE: kDVCProNTSCCodecType is deprecated. */
121 /* Use kDVCNTSCCodecType instead -- as far as the codecs are concerned, */
122 /* the two data formats are identical.*/
123 kDVCPALCodecType = 'dvcp',
124 kDVCProPALCodecType = 'dvpp', /* available in QuickTime 6.0 or later*/
125 kDVCPro50NTSCCodecType = 'dv5n',
126 kDVCPro50PALCodecType = 'dv5p',
127 kDVCPro100NTSCCodecType = 'dv1n',
128 kDVCPro100PALCodecType = 'dv1p',
129 kDVCPROHD720pCodecType = 'dvhp',
130 kDVCPROHD1080i60CodecType = 'dvh6',
131 kDVCPROHD1080i50CodecType = 'dvh5',
132 kBaseCodecType = 'base',
133 kFLCCodecType = 'flic',
134 kTargaCodecType = 'tga ',
135 kPNGCodecType = 'png ',
136 kTIFFCodecType = 'tiff', /* NOTE: despite what might seem obvious from the two constants*/
137 /* below and their names, they really are correct. 'yuvu' really */
138 /* does mean signed, and 'yuvs' really does mean unsigned. Really. */
139 kComponentVideoSigned = 'yuvu',
140 kComponentVideoUnsigned = 'yuvs',
141 kCMYKCodecType = 'cmyk',
142 kMicrosoftVideo1CodecType = 'msvc',
143 kSorensonCodecType = 'SVQ1',
144 kSorenson3CodecType = 'SVQ3', /* available in QuickTime 5 and later*/
145 kIndeo4CodecType = 'IV41',
146 kMPEG4VisualCodecType = 'mp4v',
147 k64ARGBCodecType = 'b64a',
148 k48RGBCodecType = 'b48r',
149 k32AlphaGrayCodecType = 'b32a',
150 k16GrayCodecType = 'b16g',
151 kMpegYUV420CodecType = 'myuv',
152 kYUV420CodecType = 'y420',
153 kSorensonYUV9CodecType = 'syv9',
154 k422YpCbCr8CodecType = '2vuy', /* Component Y'CbCr 8-bit 4:2:2 */
155 k444YpCbCr8CodecType = 'v308', /* Component Y'CbCr 8-bit 4:4:4 */
156 k4444YpCbCrA8CodecType = 'v408', /* Component Y'CbCrA 8-bit 4:4:4:4 */
157 k422YpCbCr16CodecType = 'v216', /* Component Y'CbCr 10,12,14,16-bit 4:2:2*/
158 k422YpCbCr10CodecType = 'v210', /* Component Y'CbCr 10-bit 4:2:2 */
159 k444YpCbCr10CodecType = 'v410', /* Component Y'CbCr 10-bit 4:4:4 */
160 k4444YpCbCrA8RCodecType = 'r408', /* Component Y'CbCrA 8-bit 4:4:4:4, rendering format. full range alpha, zero biased yuv*/
161 kJPEG2000CodecType = 'mjp2',
162 kPixletCodecType = 'pxlt',
163 kH264CodecType = 'avc1'
167 #endif //(_WIN32) || (__APPLE__)
169 #endif // __QUICKTIME_IMP_H__