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", path, type);
+ FILE *fp = fopen(default_file,"r");
+ if( !fp ) return 1;
+ char default_codec[BCSTRLEN];
+ fgets(default_codec, sizeof(default_codec), fp);
+ fclose(fp);
+ char *cp=codec, *dp=default_codec;
+ while( *dp && *dp!='\n' ) *cp++ = *dp++;
+ *cp = 0;
+ 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();