forked from bartvdbraak/blender
170 lines
6.1 KiB
C
170 lines
6.1 KiB
C
/*
|
|
* ***** BEGIN GPL LICENSE BLOCK *****
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
|
|
* All rights reserved.
|
|
*
|
|
* The Original Code is: all of this file.
|
|
*
|
|
* Contributor(s): none yet.
|
|
*
|
|
* ***** END GPL LICENSE BLOCK *****
|
|
*/
|
|
|
|
/** \file blender/quicktime/quicktime_export.h
|
|
* \ingroup quicktime
|
|
*/
|
|
|
|
|
|
#ifndef __QUICKTIME_EXPORT_H__
|
|
#define __QUICKTIME_EXPORT_H__
|
|
|
|
#if defined (_WIN32) || (__APPLE__)
|
|
|
|
#define __AIFF__
|
|
|
|
|
|
#define QTAUDIO_FLAG_RESAMPLE_NOHQ 1
|
|
#define QTAUDIO_FLAG_CODEC_ISCBR 2
|
|
|
|
|
|
/*Codec list*/
|
|
typedef struct QuicktimeCodecTypeDesc {
|
|
int codecType;
|
|
int rnatmpvalue;
|
|
char * codecName;
|
|
} QuicktimeCodecTypeDesc;
|
|
|
|
// quicktime movie output functions
|
|
struct ImageFormatData;
|
|
struct RenderData;
|
|
struct ReportList;
|
|
struct Scene;
|
|
struct wmOperatorType;
|
|
|
|
int start_qt(struct Scene *scene, struct RenderData *rd, int rectx, int recty, struct ReportList *reports); //for movie handle (BKE writeavi.c now)
|
|
int append_qt(struct RenderData *rd, int start_frame, int frame, int *pixels, int rectx, int recty, struct ReportList *reports);
|
|
void end_qt(void);
|
|
void filepath_qt(char *string, struct RenderData *rd);
|
|
|
|
/*RNA helper functions */
|
|
void quicktime_verify_image_type(struct RenderData *rd, struct ImageFormatData *imf); //used by RNA for defaults values init, if needed
|
|
/*Video codec type*/
|
|
int quicktime_get_num_videocodecs(void);
|
|
QuicktimeCodecTypeDesc* quicktime_get_videocodecType_desc(int indexValue);
|
|
int quicktime_rnatmpvalue_from_videocodectype(int codecType);
|
|
int quicktime_videocodecType_from_rnatmpvalue(int rnatmpvalue);
|
|
|
|
#ifdef USE_QTKIT
|
|
/*Audio codec type*/
|
|
int quicktime_get_num_audiocodecs(void);
|
|
QuicktimeCodecTypeDesc* quicktime_get_audiocodecType_desc(int indexValue);
|
|
int quicktime_rnatmpvalue_from_audiocodectype(int codecType);
|
|
int quicktime_audiocodecType_from_rnatmpvalue(int rnatmpvalue);
|
|
#endif
|
|
|
|
#ifndef USE_QTKIT
|
|
void SCENE_OT_render_data_set_quicktime_codec(struct wmOperatorType *ot); //Operator to raise quicktime standard dialog to request codec settings
|
|
#endif
|
|
|
|
|
|
void free_qtcomponentdata(void);
|
|
void makeqtstring(struct RenderData *rd, char *string); //for playanim.c
|
|
|
|
|
|
|
|
#if (defined(USE_QTKIT) && defined(MAC_OS_X_VERSION_10_6) && __LP64__)
|
|
//Include the quicktime codec types constants that are missing in QTKitDefines.h in 10.6 / 64bit
|
|
enum {
|
|
kRawCodecType = 'raw ',
|
|
kCinepakCodecType = 'cvid',
|
|
kGraphicsCodecType = 'smc ',
|
|
kAnimationCodecType = 'rle ',
|
|
kVideoCodecType = 'rpza',
|
|
kComponentVideoCodecType = 'yuv2',
|
|
kJPEGCodecType = 'jpeg',
|
|
kMotionJPEGACodecType = 'mjpa',
|
|
kMotionJPEGBCodecType = 'mjpb',
|
|
kSGICodecType = '.SGI',
|
|
kPlanarRGBCodecType = '8BPS',
|
|
kMacPaintCodecType = 'PNTG',
|
|
kGIFCodecType = 'gif ',
|
|
kPhotoCDCodecType = 'kpcd',
|
|
kQuickDrawGXCodecType = 'qdgx',
|
|
kAVRJPEGCodecType = 'avr ',
|
|
kOpenDMLJPEGCodecType = 'dmb1',
|
|
kBMPCodecType = 'WRLE',
|
|
kWindowsRawCodecType = 'WRAW',
|
|
kVectorCodecType = 'path',
|
|
kQuickDrawCodecType = 'qdrw',
|
|
kWaterRippleCodecType = 'ripl',
|
|
kFireCodecType = 'fire',
|
|
kCloudCodecType = 'clou',
|
|
kH261CodecType = 'h261',
|
|
kH263CodecType = 'h263',
|
|
kDVCNTSCCodecType = 'dvc ', /* DV - NTSC and DVCPRO NTSC (available in QuickTime 6.0 or later)*/
|
|
/* NOTE: kDVCProNTSCCodecType is deprecated. */
|
|
/* Use kDVCNTSCCodecType instead -- as far as the codecs are concerned, */
|
|
/* the two data formats are identical.*/
|
|
kDVCPALCodecType = 'dvcp',
|
|
kDVCProPALCodecType = 'dvpp', /* available in QuickTime 6.0 or later*/
|
|
kDVCPro50NTSCCodecType = 'dv5n',
|
|
kDVCPro50PALCodecType = 'dv5p',
|
|
kDVCPro100NTSCCodecType = 'dv1n',
|
|
kDVCPro100PALCodecType = 'dv1p',
|
|
kDVCPROHD720pCodecType = 'dvhp',
|
|
kDVCPROHD1080i60CodecType = 'dvh6',
|
|
kDVCPROHD1080i50CodecType = 'dvh5',
|
|
kBaseCodecType = 'base',
|
|
kFLCCodecType = 'flic',
|
|
kTargaCodecType = 'tga ',
|
|
kPNGCodecType = 'png ',
|
|
kTIFFCodecType = 'tiff', /* NOTE: despite what might seem obvious from the two constants*/
|
|
/* below and their names, they really are correct. 'yuvu' really */
|
|
/* does mean signed, and 'yuvs' really does mean unsigned. Really. */
|
|
kComponentVideoSigned = 'yuvu',
|
|
kComponentVideoUnsigned = 'yuvs',
|
|
kCMYKCodecType = 'cmyk',
|
|
kMicrosoftVideo1CodecType = 'msvc',
|
|
kSorensonCodecType = 'SVQ1',
|
|
kSorenson3CodecType = 'SVQ3', /* available in QuickTime 5 and later*/
|
|
kIndeo4CodecType = 'IV41',
|
|
kMPEG4VisualCodecType = 'mp4v',
|
|
k64ARGBCodecType = 'b64a',
|
|
k48RGBCodecType = 'b48r',
|
|
k32AlphaGrayCodecType = 'b32a',
|
|
k16GrayCodecType = 'b16g',
|
|
kMpegYUV420CodecType = 'myuv',
|
|
kYUV420CodecType = 'y420',
|
|
kSorensonYUV9CodecType = 'syv9',
|
|
k422YpCbCr8CodecType = '2vuy', /* Component Y'CbCr 8-bit 4:2:2 */
|
|
k444YpCbCr8CodecType = 'v308', /* Component Y'CbCr 8-bit 4:4:4 */
|
|
k4444YpCbCrA8CodecType = 'v408', /* Component Y'CbCrA 8-bit 4:4:4:4 */
|
|
k422YpCbCr16CodecType = 'v216', /* Component Y'CbCr 10,12,14,16-bit 4:2:2*/
|
|
k422YpCbCr10CodecType = 'v210', /* Component Y'CbCr 10-bit 4:2:2 */
|
|
k444YpCbCr10CodecType = 'v410', /* Component Y'CbCr 10-bit 4:4:4 */
|
|
k4444YpCbCrA8RCodecType = 'r408', /* Component Y'CbCrA 8-bit 4:4:4:4, rendering format. full range alpha, zero biased yuv*/
|
|
kJPEG2000CodecType = 'mjp2',
|
|
kPixletCodecType = 'pxlt',
|
|
kH264CodecType = 'avc1'
|
|
};
|
|
#endif
|
|
|
|
#endif //(_WIN32) || (__APPLE__)
|
|
|
|
#endif // __QUICKTIME_IMP_H__
|