Blender  V2.59
quicktime_export.h
Go to the documentation of this file.
00001 /* $Id: quicktime_export.h 35235 2011-02-27 20:01:38Z jesterking $ 
00002  *
00003  * ***** BEGIN GPL LICENSE BLOCK *****
00004  *
00005  * This program is free software; you can redistribute it and/or
00006  * modify it under the terms of the GNU General Public License
00007  * as published by the Free Software Foundation; either version 2
00008  * of the License, or (at your option) any later version.
00009  *
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program; if not, write to the Free Software Foundation,
00017  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
00018  *
00019  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
00020  * All rights reserved.
00021  *
00022  * The Original Code is: all of this file.
00023  *
00024  * Contributor(s): none yet.
00025  *
00026  * ***** END GPL LICENSE BLOCK *****
00027  */
00028 
00034 #ifndef __QUICKTIME_EXPORT_H__
00035 #define __QUICKTIME_EXPORT_H__
00036 
00037 #if defined (_WIN32) || (__APPLE__)
00038 
00039 #define __AIFF__
00040 
00041 
00042 #define QTAUDIO_FLAG_RESAMPLE_NOHQ 1
00043 #define QTAUDIO_FLAG_CODEC_ISCBR 2
00044 
00045 
00046 /*Codec list*/
00047 typedef struct QuicktimeCodecTypeDesc {
00048         int codecType;
00049         int rnatmpvalue;
00050         char * codecName;
00051 } QuicktimeCodecTypeDesc ;
00052 
00053 // quicktime movie output functions
00054 struct RenderData;
00055 struct Scene;
00056 struct wmOperatorType;
00057 struct ReportList;
00058 
00059 int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, struct ReportList *reports);     //for movie handle (BKE writeavi.c now)
00060 int append_qt(struct RenderData *rd, int frame, int *pixels, int rectx, int recty, struct ReportList *reports);
00061 void end_qt(void);
00062 void filepath_qt(char *string, struct RenderData *rd);
00063 
00064 /*RNA helper functions */
00065 void quicktime_verify_image_type(struct RenderData *rd); //used by RNA for defaults values init, if needed
00066 /*Video codec type*/
00067 int quicktime_get_num_videocodecs(void);
00068 QuicktimeCodecTypeDesc* quicktime_get_videocodecType_desc(int indexValue);
00069 int quicktime_rnatmpvalue_from_videocodectype(int codecType);
00070 int quicktime_videocodecType_from_rnatmpvalue(int rnatmpvalue);
00071 
00072 #ifdef USE_QTKIT
00073 /*Audio codec type*/
00074 int quicktime_get_num_audiocodecs(void);
00075 QuicktimeCodecTypeDesc* quicktime_get_audiocodecType_desc(int indexValue);
00076 int quicktime_rnatmpvalue_from_audiocodectype(int codecType);
00077 int quicktime_audiocodecType_from_rnatmpvalue(int rnatmpvalue);
00078 #endif
00079 
00080 #ifndef USE_QTKIT
00081 void SCENE_OT_render_data_set_quicktime_codec(struct wmOperatorType *ot); //Operator to raise quicktime standard dialog to request codec settings
00082 #endif
00083 
00084 
00085 void free_qtcomponentdata(void);
00086 void makeqtstring(struct RenderData *rd, char *string);         //for playanim.c
00087 
00088 
00089 
00090 #if (defined(USE_QTKIT) && defined(MAC_OS_X_VERSION_10_6) && __LP64__)
00091 //Include the quicktime codec types constants that are missing in QTKitDefines.h in 10.6 / 64bit
00092 enum {
00093         kRawCodecType                                           = 'raw ',
00094         kCinepakCodecType                                       = 'cvid',
00095         kGraphicsCodecType                                      = 'smc ',
00096         kAnimationCodecType                             = 'rle ',
00097         kVideoCodecType                                         = 'rpza',
00098         kComponentVideoCodecType                        = 'yuv2',
00099         kJPEGCodecType                                          = 'jpeg',
00100         kMotionJPEGACodecType                           = 'mjpa',
00101         kMotionJPEGBCodecType                           = 'mjpb',
00102         kSGICodecType                                           = '.SGI',
00103         kPlanarRGBCodecType                             = '8BPS',
00104         kMacPaintCodecType                                      = 'PNTG',
00105         kGIFCodecType                                           = 'gif ',
00106         kPhotoCDCodecType                                       = 'kpcd',
00107         kQuickDrawGXCodecType                           = 'qdgx',
00108         kAVRJPEGCodecType                                       = 'avr ',
00109         kOpenDMLJPEGCodecType                           = 'dmb1',
00110         kBMPCodecType                                           = 'WRLE',
00111         kWindowsRawCodecType                            = 'WRAW',
00112         kVectorCodecType                                        = 'path',
00113         kQuickDrawCodecType                             = 'qdrw',
00114         kWaterRippleCodecType                           = 'ripl',
00115         kFireCodecType                                          = 'fire',
00116         kCloudCodecType                                         = 'clou',
00117         kH261CodecType                                          = 'h261',
00118         kH263CodecType                                          = 'h263',
00119         kDVCNTSCCodecType                                       = 'dvc ',       /* DV - NTSC and DVCPRO NTSC (available in QuickTime 6.0 or later)*/
00120         /* NOTE: kDVCProNTSCCodecType is deprecated.    */
00121         /* Use kDVCNTSCCodecType instead -- as far as the codecs are concerned, */
00122         /* the two data formats are identical.*/
00123         kDVCPALCodecType                                        = 'dvcp',
00124         kDVCProPALCodecType                             = 'dvpp',       /* available in QuickTime 6.0 or later*/
00125         kDVCPro50NTSCCodecType                          = 'dv5n',
00126         kDVCPro50PALCodecType                           = 'dv5p',
00127         kDVCPro100NTSCCodecType                         = 'dv1n',
00128         kDVCPro100PALCodecType                          = 'dv1p',
00129         kDVCPROHD720pCodecType                          = 'dvhp',
00130         kDVCPROHD1080i60CodecType                       = 'dvh6',
00131         kDVCPROHD1080i50CodecType                       = 'dvh5',
00132         kBaseCodecType                                          = 'base',
00133         kFLCCodecType                                           = 'flic',
00134         kTargaCodecType                                         = 'tga ',
00135         kPNGCodecType                                           = 'png ',
00136         kTIFFCodecType                                          = 'tiff',       /* NOTE: despite what might seem obvious from the two constants*/
00137         /* below and their names, they really are correct. 'yuvu' really */
00138         /* does mean signed, and 'yuvs' really does mean unsigned. Really. */
00139         kComponentVideoSigned                           = 'yuvu',
00140         kComponentVideoUnsigned                         = 'yuvs',
00141         kCMYKCodecType                                          = 'cmyk',
00142         kMicrosoftVideo1CodecType                       = 'msvc',
00143         kSorensonCodecType                                      = 'SVQ1',
00144         kSorenson3CodecType                             = 'SVQ3',       /* available in QuickTime 5 and later*/
00145         kIndeo4CodecType                                        = 'IV41',
00146         kMPEG4VisualCodecType                           = 'mp4v',
00147         k64ARGBCodecType                                        = 'b64a',
00148         k48RGBCodecType                                         = 'b48r',
00149         k32AlphaGrayCodecType                           = 'b32a',
00150         k16GrayCodecType                                        = 'b16g',
00151         kMpegYUV420CodecType                            = 'myuv',
00152         kYUV420CodecType                                        = 'y420',
00153         kSorensonYUV9CodecType                          = 'syv9',
00154         k422YpCbCr8CodecType                            = '2vuy',       /* Component Y'CbCr 8-bit 4:2:2 */
00155         k444YpCbCr8CodecType                            = 'v308',       /* Component Y'CbCr 8-bit 4:4:4 */
00156         k4444YpCbCrA8CodecType                          = 'v408',       /* Component Y'CbCrA 8-bit 4:4:4:4 */
00157         k422YpCbCr16CodecType                           = 'v216',       /* Component Y'CbCr 10,12,14,16-bit 4:2:2*/
00158         k422YpCbCr10CodecType                           = 'v210',       /* Component Y'CbCr 10-bit 4:2:2 */
00159         k444YpCbCr10CodecType                           = 'v410',       /* Component Y'CbCr 10-bit 4:4:4 */
00160         k4444YpCbCrA8RCodecType                         = 'r408',       /* Component Y'CbCrA 8-bit 4:4:4:4, rendering format. full range alpha, zero biased yuv*/
00161         kJPEG2000CodecType                                      = 'mjp2',
00162         kPixletCodecType                                        = 'pxlt',
00163         kH264CodecType                                          = 'avc1'
00164 };
00165 #endif
00166 
00167 #endif //(_WIN32) || (__APPLE__)
00168 
00169 #endif  // __QUICKTIME_IMP_H__