void FormatTools::update_format()
{
if( do_audio && prompt_audio && audio_switch ) {
- asset->audio_data = File::supports_audio(asset->format);
audio_switch->update(asset->audio_data);
if( !asset->audio_data )
audio_switch->disable();
audio_switch->enable();
}
if( do_video && prompt_video && video_switch ) {
- asset->video_data = File::supports_video(asset->format);
video_switch->update(asset->video_data);
if( !asset->video_data )
video_switch->disable();
int new_format = File::strtoformat(format->plugindb, get_selection(0, 0)->get_text());
// if(new_format != format->asset->format)
{
- format->asset->format = new_format;
+ Asset *asset = format->asset;
+ asset->format = new_format;
+ asset->audio_data = File::supports_audio(asset->format);
+ asset->video_data = File::supports_video(asset->format);
format->format_text->update(selection->get_text());
format->update_extension();
format->close_format_windows();
{
}
+int FormatFFMPEG::load_defaults(const char *path, const char *type,
+ char *codec, char *codec_options, int len)
+{
+ char default_file[BCTEXTLEN];
+ FFMPEG::set_option_path(default_file, "%s/%s.dfl", path, type);
+ FILE *fp = fopen(default_file,"r");
+ if( !fp ) return 1;
+ fgets(codec, BCSTRLEN, fp);
+ char *cp = codec;
+ while( *cp && *cp!='\n' ) ++cp;
+ *cp = 0;
+ while( len > 0 && fgets(codec_options, len, fp) ) {
+ int n = strlen(codec_options);
+ codec_options += n; len -= n;
+ }
+ fclose(fp);
+ FFMPEG::set_option_path(default_file, "%s/%s", path, codec);
+ return FFMPEG::load_options(default_file, codec_options, len);
+}
+
int FormatFFMPEG::handle_event()
{
BC_ListBoxItem *selection = get_selection(0, 0);
if( selection ) {
char *text = get_selection(0, 0)->get_text();
format->ffmpeg_type->update(text);
- strcpy(format->asset->fformat, text);
- strcpy(format->asset->ff_audio_options, "");
- strcpy(format->asset->ff_video_options, "");
+ Asset *asset = format->asset;
+ strcpy(asset->fformat, text);
+ strcpy(asset->ff_audio_options, "");
+ strcpy(asset->ff_video_options, "");
+ asset->audio_data = !load_defaults("audio", text, asset->acodec,
+ asset->ff_audio_options, sizeof(asset->ff_audio_options));
+ asset->video_data = !load_defaults("video", text, asset->vcodec,
+ asset->ff_video_options, sizeof(asset->ff_video_options));
format->update_extension();
format->close_format_windows();
format->update_format();