r851: Merge 2.1:
[cinelerra_cv/ct.git] / cinelerra / fileexr.h
blobb54ff2e02878df67445812d7e81f9b7560db74b2
1 #ifndef FILEEXR_H
2 #define FILEEXR_H
5 #include "file.inc"
6 #include "filelist.h"
7 #include "vframe.inc"
9 class FileEXR : public FileList
11 public:
12 FileEXR(Asset *asset, File *file);
13 ~FileEXR();
15 static int check_sig(Asset *asset, char *test);
16 static void get_parameters(BC_WindowBase *parent_window,
17 Asset *asset,
18 BC_WindowBase* &format_window,
19 int audio_options,
20 int video_options);
21 static int get_best_colormodel(Asset *asset, int driver);
22 int colormodel_supported(int colormodel);
23 int read_frame_header(char *path);
24 int read_frame(VFrame *frame, VFrame *data);
25 int64_t get_memory_usage();
26 int write_frame(VFrame *frame, VFrame *data, FrameWriterUnit *unit);
27 FrameWriterUnit* new_writer_unit(FrameWriter *writer);
29 // exr_compression values
30 enum
32 NONE,
33 PIZ,
34 ZIP,
35 ZIPS,
36 RLE,
37 PXR24
40 static char* compression_to_str(int compression);
41 static int str_to_compression(char *string);
42 static int compression_to_exr(int compression);
44 int native_cmodel;
45 int is_yuv;
46 float *temp_y;
47 float *temp_u;
48 float *temp_v;
51 class EXRUnit : public FrameWriterUnit
53 public:
54 EXRUnit(FileEXR *file, FrameWriter *writer);
55 ~EXRUnit();
57 FileEXR *file;
58 VFrame *temp_frame;
63 class EXRConfigVideo : public BC_Window
65 public:
66 EXRConfigVideo(BC_WindowBase *parent_window, Asset *asset);
67 ~EXRConfigVideo();
69 int create_objects();
70 int close_event();
72 BC_WindowBase *parent_window;
73 Asset *asset;
77 class EXRUseAlpha : public BC_CheckBox
79 public:
80 EXRUseAlpha(EXRConfigVideo *gui, int x, int y);
81 int handle_event();
82 EXRConfigVideo *gui;
85 class EXRCompression : public BC_PopupMenu
87 public:
88 EXRCompression(EXRConfigVideo *gui, int x, int y, int w);
89 void create_objects();
90 int handle_event();
91 EXRConfigVideo *gui;
94 class EXRCompressionItem : public BC_MenuItem
96 public:
97 EXRCompressionItem(EXRConfigVideo *gui, int value);
98 int handle_event();
99 EXRConfigVideo *gui;
100 int value;
103 #endif