summaryrefslogtreecommitdiffstats
path: root/filters/f_decoder_wrapper.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2020-02-15 02:19:20 +0100
committerwm4 <wm4@nowhere>2020-02-15 02:19:20 +0100
commita9acfa82c35c4d5a98737d1cfda5d56e622f9674 (patch)
tree10cf2bb9c86fdd5c5c13a08a8c9f8a5cb3ced140 /filters/f_decoder_wrapper.c
parent641d102101087a3453398800febce2f65f104203 (diff)
downloadmpv-a9acfa82c35c4d5a98737d1cfda5d56e622f9674.tar.bz2
mpv-a9acfa82c35c4d5a98737d1cfda5d56e622f9674.tar.xz
Diffstat (limited to 'filters/f_decoder_wrapper.c')
-rw-r--r--filters/f_decoder_wrapper.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/filters/f_decoder_wrapper.c b/filters/f_decoder_wrapper.c
index 7ce13606b6..6f90df04ad 100644
--- a/filters/f_decoder_wrapper.c
+++ b/filters/f_decoder_wrapper.c
@@ -199,13 +199,16 @@ bool mp_decoder_wrapper_reinit(struct mp_decoder_wrapper *d)
const struct mp_decoder_fns *driver = NULL;
struct mp_decoder_list *list = NULL;
char *user_list = NULL;
+ char *fallback = NULL;
if (p->codec->type == STREAM_VIDEO) {
driver = &vd_lavc;
user_list = opts->video_decoders;
+ fallback = "h264";
} else if (p->codec->type == STREAM_AUDIO) {
driver = &ad_lavc;
user_list = opts->audio_decoders;
+ fallback = "aac";
if (p->public.try_spdif && p->codec->codec) {
struct mp_decoder_list *spdif =
@@ -223,7 +226,10 @@ bool mp_decoder_wrapper_reinit(struct mp_decoder_wrapper *d)
struct mp_decoder_list *full = talloc_zero(NULL, struct mp_decoder_list);
if (driver)
driver->add_decoders(full);
- list = mp_select_decoders(p->log, full, p->codec->codec, user_list);
+ const char *codec = p->codec->codec;
+ if (codec && strcmp(codec, "null") == 0)
+ codec = fallback;
+ list = mp_select_decoders(p->log, full, codec, user_list);
talloc_free(full);
}