copy of docs from 2.4x for python modules that have been kept
[blender.git] / source / blender / quicktime / quicktime_export.h
1 /* $Id$ 
2  *
3  * ***** BEGIN GPL LICENSE BLOCK *****
4  *
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.
9  *
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.
14  *
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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18  *
19  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
20  * All rights reserved.
21  *
22  * The Original Code is: all of this file.
23  *
24  * Contributor(s): none yet.
25  *
26  * ***** END GPL LICENSE BLOCK *****
27  */
28
29 #ifndef __QUICKTIME_EXPORT_H__
30 #define __QUICKTIME_EXPORT_H__
31
32 #if defined (_WIN32) || (__APPLE__)
33
34 #define __AIFF__
35
36
37 /*Codec list*/
38 typedef struct QuicktimeCodecTypeDesc {
39         int codecType;
40         int rnatmpvalue;
41         char * codecName;
42 } QuicktimeCodecTypeDesc ;
43
44 // quicktime movie output functions
45 struct RenderData;
46 struct Scene;
47 struct wmOperatorType;
48 struct ReportList;
49
50 int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, struct ReportList *reports);     //for movie handle (BKE writeavi.c now)
51 int append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty, struct ReportList *reports);
52 void end_qt(void);
53 void filepath_qt(char *string, struct RenderData *rd);
54
55 /*RNA helper functions */
56 void quicktime_verify_image_type(struct RenderData *rd); //used by RNA for defaults values init, if needed
57 int quicktime_get_num_codecs();
58 QuicktimeCodecTypeDesc* quicktime_get_codecType_desc(int indexValue);
59 int quicktime_rnatmpvalue_from_codectype(int codecType);
60 int quicktime_codecType_from_rnatmpvalue(int rnatmpvalue);
61
62 #ifndef USE_QTKIT
63 void SCENE_OT_render_data_set_quicktime_codec(struct wmOperatorType *ot); //Operator to raise quicktime standard dialog to request codec settings
64 #endif
65
66
67 void free_qtcomponentdata(void);
68 void makeqtstring(struct RenderData *rd, char *string);         //for playanim.c
69
70
71
72 #if (defined(USE_QTKIT) && defined(MAC_OS_X_VERSION_10_6) && __LP64__)
73 //Include the quicktime codec types constants that are missing in QTKitDefines.h in 10.6 / 64bit
74 enum {
75         kRawCodecType                                           = 'raw ',
76         kCinepakCodecType                                       = 'cvid',
77         kGraphicsCodecType                                      = 'smc ',
78         kAnimationCodecType                             = 'rle ',
79         kVideoCodecType                                         = 'rpza',
80         kComponentVideoCodecType                        = 'yuv2',
81         kJPEGCodecType                                          = 'jpeg',
82         kMotionJPEGACodecType                           = 'mjpa',
83         kMotionJPEGBCodecType                           = 'mjpb',
84         kSGICodecType                                           = '.SGI',
85         kPlanarRGBCodecType                             = '8BPS',
86         kMacPaintCodecType                                      = 'PNTG',
87         kGIFCodecType                                           = 'gif ',
88         kPhotoCDCodecType                                       = 'kpcd',
89         kQuickDrawGXCodecType                           = 'qdgx',
90         kAVRJPEGCodecType                                       = 'avr ',
91         kOpenDMLJPEGCodecType                           = 'dmb1',
92         kBMPCodecType                                           = 'WRLE',
93         kWindowsRawCodecType                            = 'WRAW',
94         kVectorCodecType                                        = 'path',
95         kQuickDrawCodecType                             = 'qdrw',
96         kWaterRippleCodecType                           = 'ripl',
97         kFireCodecType                                          = 'fire',
98         kCloudCodecType                                         = 'clou',
99         kH261CodecType                                          = 'h261',
100         kH263CodecType                                          = 'h263',
101         kDVCNTSCCodecType                                       = 'dvc ',       /* DV - NTSC and DVCPRO NTSC (available in QuickTime 6.0 or later)*/
102         /* NOTE: kDVCProNTSCCodecType is deprecated.    */
103         /* Use kDVCNTSCCodecType instead -- as far as the codecs are concerned, */
104         /* the two data formats are identical.*/
105         kDVCPALCodecType                                        = 'dvcp',
106         kDVCProPALCodecType                             = 'dvpp',       /* available in QuickTime 6.0 or later*/
107         kDVCPro50NTSCCodecType                          = 'dv5n',
108         kDVCPro50PALCodecType                           = 'dv5p',
109         kDVCPro100NTSCCodecType                         = 'dv1n',
110         kDVCPro100PALCodecType                          = 'dv1p',
111         kDVCPROHD720pCodecType                          = 'dvhp',
112         kDVCPROHD1080i60CodecType                       = 'dvh6',
113         kDVCPROHD1080i50CodecType                       = 'dvh5',
114         kBaseCodecType                                          = 'base',
115         kFLCCodecType                                           = 'flic',
116         kTargaCodecType                                         = 'tga ',
117         kPNGCodecType                                           = 'png ',
118         kTIFFCodecType                                          = 'tiff',       /* NOTE: despite what might seem obvious from the two constants*/
119         /* below and their names, they really are correct. 'yuvu' really */
120         /* does mean signed, and 'yuvs' really does mean unsigned. Really. */
121         kComponentVideoSigned                           = 'yuvu',
122         kComponentVideoUnsigned                         = 'yuvs',
123         kCMYKCodecType                                          = 'cmyk',
124         kMicrosoftVideo1CodecType                       = 'msvc',
125         kSorensonCodecType                                      = 'SVQ1',
126         kSorenson3CodecType                             = 'SVQ3',       /* available in QuickTime 5 and later*/
127         kIndeo4CodecType                                        = 'IV41',
128         kMPEG4VisualCodecType                           = 'mp4v',
129         k64ARGBCodecType                                        = 'b64a',
130         k48RGBCodecType                                         = 'b48r',
131         k32AlphaGrayCodecType                           = 'b32a',
132         k16GrayCodecType                                        = 'b16g',
133         kMpegYUV420CodecType                            = 'myuv',
134         kYUV420CodecType                                        = 'y420',
135         kSorensonYUV9CodecType                          = 'syv9',
136         k422YpCbCr8CodecType                            = '2vuy',       /* Component Y'CbCr 8-bit 4:2:2 */
137         k444YpCbCr8CodecType                            = 'v308',       /* Component Y'CbCr 8-bit 4:4:4 */
138         k4444YpCbCrA8CodecType                          = 'v408',       /* Component Y'CbCrA 8-bit 4:4:4:4 */
139         k422YpCbCr16CodecType                           = 'v216',       /* Component Y'CbCr 10,12,14,16-bit 4:2:2*/
140         k422YpCbCr10CodecType                           = 'v210',       /* Component Y'CbCr 10-bit 4:2:2 */
141         k444YpCbCr10CodecType                           = 'v410',       /* Component Y'CbCr 10-bit 4:4:4 */
142         k4444YpCbCrA8RCodecType                         = 'r408',       /* Component Y'CbCrA 8-bit 4:4:4:4, rendering format. full range alpha, zero biased yuv*/
143         kJPEG2000CodecType                                      = 'mjp2',
144         kPixletCodecType                                        = 'pxlt',
145         kH264CodecType                                          = 'avc1'
146 };
147 #endif
148
149 #endif //(_WIN32) || (__APPLE__)
150
151 #endif  // __QUICKTIME_IMP_H__