Ticket #6583: patchtvplay

File patchtvplay, 2.6 KB (added by Wayne Gibson <gr8gib@…>, 11 years ago)
Line 
1Index: libs/libmythtv/tv_play.cpp
2===================================================================
3--- libs/libmythtv/tv_play.cpp  (revision 20414)
4+++ libs/libmythtv/tv_play.cpp  (working copy)
5@@ -378,13 +378,21 @@
6 
7     if (!nvpError.isEmpty())
8     {
9-        MythScreenStack *ss = GetMythMainWindow()->GetStack("popup stack");
10-        MythConfirmationDialog *dlg = new MythConfirmationDialog(
11-            ss, nvpError, false);
12-        if (!dlg->Create())
13-            delete dlg;
14+        if (nvpError != "Video frame buffering failed too many times.")
15+        {
16+           MythScreenStack *ss = GetMythMainWindow()->GetStack("popup stack");
17+           MythConfirmationDialog *dlg = new MythConfirmationDialog(
18+               ss, nvpError, false);
19+           if (!dlg->Create())
20+               delete dlg;
21+           else
22+               ss->AddScreen(dlg);
23+        }
24         else
25-            ss->AddScreen(dlg);
26+        {
27+           VERBOSE(VB_IMPORTANT, LOC + "the NVP error is" +
28+                QString(" '%1'").arg(nvpError));
29+        }
30     }
31 
32     gContext->sendPlaybackEnd();
33@@ -1725,8 +1733,28 @@
34             ctx->last_framerate = ctx->recorder->GetFrameRate();
35             ok = StartPlayer(mctx, ctx, desiredNextState);
36         }
37+       
38         if (!ok)
39         {
40+            VERBOSE(VB_IMPORTANT, LOC +
41+                    "Resetting the NVP Player!!!!!!!!!!!!");
42+            ctx->nvp->StopPlaying();
43+            ctx->SetNVP(NULL);
44+           
45+            ctx->UpdateTVChain(); 
46+
47+            if (ctx->playingInfo)
48+            {
49+               ctx->last_framerate = ctx->recorder->GetFrameRate();
50+               ok = StartPlayer(mctx, ctx, desiredNextState);
51+               VERBOSE(VB_IMPORTANT, LOC +
52+                       "Starting Player!!!!!!!!!!!!");
53+               
54+            }
55+        }
56+
57+        if (!ok)
58+        {
59             VERBOSE(VB_IMPORTANT, LOC_ERR +
60                     "LiveTV not successfully started");
61             RestoreScreenSaver(ctx);
62@@ -4943,9 +4971,9 @@
63     }
64     else
65     {
66-        ok = ctx->CreateNVP(this, gContext->GetMainWindow(), desiredState,
67-                            mctx->embedWinID, &mctx->embedBounds);
68-        ScheduleStateChange(ctx);
69+       ok = ctx->CreateNVP(this, gContext->GetMainWindow(), desiredState,
70+                           mctx->embedWinID, &mctx->embedBounds);
71+       ScheduleStateChange(ctx);
72     }
73 
74     if (ok)
75@@ -8062,6 +8090,7 @@
76         VERBOSE(VB_GENERAL, LOC +
77                 "Sleep timeout reached, leaving LiveTV");
78         SetExitPlayer(true, true);
79+        system("/home/mythtv/bin/tvpower");
80     }
81     ReturnPlayerLock(mctx);
82 }