aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview/moviemaker.h
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/newview/moviemaker.h')
-rw-r--r--linden/indra/newview/moviemaker.h143
1 files changed, 0 insertions, 143 deletions
diff --git a/linden/indra/newview/moviemaker.h b/linden/indra/newview/moviemaker.h
deleted file mode 100644
index f18ce3e..0000000
--- a/linden/indra/newview/moviemaker.h
+++ /dev/null
@@ -1,143 +0,0 @@
1/**
2 * @file moviemaker.h
3 * @brief MovieMaker class definition
4 *
5 * $LicenseInfo:firstyear=2003&license=viewergpl$
6 *
7 * Copyright (c) 2003-2008, Linden Research, Inc.
8 *
9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab
11 * to you under the terms of the GNU General Public License, version 2.0
12 * ("GPL"), unless you have obtained a separate licensing agreement
13 * ("Other License"), formally executed by you and Linden Lab. Terms of
14 * the GPL can be found in doc/GPL-license.txt in this distribution, or
15 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
16 *
17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 *
22 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above,
24 * and agree to abide by those obligations.
25 *
26 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
27 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
28 * COMPLETENESS OR PERFORMANCE.
29 * $/LicenseInfo$
30 */
31
32#ifndef _MOVIEMAKER_H
33#define _MOVIEMAKER_H
34
35#if LL_DARWIN
36#import <QuickTime/QuickTime.h>
37#endif
38
39//
40// *TODO: Refactor this implementation such that we provide an abstact
41// interface in this file, and provide platform specific
42// implementation in the cpp file. This is just crazy to have nearly
43// the same class re-defined for different platforms, because then
44// usage of the class is platform dependent.
45//
46
47#if LL_WINDOWS
48
49#include <vfw.h>
50
51#define TEXT_HEIGHT 20
52#define AVIIF_KEYFRAME 0x00000010L // this frame is a key frame.
53#define BUFSIZE 260
54
55class MovieMaker {
56private:
57 //CString FName;
58 char fname[64];
59 int width;
60 int height;
61
62 AVISTREAMINFO strhdr;
63 PAVIFILE pfile;
64 PAVISTREAM ps;
65 PAVISTREAM psCompressed;
66 PAVISTREAM psText;
67 AVICOMPRESSOPTIONS opts;
68 AVICOMPRESSOPTIONS FAR * aopts[1];
69 DWORD dwTextFormat;
70 COMPVARS cvars;
71 char szText[BUFSIZE];
72 int nFrames;
73 bool bOK;
74
75
76public:
77 MovieMaker();
78 ~MovieMaker();
79
80 inline bool IsOK() const { return bOK; };
81 void StartCapture( char *name , int x, int y);
82 void EndCapture();
83 bool Snap();
84};
85
86#elif LL_DARWIN
87
88class MovieMaker {
89private:
90 char fname[64]; /*Flawfinder: ignore*/
91
92 Movie movie;
93 short movieResRef;
94 Track track;
95 Media media;
96 int width;
97 int height;
98 long bufferSize;
99 long rowBytes;
100 char *buffer;
101 char *invertedBuffer;
102
103 GWorldPtr gworld;
104 Rect rect;
105
106 ComponentInstance ci;
107
108 ImageDescriptionHandle idh;
109 SCTemporalSettings ts;
110 SCDataRateSettings ds;
111
112 UnsignedWide lastFrameTime;
113
114 OSStatus setupMovie();
115 OSStatus grabFrame();
116 OSStatus addFrame();
117
118public:
119 MovieMaker();
120 ~MovieMaker();
121
122 inline bool IsOK() const { return true; };
123 void StartCapture( char *name , int x, int y);
124 void EndCapture();
125 bool Snap();
126};
127
128#elif LL_LINUX
129// *FIX: we need a working implementation on linux.
130class MovieMaker {
131public:
132 MovieMaker() {}
133 ~MovieMaker() {}
134
135 inline bool IsOK() const { return false; };
136 void StartCapture( char *name , int x, int y) {}
137 void EndCapture() {}
138 bool Snap() { return false; }
139};
140
141#endif
142
143#endif