00001 #ifndef VDEVICEBASE_H 00002 #define VDEVICEBASE_H 00003 00004 #include "assets.inc" 00005 #include "channel.inc" 00006 #include "edl.inc" 00007 #include "guicast.h" 00008 #include "picture.inc" 00009 #include "videodevice.inc" 00010 00011 class VDeviceBase 00012 { 00013 public: 00014 VDeviceBase(VideoDevice *device); 00015 virtual ~VDeviceBase(); 00016 00017 virtual int open_input() { return 1; }; 00018 virtual int close_all() { return 1; }; 00019 virtual int has_signal() { return 0; }; 00020 virtual int read_buffer(VFrame *frame) { return 1; }; 00021 virtual int write_buffer(VFrame **outputs, EDL *edl) { return 1; }; 00022 virtual void new_output_buffer(VFrame **outputs, int colormodel) {}; 00023 virtual ArrayList<int>* get_render_strategies() { return 0; }; 00024 virtual int get_shared_data(unsigned char *data, long size) { return 0; }; 00025 virtual int stop_sharing() { return 0; }; 00026 virtual int interrupt_crash() { return 0; }; 00027 // Extra work must sometimes be done in here to set up the device. 00028 virtual int get_best_colormodel(Asset *asset); 00029 virtual int set_channel(Channel *channel) { return 0; }; 00030 virtual int set_picture(PictureConfig *picture) { return 0; }; 00031 00032 virtual int open_output() { return 1; }; 00033 virtual int output_visible() { return 0; }; 00034 virtual int start_playback() { return 1; }; 00035 virtual int stop_playback() { return 1; }; 00036 virtual BC_Bitmap* get_bitmap() { return 0; }; 00037 // Most Linux video drivers don't work. 00038 // Called by KeepaliveThread when the device appears to be stuck. 00039 // Should restart the device if that's what it takes to get it to work. 00040 virtual void goose_input() {}; 00041 00042 VideoDevice *device; 00043 }; 00044 00045 #endif
1.4.4