X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.0%2Fcinelerra%2Ffileffmpeg.h;h=bde3d5d5f5f34541e8d6a0db80a0b329ee82dabd;hb=5aad2133f228b736f033d6c48e1629078b858286;hp=db46e696370fe133d360929569492877b1c53f29;hpb=2d99bb8ce591f05a31464b517d85dc2bc35b2abe;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.0/cinelerra/fileffmpeg.h b/cinelerra-5.0/cinelerra/fileffmpeg.h index db46e696..bde3d5d5 100644 --- a/cinelerra-5.0/cinelerra/fileffmpeg.h +++ b/cinelerra-5.0/cinelerra/fileffmpeg.h @@ -16,6 +16,20 @@ #include #include +class FileFFMPEG; +class FFMpegConfigNum; +class FFMpegAudioNum; +class FFMpegVideoNum; +class FFOkButton; +class FFOptions; +class FFMPEGConfigAudio; +class FFAudioOptions; +class FFMPEGConfigAudioPopup; +class FFMPEGConfigAudioToggle; +class FFMPEGConfigVideo; +class FFVideoOptions; +class FFMPEGConfigVideoPopup; +class FFMPEGConfigVideoToggle; class FileFFMPEG : public FileBase { @@ -33,7 +47,7 @@ public: int get_video_info(int track, int &pid, double &framerate, int &width, int &height, char *title=0); int get_audio_for_video(int vstream, int astream, int64_t &channel_mask); - static void get_info(char *path,char *text); + static void get_info(char *path,char *text,int len); int open_file(int rd,int wr); int close_file(void); int set_video_position(int64_t pos); @@ -49,6 +63,63 @@ public: int select_audio_stream(Asset *asset, int astream); }; +class FFMpegConfigNum : public BC_TumbleTextBox +{ +public: + FFMpegConfigNum(BC_Window *window, int x, int y, + char *title_text, int *output); + ~FFMpegConfigNum(); + + void create_objects(); + int handle_event(); + int *output; + BC_Window *window; + BC_Title *title; + char *title_text; + int x, y; +}; + +class FFMpegAudioNum : public FFMpegConfigNum +{ +public: + FFMpegAudioNum(BC_Window *window, int x, int y, char *title_text, int *output); + ~FFMpegAudioNum() {} + + FFMPEGConfigAudio *window() { return (FFMPEGConfigAudio *)FFMpegConfigNum::window; } +}; + +class FFMpegAudioBitrate : public FFMpegAudioNum +{ +public: + FFMpegAudioBitrate(BC_Window *window, int x, int y, char *title_text, int *output) + : FFMpegAudioNum(window, x, y, title_text, output) {} + int handle_event(); +}; + +class FFMpegVideoNum : public FFMpegConfigNum +{ +public: + FFMpegVideoNum(BC_Window *window, int x, int y, char *title_text, int *output); + ~FFMpegVideoNum() {} + + FFMPEGConfigVideo *window() { return (FFMPEGConfigVideo *)FFMpegConfigNum::window; } +}; + +class FFMpegVideoBitrate : public FFMpegVideoNum +{ +public: + FFMpegVideoBitrate(BC_Window *window, int x, int y, char *title_text, int *output) + : FFMpegVideoNum(window, x, y, title_text, output) {} + int handle_event(); +}; + +class FFMpegVideoQuality : public FFMpegVideoNum +{ +public: + FFMpegVideoQuality(BC_Window *window, int x, int y, char *title_text, int *output) + : FFMpegVideoNum(window, x, y, title_text, output) {} + int handle_event(); +}; class FFMPEGConfigAudio : public BC_Window { @@ -61,10 +132,22 @@ public: ArrayList presets; FFMPEGConfigAudioPopup *preset_popup; + FFMpegAudioBitrate *bitrate; + FFAudioOptions *audio_options; BC_WindowBase *parent_window; Asset *asset; }; +class FFAudioOptions : public BC_TextBox +{ +public: + FFAudioOptions(FFMPEGConfigAudio *audio_popup, + int x, int y, int w, int rows, int size, char *text); + int handle_event(); + + FFMPEGConfigAudio *audio_popup; +}; + class FFMPEGConfigAudioPopup : public BC_PopupTextBox { @@ -97,9 +180,22 @@ public: ArrayList presets; FFMPEGConfigVideoPopup *preset_popup; BC_WindowBase *parent_window; + FFMpegVideoBitrate *bitrate; + FFMpegVideoQuality *quality; + FFVideoOptions *video_options; Asset *asset; }; +class FFVideoOptions : public BC_TextBox +{ +public: + FFVideoOptions(FFMPEGConfigVideo *video_popup, + int x, int y, int w, int rows, int size, char *text); + int handle_event(); + + FFMPEGConfigVideo *video_popup; +}; + class FFMPEGConfigVideoPopup : public BC_PopupTextBox { public: