#ifndef __FILEFFMPEG_H__
#define __FILEFFMPEG_H__
-#include "asset.inc"
+#include "asset.inc"
#include "bcdialog.h"
#include "bcwindowbase.inc"
-#include "bitspopup.inc"
+#include "bitspopup.inc"
#include "ffmpeg.h"
#include "filebase.h"
#include "fileffmpeg.inc"
static void ff_lock(const char *cp=0);
static void ff_unlock();
+ static void set_parameters(char *cp, int len, const char *bp);
static void get_parameters(BC_WindowBase *parent_window,Asset *asset,
BC_WindowBase *&format_window,int audio_options,int video_options);
static int check_sig(Asset *asset);
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,int len);
+ static int can_render(const char *fformat, const char *type);
+ static int renders_audio(const char *fformat) { return can_render(fformat, "audio"); }
+ static int renders_video(const char *fformat) { return can_render(fformat, "video"); }
+ static int get_ff_option(const char *nm, const char *options, char *value);
int open_file(int rd,int wr);
int get_index(IndexFile *index_file, MainProgressBar *progress_bar);
int close_file(void);
~FFMpegConfigNum();
void create_objects();
+ int update_param(const char *param, const char *opts);
int handle_event();
int *output;
BC_Window *window;
~FFMPEGConfigAudio();
void create_objects();
- void update_options();
int close_event();
ArrayList<BC_ListBoxItem*> presets;
public:
FFAudioOptions(FFMPEGConfigAudio *audio_popup,
int x, int y, int w, int rows, int size, char *text);
- int handle_event();
FFMPEGConfigAudio *audio_popup;
};
~FFMPEGConfigVideo();
void create_objects();
- void update_options();
int close_event();
ArrayList<BC_ListBoxItem*> presets;
public:
FFVideoOptions(FFMPEGConfigVideo *video_popup,
int x, int y, int w, int rows, int size, char *text);
- int handle_event();
FFMPEGConfigVideo *video_popup;
};
ArrayList<BC_ListBoxItem*> items[2];
ArrayList<BC_ListBoxItem*> &opts;
ArrayList<BC_ListBoxItem*> &vals;
+ char tip_text[BCTEXTLEN];
int selection_changed();
int update();
+ void show_tip(const char *tip);
};
class FFOptionsKindItem : public BC_MenuItem
public:
FFOptionsDialog();
~FFOptionsDialog();
- virtual void update_options() = 0;
+ virtual void update_options(const char *options) = 0;
- void load_options();
- void store_options();
- void start(const char *codec_name, AVCodec *codec, char *ff_options, int ff_len);
+ void load_options(const char *bp, int len);
+ void store_options(char *cp, int len);
+ void start(const char *format_name, const char *codec_name,
+ AVCodec *codec, const char *options, int len);
BC_Window* new_gui();
void handle_done_event(int result);
FFOptionsWindow *options_window;
- const char *codec_name;
+ const char *format_name, *codec_name;
AVCodec *codec;
- char *ff_options;
- int ff_len;
AVDictionary *ff_opts;
+ int ff_len;
};
class FFOptionsAudioDialog : public FFOptionsDialog
{
public:
FFMPEGConfigAudio *aud_config;
- void update_options();
+ void update_options(const char *options);
FFOptionsAudioDialog(FFMPEGConfigAudio *aud_config);
~FFOptionsAudioDialog();
{
public:
FFMPEGConfigVideo *vid_config;
- void update_options();
+ void update_options(const char *options);
FFOptionsVideoDialog(FFMPEGConfigVideo *vid_config);
~FFOptionsVideoDialog();