spacer
spacer search

SwissCenter

Search
spacer
Main Menu
Home
Documentation + FAQ
Screenshots
Downloads
Forums
Bug Tracking
History
Login
Username

Password

Remember me
?
No account yet?

Locations of visitors to this page

 
Home arrow Forums

SwissCenter Forums  


Simese and Popcorn Hour - 2008/06/16 23:56 I am the author of the mvpmcx2 native client application for the PCH and I was wondering if this is the correct forum for asking Simese server questions? I am successfully using Simese for streaming media with the GBPVR GUI, which bodes well for other people wanting to write alternate GUI front ends but Simese doesn't seem to handle streams that grow (ie live tv and internet radio). Is this a known limitation with other clients?

For the record and to add balance I don't agree with Stu2j's negative comments about the PCH. I do think gaya can improved which is why I am working on mvpmc in the first place.

Martin
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/17 09:57 I don't agree with Stu2j's negative comments about the PCH
Anyone who is interested certainly doesn't have to take anyone's word for it. They can go to the PCH forums and read all about the problems and limitations of the player.
Showcenters 1000g/200/250HD Popcorn Hour A-100
Netgear HDX101 Powerline Adapters
Windows XP Simese 2.07 running latest SVN
NAS Server IBM NetVista 900Mhz/256RAM


  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/17 10:37 Simese doesn't seem to handle streams that grow (ie live tv and internet radio).
I've never tried live tv but internet radio plays well with Simese/SwissCenter. I'm sure marco (Simese author) will comment further when available.

Nigel
Player : Netgear EVA700 & Popcorn A-100 (081224)
Server : Vista SP1 Home Premium (Simese 2.06, SwissCenter current SVN)
Spec : Intel C2Q Q6600, 2GB RAM, 2Tb storage.
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/17 11:17 Simese doesn't seem to handle streams that grow (ie live tv and internet radio).

Are you aware that on the older syabas players you have to send special markup to the player to inform it that you are sending it a file that is constantly changing? You also have to update the player with the stream size by posting to an URL on the player itself.

That may have changed with the PCH, but from the minimal documentation that syabas have supplied it does still seem to be the case.

Rob
Player : Pinnacle Showcenter 200 (wired ethernet)
Server : HP MediaSmart EX470 NAS (Windows Home Server / Sempron CPU / 2Gb RAM / 2.0 Tb Storage).

  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/17 12:40 Thanks, I will wait and see if I need to add some identifier to the URL. There's a significant problem with several file types to because simese is sending twice as much data as necessary.

Martin
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/18 03:29 Hi,

emveepee wrote:
I am successfully using Simese for streaming media with the GBPVR GUI, which bodes well for other people wanting to write alternate GUI front ends but Simese doesn't seem to handle streams that grow (ie live tv and internet radio). Is this a known limitation with other clients?
I don't use my media player for playing streams so I don't know anything about it's limitations. Can you describe the problem? Or even provide a test case so I can take a look at it?

Marco.
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/18 12:46 marco wrote:
Hi, Can you describe the problem? Or even provide a test case so I can take a look at it?

Marco.


Hi. Sure just let me know what you need.

The two problems that I see (I haven't tried sniffing yet)

1. For live content you probably return content-length on dynamic files. I would be suspicious on any content under 2M A test for write access might help on small files two.

2. For byte range requests on AVI MP4 etc, I think you are returning 1 less byte than the PCH is expecting GBPVR originally had a similar problem. The http protocol says to return end-start + 1 bytes of data

Martin
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/19 03:36 emveepee wrote:

1. For live content you probably return content-length on dynamic files. I would be suspicious on any content under 2M A test for write access might help on small files two.

Streaming is done by the PHP script, but it might be possible a content-length is written. I'll take a look at this.

2. For byte range requests on AVI MP4 etc, I think you are returning 1 less byte than the PCH is expecting GBPVR originally had a similar problem. The http protocol says to return end-start + 1 bytes of data
Which Simese version did you test, the 1.x or the 2.x? A quick look at the code indicates the 1.x code could be wrong indeed. The 2.x version uses a completely different webserver and I'm quite sure this one does send the correct length. I'll take a look at the 1.x code later.

Marco.
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/19 08:10 I used 1.45 as that is what is marked current version on the matdev web site. I don't see a a standalone version 2.

As for php script I am not sure I understand what you mean. I am using GBPVR as a gui server with my own client on the PCH, which asks the PCH player (mono) to open files by http.

Martin
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/19 20:50 Ok. I found a thread with 2.04 debug and it does fix the short byte range problem with avi, mp4 etc. For sure 1.45 shouldn't be used with the Popcorn hour

However 2.04 is worse with dynamic streams because it looks like it wants exclusive read access.

Code:

  Last-ModifiedFri20 Jun 2008 00:11:31 GMT ServerSimese 2.04 (debug) 8:11:43 PMSystem Error.  Code32. The process cannot access the file because it is being used by another process 8:11:43 PM: [00412804SysUtils.RaiseLastOSError 8:11:43 PM: [0041278DSysUtils.RaiseLastOSError 8:11:43 PM: [0041282CSysUtils.RaiseLastWin32Error 8:11:43 PM: [00538116_cWebScripter.TcWebConnection.SendFile (Line 6987"..\..\..\..\Common\Lib\WebServer\_cWebScripter.pas") 8:11:43 PM: [00541454_cBaseWebServer.TcIndyWebConnection.SendFile (Line 902"..\..\..\..\Common\Lib\WebServer\_cBaseWebServer.pas") 8:11:43 PM: [0053F6D3_cBaseWebServer.TcBaseWebserver.InternalSendFile (Line 336"..\..\..\..\Common\Lib\WebServer\_cBaseWebServer.pas") 8:11:43 PM: [00403114System.@GetMem 8:11:43 PM: [00405CFFSystem.@LStrSetLength 8:11:43 PM: [00541C1B_cWebServer.TcWebServer.InternalSendFile (Line 209"..\..\..\..\Common\Lib\WebServer\_cWebServer.pas") 8:11:43 PM: [0053FAFD_cBaseWebServer.TcBaseWebserver.SendFile (Line 401"..\..\..\..\Common\Lib\WebServer\_cBaseWebServer.pas") 8:11:43 PM: [00540162_cBaseWebServer.TcBaseWebserver.DoCommandGet (Line 516"..\..\..\..\Common\Lib\WebServer\_cBaseWebServer.pas") 8:11:43 PM: [00404A15System.@AfterConstruction 8:11:43 PM: [00403114System.@GetMem 8:11:43 PM: [00405648System.@NewAnsiString 8:11:43 PM: [0040568BSystem.@LStrFromPCharLen 8:11:43 PM: [004885D7IdCustomHTTPServer.TIdCustomHTTPServer.DoExecute (Line 615"idCustomHTTPServer.pas") 8:11:43 PM: [00488767IdCustomHTTPServer.TIdCustomHTTPServer.DoExecute (Line 652"idCustomHTTPServer.pas") 8:11:43 PM: [004800DCIdTCPServer.TIdPeerThread.Run (Line 892"idTCPServer.pas") 8:11:43 PM: [00436F5CSyncObjs.TCriticalSection.Release 8:11:43 PM: [00436F6ESyncObjs.TCriticalSection.Leave 8:11:43 PM: [0047D3D4IdThread.TIdThread.Execute (Line 208"IdThread.pas") 8:11:43 PM: [0047D425IdThread.TIdThread.Execute (Line 217"IdThread.pas") 8:11:43 PM: [0047D442IdThread.TIdThread.Execute (Line 220"IdThread.pas") 8:11:43 PM: [0047D46CIdThread.TIdThread.Execute (Line 225"IdThread.pas") 8:11:43 PM: [00427A90Classes.ThreadProc 8:11:43 PM: [004054ECSystem.ThreadWrapper



Martin
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/20 05:52 emveepee wrote:
However 2.04 is worse with dynamic streams because it looks like it wants exclusive read access.
I wonder what file Simese wants to stream, because the code does a shared read. I've tested it and I can open the same file simultaneously multiple times. So I guess something else must have a write lock on the file.

But I don't get the 'dynamic stream' part. If you open a dynamic stream, it isn't a file, right? Or did I miss something

Marco.
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/20 07:52 By dynamic stream I simply mean a file being streamed or written to disk. The two situations I tested are an internet radio stream and a digital mpeg-ts stream being stored to a temporary file that simese is requested to open and send back to the pch.

In both cases the file is being written by another application. I uploaded z zip of the log, I don't know why it has such a weird filename.

In 1.45 this isn't a problem, the problem is the content-length.

Martin
File Attachment:
File name: d6db91e7cb44ab47a8bda7519cb0d4dc.
File size:1484 bytes
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/20 10:26 Ok, now I get it. I didn't realize the streaming file was local. So you say some application is writing the file and during the writing Simese must read the same file. At the start, the filesize is not correct (and thus the content-length cannot be sent) and you must keep reading data until the OS returns an error.

Marco.
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/20 11:13 That's correct. In reality it turns out the content-length issue is only a problem now when the file is less than 2 MB because that is the internal buffer size on the PCH and if it doesn't fill the buffer initially it just reads from the buffer and never tries to read anymore.

The good thing with the current access error is you do know when the file is being written by another app, ie when content-length should not be sent, and then you can try a read-only method of opening the file.

Martin
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/20 14:37 Hi,

I've made a few adjustments in this version. It will test if the file is locked, if so, the content-length will not be sent. In this situation the server will send data as long as data is available. So if the streaming server falls behind, it will stop the stream.

It hasn't been tested, just a few simulated 'I lock this file and see what happens'-scenarios, so let me know if any problems arise.

Marco.
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/20 17:35 This is very close. It works great with "live" mpeg ts now and starts playing net radio but for some reason it returns a content-length of zero on the net radio after a period of time. I have attached logs of each.



Martin
File Attachment:
File name: simese.zip
File size:2478 bytes
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/21 06:22 Ah, the log file helps a lot. The changes I made only work for complete files and since the last request contains a range the 'ignore content-length' is not applied. I'll make the changes more generic to support this situation as well.

However, I guess something else is wrong in the last Simese radio item. I guess Simese returns a 'Requested Range not Satisfiable' error (I'll add the response number to the log). The client does a request of 'Range: bytes=524288-' and I think the file size on request is less than 524288. So I guess Simese should wait until the file reaches the requested size (but for how log....).

Marco.
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/21 10:02 Assuming you are getting EAGAIN or WSAEWOULDBLOCK errors I think you can wait several seconds. I know when buffering some 32 Mb AAC streams the PCH can actually be silent for thirty seconds until it has enough playing and the source http read is bursty.

Martin
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/21 10:41 The link above contains an updated Simese version which will wait until the stream grows to the requested start range. Also it will retry to read data from the stream a few times after the end of the stream has been reached to make sure no data added any more.

Marco.
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/21 11:04 Ok, TV is now better I noticed a problem with lower bit rate SD afterday yesterday's post. The delay on the read for internet might not be long enough though lots of response 206 and then the PCH stops streaming.

Martin
File Attachment:
File name: 84a67e9baf4560e46e1b5962f791b846.
File size:1093 bytes
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/21 11:32 I forgot something, the content-range is not correct for streaming files.
If the request contains 'Range: bytes=557056-', currently 'Content-Range: bytes 557056-0/573440' is returned and I think something like 'Content-Range: bytes */*' should be returned. As far as I can see the Content-Range: bytes 557056-*/*' is not an option.

I'll change this tomorrow and post an update.

Marco.
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/22 09:13 I uploaded an updated version.

Marco.
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/22 10:42 No luck this time either. Logs attached. Would you like to see an ethereal dump of how GBPVR's server is responding to the same requests?


Martin
File Attachment:
File name: 3d6ade92c0bb6a51026a1ff35c6b18dd.
File size:984 bytes
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/22 11:46 The way GBPVR responds is

HTTP/1.1 200 OK
Server: GB-PVR
Connection: Close
Content-Type: application/octet-stream

One thing I noticed is it doesn't do the second seek that audio/x-mpg does. Perhaps this an attempt to read the id3 tag? In any case is you are determining the content-type solely by extension there will be problem with AAC Internet radio, because the temp file name stays the same.

Martin
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/23 12:20 I've no idea what can be wrong...so indeed, maybe a dump will show something new. Let's try that.

Marco.
  | | The administrator has disabled public write access.
Re: Simese and Popcorn Hour - 2008/06/23 19:24 Thanks, I had to upload it here:

http://mvallevand.googlepages.com/simese.zip

Note let me know if you can take 7z files. It would shrink the download from 1.4MB to 800K

Martin
  | | The administrator has disabled public write access.
spacer
 

Screenshots

www.flickr.com
This is a Flickr badge showing public photos from swisscenter. Make your own badge here.


 

Mambo is Free Software released under the GNU/GPL License.
spacer