2 * ***** BEGIN GPL LICENSE BLOCK *****
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software Foundation,
16 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
19 * All rights reserved.
21 * The Original Code is: all of this file.
23 * Contributor(s): none yet.
25 * ***** END GPL LICENSE BLOCK *****
28 /** \file blender/quicktime/quicktime_export.h
33 #ifndef __QUICKTIME_EXPORT_H__
34 #define __QUICKTIME_EXPORT_H__
36 #if defined (_WIN32) || (__APPLE__)
41 #define QTAUDIO_FLAG_RESAMPLE_NOHQ 1
42 #define QTAUDIO_FLAG_CODEC_ISCBR 2
46 typedef struct QuicktimeCodecTypeDesc {
50 } QuicktimeCodecTypeDesc;
52 // quicktime movie output functions
53 struct ImageFormatData;
57 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 start_frame, 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, struct ImageFormatData *imf); //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__