obs-ffmpeg: Fix frame remain after changing file

After changing the media source from video file to audio file,
the last video's frame (preloaded) maybe still rendered.

This commit ensures that when media source changed to
another one without video, clean the source's video output,
by simply add judgement to check whether the media has video.
master
tududweb 2022-07-29 01:59:24 +08:00 committed by tt2468
parent 90b705fcbc
commit 07b0786892
1 changed files with 2 additions and 1 deletions

View File

@ -337,7 +337,8 @@ static void ffmpeg_source_start(struct ffmpeg_source *s)
return;
mp_media_play(&s->media, s->is_looping, s->reconnecting);
if (s->is_local_file && (s->is_clear_on_media_end || s->is_looping))
if (s->is_local_file && s->media.has_video &&
(s->is_clear_on_media_end || s->is_looping))
obs_source_show_preloaded_video(s->source);
else
obs_source_output_video(s->source, NULL);