[mythtv] [patch] Frontend QSocket -> QSocketDevice

Bruce Markey bjm at lvcm.com
Mon Dec 1 15:27:52 EST 2003

Bruce Markey wrote:
> Isaac Richards wrote:
>> On Saturday 29 November 2003 09:22 pm, avalanche at beyondmonkey.com wrote:
>>> This patch converts the frontend to use QSocketDevice.
>> Looks good.  Cool =)
>> Bruce, would you mind testing this a little?
> Will do. The critical things for remote playback seem
> to be the requestedbytes stuff and flushing the available
> bytes when seeking from a remote frontend. I'll try to
> look for things that av may not have had a chance to test.

Works great. After every safe_read there is always one request
block pending and more bytes available. I didn't ever see it
fail to keep the pipeline flowing either at a high bitrate over
a fast network or when over-taxing an 802.11b link.

The smaller block size creates more traffic over the control
socket and more context switching with smaller reads but since
high bitrate files keep up, this is probably inconsequential
(if the readblocksize is fixed at 64000, the estbitrate stuff
can probably go away too).

My other concern was the timing in RemoteFile::Reset(). However,
with a smaller blocksize and lower requestedbytes, there are
fewer bytes pending on the network when a seek happens so this
is less of a problem and the timing could even be tightened up
a bit (but I'm not going to do that quite yet =).

I did some bad testing and most of the timeout/reconnect stuff
that I saw in the patch seemed to work ("errm", most of it ;-).
I did see one crash. While the remote frontend was playing a
file from the master, I disconnect the network for about one
minute. The connection timed out as expected. When the network
was reconnected, the frontend correctly displayed a popup but
the backend crashed with this message:

2003-11-30 21:39:08 Unknown file transfer socket
pure virtual method called

I didn't capture a bt and wasn't able to reproduce this on
several attempts with gdb so I don't think this is a show-stopper.

I bumped the binary version number (needs "make distclean") and
added a verbose message but otherwise checked it in as is.

--  bjm

More information about the mythtv-dev mailing list