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