obs-ffmpeg: Log source info on update/create

Adds a log message whenever the source is created or updated
containing all the properties set to help debugging remote
users' problems.
This commit is contained in:
John Bradley
2015-08-03 16:27:34 -05:00
committed by kc5nra
parent 78d5240e18
commit d04fbd7549

View File

@@ -442,6 +442,54 @@ static obs_properties_t *ffmpeg_source_getproperties(void *data)
return props;
}
static const char *frame_drop_to_str(enum AVDiscard discard)
{
#define DISCARD_CASE(x) case AVDISCARD_ ## x: return "AVDISCARD_" #x
switch (discard)
{
DISCARD_CASE(NONE);
DISCARD_CASE(DEFAULT);
DISCARD_CASE(NONREF);
DISCARD_CASE(BIDIR);
DISCARD_CASE(NONINTRA);
DISCARD_CASE(NONKEY);
DISCARD_CASE(ALL);
default: return "(Unknown)";
};
#undef DISCARD_CASE
}
static void dump_source_info(struct ffmpeg_source *s, const char *input,
const char *input_format, bool is_advanced)
{
FF_BLOG(LOG_INFO,
"settings:\n"
"\tinput: %s\n"
"\tinput_format: %s\n"
"\tis_looping: %s\n"
"\tis_forcing_scale: %s\n"
"\tis_hw_decoding: %s\n"
"\tis_clear_on_media_end: %s",
input ? input : "(null)",
input_format ? input_format : "(null)",
s->demuxer->options.is_looping ? "yes" : "no",
s->is_forcing_scale ? "yes" : "no",
s->is_hw_decoding ? "yes" : "no",
s->is_clear_on_media_end ? "yes" : "no");
if (!is_advanced)
return;
FF_BLOG(LOG_INFO,
"advanced settings:\n"
"\taudio_buffer_size: %d\n"
"\tvideo_buffer_size: %d\n"
"\tframe_drop: %s",
s->demuxer->options.audio_frame_queue_size,
s->demuxer->options.video_frame_queue_size,
frame_drop_to_str(s->demuxer->options.frame_drop));
}
static void ffmpeg_source_update(void *data, obs_data_t *settings)
{
struct ffmpeg_source *s = data;
@@ -514,6 +562,8 @@ static void ffmpeg_source_update(void *data, obs_data_t *settings)
audio_frame, NULL,
NULL, NULL, NULL, s);
dump_source_info(s, input, input_format, is_advanced);
ff_demuxer_open(s->demuxer, input, input_format);
}