From f03deb5324a73afc9af6fa58cd6f9a4df6da72cf Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 28 Jan 2021 15:41:14 +0100 Subject: [PATCH] media-session: try to avoid switching away from hdmi When HDMI goes to sleep the profile becomes unavailable. Avoid switching to Off in that case. --- src/examples/media-session/default-profile.c | 5 +++++ src/examples/media-session/default-routes.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/examples/media-session/default-profile.c b/src/examples/media-session/default-profile.c index f7e22762a..11da59a21 100644 --- a/src/examples/media-session/default-profile.c +++ b/src/examples/media-session/default-profile.c @@ -271,6 +271,11 @@ static int handle_profile(struct device *dev) pw_log_info("device '%s': active profile '%s' unavailable", dev->name, pr.name); + /* ignore hdmi profile removal of unavailable, this can happen + * when the screen is put to sleep */ + if (strstr(pr.name, "hdmi") != NULL) + return 0; + dev->restored = false; } } diff --git a/src/examples/media-session/default-routes.c b/src/examples/media-session/default-routes.c index d7d658547..a336c52a2 100644 --- a/src/examples/media-session/default-routes.c +++ b/src/examples/media-session/default-routes.c @@ -372,6 +372,7 @@ static struct route_info *find_route_info(struct device *dev, struct route *r) if (i == NULL) return NULL; + pw_log_info("device %d: new route %d '%s' found", dev->id, r->index, r->name); i->index = r->index; i->generation = dev->generation; @@ -417,8 +418,8 @@ static int handle_route(struct device *dev, struct route *r) add_idle_timeout(impl); } free(val); - i->generation = dev->generation; } + i->generation = dev->generation; return 0; }