Index: tv_play.cpp
===================================================================
--- tv_play.cpp (revision 15302)
+++ tv_play.cpp (working copy)
....
@@ -2210,14 +2239,15 @@
if (exitPlayer)
{
- while (GetOSD() && GetOSD()->DialogShowing(dialogname))
+ int tries = 10;
+ while (GetOSD() && GetOSD()->DialogShowing(dialogname) && tries--)
{
GetOSD()->DialogAbort(dialogname);
GetOSD()->TurnDialogOff(dialogname);
+ VERBOSE(VB_PLAYBACK, LOC + "RunTV() exitPlayer waiting for OSD: "<<dialogname);
usleep(1000);
}
The frontend can get stuck in this loop sometimes. I'm not able to deduce the rules
regarding OSD handling from the code.
Worried that exiting this loop early will cause leaks or miss some needed cleanup or something.