[mythtv-users] Remote mythfrontend displays no video

Bruce Markey bjm at lvcm.com
Sat May 3 14:05:41 EDT 2003


David Won wrote:
> Hey all. I have a problem now. Everything was working fine but now it
> doesn't. I've been updating the CVS and I also upgraded my laptop to RH
> 9/ I'm not sure which one caused the problem. I'm running mythback on
> the main PC and everything works great. The problem is when I try to run
> the frontend on my laptop. It used to work fine but now whenever I try
> to play something I don't get the video. iptraf shows lots of data being
> transferred but I just see the movie selection screen. The only way to
> get out is to kill it which usually kills the backend. Any ideas?

Are use using a wireless network to the laptop? I've run
into a bug when using wireless or 10Mb networks where the
video player doesn't start because the the file header
isn't read correctly. This happens for CVS after April 22nd.

WriteBlock no longer waits for the bytes to flush before
returning. This is a Good Thing because it was spinning the
CPU while waiting. However, appearently something goes wrong
in the buffering if the write queue is allow to grow unchecked.

This patch is a workaround that prevents WriteBlock from
returning until the write queue is below a threshold. I'm
still trying to find the exact cause of the file header not
being read correctly before applying a fix for the specific
problem.

Please let me know if this patch fixes your problem.
 
> I tried running gdb mythbackend and frontend but didn't get much/ Not
> sure if I'm doing it right.
...
> Program received signal SIGINT, Interrupt.
> [Switching to Thread 147466 (LWP 5490)]
> 0x420b0226 in nanosleep () from /lib/i686/libc.so.6
> (gdb) Quit

Section 18.9 of the docs suggest "thread apply all bt full"
at this point.

--  bjm

-------------- next part --------------
--- util.cpp	2003-05-03 12:13:14.000000000 -0700
+++ MC/libs/libmyth/util.cpp	2003-05-02 19:49:39.000000000 -0700
@@ -131,6 +131,12 @@
     if (socket->bytesToWrite() > 0)
         socket->flush();
     qApp->unlock();
+
+    while (socket->bytesToWrite() > 64000)
+    {
+        // cerr << socket->bytesToWrite() << " bytes to write." << endl;
+	usleep(50000);
+    }
 }
 
 int ReadBlock(QSocket *socket, void *data, int maxlen)


More information about the mythtv-users mailing list