blob: 13cf16700b8c3cef1c07d941f3e37b8a61b187a7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
/* Project nGenEx
Destroyer Studios LLC
Copyright © 1997-2004. All Rights Reserved.
SUBSYSTEM: nGenEx.lib
FILE: AviFile.h
AUTHOR: John DiCamillo
OVERVIEW
========
PCX image file loader
*/
#ifndef AviFile_h
#define AviFile_h
#include "Text.h"
#include "Color.h"
#include "Bitmap.h"
#include "Geometry.h"
// +--------------------------------------------------------------------+
struct IAVIFile;
struct IAVIStream;
// +--------------------------------------------------------------------+
class AviFile
{
public:
static const char* TYPENAME() { return "AviFile"; }
// open for reading:
AviFile(const char* fname);
// create for writing
AviFile(const char* fname, const Rect& rect, int frame_rate=30);
~AviFile();
HRESULT AddFrame(const Bitmap& bmp);
HRESULT GetFrame(double seconds, Bitmap& bmp);
private:
Rect rect;
Text filename;
int fps;
IAVIFile* pfile; // created by CreateAvi
IAVIStream* ps;
IAVIStream* ps_comp; // video stream, when first created
DWORD frame_size; // total bytes per frame of video
DWORD nframe; // which frame will be added next
DWORD nsamp; // which sample will be added next
bool play;
bool iserr; // if true, then no function will do anything
};
// +--------------------------------------------------------------------+
#endif AviFile_h
|