obs-ffmpeg: Fix media source file filter
When browsing for a file, it would also just use *.* for the file filter, which is a pain to use. This has been changed to use a reasonable file filter related to common video/audio files so you don't have to wade through non-media files just to select a media file. A filter to show all files is still available as well.
This commit is contained in:
@@ -21,3 +21,8 @@ DiscardBiDir="Bi-Directional Frames"
|
||||
DiscardNonIntra="Non-Intra Frames"
|
||||
DiscardNonKey="Non-Key Frames"
|
||||
DiscardAll="All Frames (Careful!)"
|
||||
|
||||
MediaFileFilter.AllMediaFiles="All Media Files"
|
||||
MediaFileFilter.VideoFiles="Video Files"
|
||||
MediaFileFilter.AudioFiles="Audio Files"
|
||||
MediaFileFilter.AllFiles="All Files"
|
||||
|
@@ -16,6 +16,7 @@
|
||||
|
||||
#include <obs-module.h>
|
||||
#include <util/platform.h>
|
||||
#include <util/dstr.h>
|
||||
|
||||
#include "obs-ffmpeg-compat.h"
|
||||
#include "obs-ffmpeg-formats.h"
|
||||
@@ -312,8 +313,16 @@ static bool is_advanced_modified(obs_properties_t *props,
|
||||
return true;
|
||||
}
|
||||
|
||||
static const char *media_filter =
|
||||
" (*.mp4 *.ts *.mov *.flv *.mkv *.avi *.mp3 *.ogg *.aac *.wav *.gif *.webm);;";
|
||||
static const char *video_filter =
|
||||
" (*.mp4 *.ts *.mov *.flv *.mkv *.avi *.gif *.webm);;";
|
||||
static const char *audio_filter =
|
||||
" (*.mp3 *.aac *.ogg *.wav);;";
|
||||
|
||||
static obs_properties_t *ffmpeg_source_getproperties(void *data)
|
||||
{
|
||||
struct dstr filter = {0};
|
||||
UNUSED_PARAMETER(data);
|
||||
|
||||
obs_properties_t *props = obs_properties_create();
|
||||
@@ -327,9 +336,19 @@ static obs_properties_t *ffmpeg_source_getproperties(void *data)
|
||||
|
||||
obs_property_set_modified_callback(prop, is_local_file_modified);
|
||||
|
||||
dstr_copy(&filter, obs_module_text("MediaFileFilter.AllMediaFiles"));
|
||||
dstr_cat(&filter, media_filter);
|
||||
dstr_cat(&filter, obs_module_text("MediaFileFilter.VideoFiles"));
|
||||
dstr_cat(&filter, video_filter);
|
||||
dstr_cat(&filter, obs_module_text("MediaFileFilter.AudioFiles"));
|
||||
dstr_cat(&filter, audio_filter);
|
||||
dstr_cat(&filter, obs_module_text("MediaFileFilter.AllFiles"));
|
||||
dstr_cat(&filter, " (*.*)");
|
||||
|
||||
obs_properties_add_path(props, "local_file",
|
||||
obs_module_text("LocalFile"), OBS_PATH_FILE, "*.*",
|
||||
NULL);
|
||||
obs_module_text("LocalFile"), OBS_PATH_FILE,
|
||||
filter.array, NULL);
|
||||
dstr_free(&filter);
|
||||
|
||||
obs_properties_add_bool(props, "looping", obs_module_text("Looping"));
|
||||
|
||||
|
Reference in New Issue
Block a user