This repository has been archived on 2023-10-09. You can view files and clone it, but cannot push or open issues or pull requests.
Files
blender-archive/source/blender/quicktime/quicktime_export.h

165 lines
5.9 KiB
C++
Raw Normal View History

/* $Id$
*
* ***** 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,
2010-02-12 13:34:04 +00:00
* 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 *****
*/
#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
Giant commit! A full detailed description of this will be done later... is several days of work. Here's a summary: Render: - Full cleanup of render code, removing *all* globals and bad level calls all over blender. Render module is now not called abusive anymore - API-fied calls to rendering - Full recode of internal render pipeline. Is now rendering tiles by default, prepared for much smarter 'bucket' render later. - Each thread now can render a full part - Renders were tested with 4 threads, goes fine, apart from some lookup tables in softshadow and AO still - Rendering is prepared to do multiple layers and passes - No single 32 bits trick in render code anymore, all 100% floats now. Writing images/movies - moved writing images to blender kernel (bye bye 'schrijfplaatje'!) - made a new Movie handle system, also in kernel. This will enable much easier use of movies in Blender PreviewRender: - Using new render API, previewrender (in buttons) now uses regular render code to generate images. - new datafile 'preview.blend.c' has the preview scenes in it - previews get rendered in exact displayed size (1 pixel = 1 pixel) 3D Preview render - new; press Pkey in 3d window, for a panel that continuously renders (pkey is for games, i know... but we dont do that in orange now!) - this render works nearly identical to buttons-preview render, so it stops rendering on any event (mouse, keyboard, etc) - on moving/scaling the panel, the render code doesn't recreate all geometry - same for shifting/panning view - all other operations (now) regenerate the full render database still. - this is WIP... but big fun, especially for simple scenes! Compositor - Using same node system as now in use for shaders, you can composit images - works pretty straightforward... needs much more options/tools and integration with rendering still - is not threaded yet, nor is so smart to only recalculate changes... will be done soon! - the "Render Result" node will get all layers/passes as output sockets - The "Output" node renders to a builtin image, which you can view in the Image window. (yes, output nodes to render-result, and to files, is on the list!) The Bad News - "Unified Render" is removed. It might come back in some stage, but this system should be built from scratch. I can't really understand this code... I expect it is not much needed, especially with advanced layer/passes control - Panorama render, Field render, Motion blur, is not coded yet... (I had to recode every single feature in render, so...!) - Lens Flare is also not back... needs total revision, might become composit effect though (using zbuffer for visibility) - Part render is gone! (well, thats obvious, its default now). - The render window is only restored with limited functionality... I am going to check first the option to render to a Image window, so Blender can become a true single-window application. :) For example, the 'Spare render buffer' (jkey) doesnt work. - Render with border, now default creates a smaller image - No zbuffers are written yet... on the todo! - Scons files and MSVC will need work to get compiling again OK... thats what I can quickly recall. Now go compiling!
2006-01-23 22:05:47 +00:00
struct RenderData;
struct Scene;
struct wmOperatorType;
struct ReportList;
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 frame, int *pixels, int rectx, int recty, struct ReportList *reports);
void end_qt(void);
2010-01-08 14:42:52 +00:00
void filepath_qt(char *string, struct RenderData *rd);
/*RNA helper functions */
void quicktime_verify_image_type(struct RenderData *rd); //used by RNA for defaults values init, if needed
/*Video codec type*/
int quicktime_get_num_videocodecs();
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();
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__