News:

Latest versions:
Server plugin: 0.5.1
MVP dongle: 0.5.2
Raspberry Pi client: 0.5.2
Windows client: 0.5.2-1

Main Menu

VOMP and the 10MBit issue

Started by MartenR, October 29, 2005, 17:08:50

Previous topic - Next topic

MartenR

Hallo!
I want to report  the I have also the so called 10Mbit Problem. That means I can display the menu but playing recordings or live TV will not play or only play a few seconds and then I have a channel unavailable message...

My vdr server is on a combined 100MBit Switch and Router which is connected which a second 100 MBit Switch is connected with the mvps. This switch connects only with 10 MBit with the mvps, I don't know why.
So you see I have  the same setup and symptoms like the other people reporting this problem.

But I want to inform you about an interesting footnote, which may leads Chris faster to a solution of the problem.
I think you all know the mediamvp plugin for vdr by Dominic Morris. At the begining (with the same setup) I had a problem that a lot of recordings (those with higher bitrate more often than others) freezes all 20-30 seconds.

The solution was a modification of the sendbuffer of the video stream socket of the mediamvp plugin to a smaller value of 2000, which Dominic Morris changed after my request.
I suspect that not the tcp window size of the connection should be changed, the send buffer size should be changed.
@Chris, look at the mediamvp plugin  code into the file stream.c in the mvp directory, the #define WRITEBUFSIZE is the value, I'm talking about and the relevant code is in the stream_accept function.

I don't know if this is the solution of the problem, because I yet don't know enough about the code to change the buffer size myself (maybe this will change), but I hope this would push the quest for a solution into the right direction.

Marten

Chris

Hi, welcome to the 10Mb effort ... :)

An interesting possible solution there. I have tried it but even at 2k it still fails. I am down to a 1k send buffer size on the server side. But it's an interesting method, I didn't know about this technique. Maybe what is really required is the mirror of this in the client - to advertise a 2k (or 1k) receiving buffer as that is where the problem really is. Still, to test this with vomp add the following two lines at line 38 of tcp.c:

  int writeBufferSize = 1000;
  setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &writeBufferSize, sizeof(int));

Do the usual make plugins, restart VDR and let me know what happens...

JMFR

Quote from: Chris on October 29, 2005, 23:32:42
Hi, welcome to the 10Mb effort ... :)

An interesting possible solution there. I have tried it but even at 2k it still fails. I am down to a 1k send buffer size on the server side. But it's an interesting method, I didn't know about this technique. Maybe what is really required is the mirror of this in the client - to advertise a 2k (or 1k) receiving buffer as that is where the problem really is. Still, to test this with vomp add the following two lines at line 38 of tcp.c:

  int writeBufferSize = 1000;
  setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &writeBufferSize, sizeof(int));

Do the usual make plugins, restart VDR and let me know what happens...

Hi ...
I also have the 10Mb problem ... make this small mod ... and it's working ... almost 30 minutes witout any problem ...
and also it's working with powerline (14Mb at max ...)

tks a lot for this plugin ...

JMFR

MartenR

Hallo,
are you sure that line 38 is right, my editor displays the line 38 in constructor destructor, Nevertheless I added the two lines in connectto after the first return 0;
And the 10MBit-Problem is still present.
But I think your Idea to do similar things in the mvp is not a bad idea.

Marten

JMFR

MartenR, try add at line 40 .... I did and after make plugins ... no error ...I also download again vompserver cvs ... and new dongle ... 0.0.15 ...
I can even transmit at 10Mb, TPS channel ... high bit rate ... this one gave me problems with mediamvp 0.16 !!! ... but with
vomp plugin ... no problem ...

I hope it helps

JMFR

MartenR

Thanks, JMFR I have added these lines into the constructor and now it works for me, too. Up to now no more problems.

Marten

Chris

It's sounding good, I'm glad it's working.

For clarification for other people trying the hack, the extra lines should be added at the bottom of the constructor function, line 38 was correct in the file I had here but is perhaps not for other versions of the file. So around line 24 the constructor function should start which should be added to to look like this:

TCP::TCP(int tsocket)
{
  log = Log::getInstance();
  sock = -1;
  connected = 0;
  readTimeoutEnabled = 1;

  if (tsocket)
  {
    sock = tsocket;
    connected = 1;
    int writeBufferSize = 1000;               // new line!
    setsockopt(sock, SOL_SOCKET, SO_SNDBUF, &writeBufferSize, sizeof(int));              // new line!
  }
}

Wesie

Its work !!!
LiveTV and Records over :
VDR=cable Network 100MBit -> Switch -> Router SMS2804V2..... WLAN-Bridge..... SMS2804V2->MVP

Radio does not work in this moment, but this it not new .

THANKS FOR the CHANGE CODE

VOMP from CVS 16.10.05 Dongle 0.0.15

kdeiss

Also works fine with wlan g+ (dvb-s live and recordings). vdr 1.26 / dongle 15 / plugin from cvs.

Thanks for that patch.

klaus