Blender V2.61 - r43446

quicktime_export.h

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