r1009: Move the dependencies to newer package names
[cinelerra_cv/mob.git] / cinelerra / fileyuv.h
blobefa01df1b4ace9bbce1acb90bba01ac2a69e6d64
1 #ifndef FILEYUV_H
2 #define FILEYUV_H
4 #include "yuvstream.h"
5 #include "file.inc"
6 #include "filelist.h"
7 #include "vframe.inc"
8 #include "formattools.h"
9 #include "ffmpeg.h"
11 class PipeCheckBox;
12 class PipePreset;
14 class FileYUV : public FileBase
16 public:
17 FileYUV(Asset *asset, File *file);
18 ~FileYUV();
20 static void get_parameters(BC_WindowBase *parent_window,
21 Asset *asset,
22 BC_WindowBase* &format_window,
23 int video_options,
24 FormatTools *format);
26 int open_file(int rd, int wr);
27 static int check_sig(Asset *asset);
28 static int get_best_colormodel(Asset *asset, int driver);
29 int colormodel_supported(int colormodel);
30 int read_frame(VFrame *frame);
31 int write_frames(VFrame ***frame, int len);
32 int can_copy_from(Edit *edit, int64_t position);
33 int close_file();
34 int set_video_position(int64_t x);
36 // below here are local routines not required by interface
37 void ensure_temp(int width, int height);
39 private:
40 VFrame *temp;
41 YUVStream *stream;
42 Asset *incoming_asset;
43 FFMPEG *ffmpeg;
44 int pipe_latency;
48 class YUVConfigVideo : public BC_Window
50 public:
51 YUVConfigVideo(BC_WindowBase *parent_window, Asset *asset,
52 FormatTools *format);
53 ~YUVConfigVideo();
55 int create_objects();
56 int close_event();
58 BC_WindowBase *parent_window;
59 Asset *asset;
60 FormatTools *format;
61 BC_Hash *defaults;
62 BC_TextBox *path_textbox;
63 BC_RecentList *path_recent;
64 PipeCheckBox *pipe_checkbox;
65 BC_TextBox *pipe_textbox;
66 BC_RecentList *pipe_recent;
67 PipePreset *mpeg2enc;
68 PipePreset *ffmpeg;
72 class PipeCheckBox : public BC_CheckBox
74 public:
75 PipeCheckBox(int x, int y, int value);
76 int handle_event();
77 BC_TextBox *textbox;
82 class PipePreset : public BC_PopupMenu
84 public:
85 PipePreset(int x, int y, char *title, BC_TextBox *textbox, BC_CheckBox *checkbox);
86 int handle_event();
88 private:
89 BC_TextBox *pipe_textbox;
90 BC_CheckBox *pipe_checkbox;
91 char *title;
95 #endif