[Release] MLBMC - a Major League Baseball (video) add-on

  Thread Rating:
  • 3 Votes - 4.67 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
dan1son Offline
Fan
Posts: 608
Joined: Dec 2008
Reputation: 0
Post: #46
Well I don't know python at all, but I just recreated that section of the code on a box and it hangs on "fifo = open(filename, 'w')"

My guess is open(filename, 'w') fails on a fifo. It doesn't look like you're using the file object you make there anyway. I'll try commenting out the open( command and see if it works. I don't think you need to open it for writing since mlbhls will do that anyway, but I could be wrong.

EDIT:
http://www.velocityreviews.com/forums/t3...nging.html

So there we go... opening the file for writing hangs until something opens it for reading. If you don't open it for writing at the line "fifo = open(..." then mlbhls should run in its own thread, open it for writing and the play( command will open it for reading which should make mlbhls start pumping.

My guess is if you open it with mplayer that fifo = open(... line will finish and then mlbhls will start immediately after that which makes it play, but then xbmc tries to open it and fails because it's already open.
(This post was last modified: 2011-08-31 21:12 by dan1son.)
find quote
divingmule Offline
Skilled Python Coder
Posts: 1,297
Joined: Oct 2008
Reputation: 61
Post: #47
Hey, thanks for helping out. I can't believe it was that simple Smile but committing out or removing the else statement and I'm watching the NexDef stream in XBMC.

Code:
except OSError, e:
                    print "Failed to create FIFO: %s" % e
                #else:
                   # fifo = open(filename, 'w')

Anyone who want to try, this code is found around line 720 of the default.py.
find quote
dan1son Offline
Fan
Posts: 608
Joined: Dec 2008
Reputation: 0
Post: #48
Glad I could help out. Thanks for testing it before I could Smile.

This means I'll get to watch the game in HD when I get home from work.
find quote
dan1son Offline
Fan
Posts: 608
Joined: Dec 2008
Reputation: 0
Post: #49
Hey it works!

Seems to stream just fine for a while then whenever the stream hiccups it requires a manual recover. Not sure if it's mlbhls stopping or xbmc player not trying again if it stops. Not a whole lot in the logs about something going casters up so I'm not sure how easy it'll be to recover from.
find quote
divingmule Offline
Skilled Python Coder
Posts: 1,297
Joined: Oct 2008
Reputation: 61
Post: #50
Hi, if the player stops we pkill mlbhls and cleanup the temp files. You can keep this from happening if you commit out this line
Code:
MyPlayer().onPlayBackStarted(filename,tmpdir)

If you have any ideas on how to handle it better, let me know.
find quote
sdsnyr94 Offline
Fan
Posts: 512
Joined: Aug 2009
Reputation: 2
Location: Greensboro, NC
Post: #51
What if you delayed playback for 30 seconds or so, basically building up a buffer? Would the playback then be able to handle a couple of hiccups through the course of the game?
find quote
divingmule Offline
Skilled Python Coder
Posts: 1,297
Joined: Oct 2008
Reputation: 61
Post: #52
sdsnyr94 Wrote:What if you delayed playback for 30 seconds or so, basically building up a buffer? Would the playback then be able to handle a couple of hiccups through the course of the game?

I haven't taken the time to really test this in eden, but with dharma I could totally loose my internet connection and everything would kind of pause and as soon as it came back up it would start playing again. This happens to me a lot, internet drops for a few seconds up to maybe 30 seconds then comes back up:mad:.

I don't think you can delay playback per se but you can set a buffer when opening the pipe.
Code:
Popen(target, shell=True, bufsize=-1).stdin
I have it set at -1 witch means system default. From the documentation
Quote:bufsize, if given, has the same meaning as the corresponding argument to the built-in open() function: 0 means unbuffered, 1 means line buffered, any other positive value means use a buffer of (approximately) that size. A negative bufsize means to use the system default, which usually means fully buffered. The default value for bufsize is 0 (unbuffered).

Note:
If you experience performance issues, it is recommended that you try to enable buffering by setting bufsize to either -1 or a large enough positive value (such as 4096).

I couldn't really tell a difference between 0 & -1 , but if you guys want to play around with it let me know what you figure out.
find quote
sdsnyr94 Offline
Fan
Posts: 512
Joined: Aug 2009
Reputation: 2
Location: Greensboro, NC
Post: #53
If your using mlbhls, your starting playback from the beginning of the temp file that is created... so if you let that temp file build for 30 seconds before playing, theoretically you would be creating a bit of a buffer.

My thought would be that after you select the home/away feed, a message (only on Nexdef feeds) comes up that says something like "Building Buffer..." and playback begins after that file has grown a little bit.

The Flash feeds of course you could not do this.
(This post was last modified: 2011-09-01 22:43 by sdsnyr94.)
find quote
BrianVeg Offline
Junior Member
Posts: 2
Joined: Sep 2011
Reputation: 0
Post: #54
Any idea how to get HD games in Windows?
find quote
divingmule Offline
Skilled Python Coder
Posts: 1,297
Joined: Oct 2008
Reputation: 61
Post: #55
sdsnyr94 Wrote:If your using mlbhls, your starting playback from the beginning of the temp file that is created... so if you let that temp file build for 30 seconds before playing, theoretically you would be creating a bit of a buffer.

In this case the temp file isn't a normal file, it's a fifo/pipe. When I originally tried with a normal file I couldn't play the file from the addon. If I remember correctly, exiting the addon then you could play the file. With the pipe It doesn't start downloading until the player opens the file.

@BrianVeg, We would need to get the mlbhls client working in windows. I tried to compile it in windows but couldn't meet all the dependencies.
find quote
divingmule Offline
Skilled Python Coder
Posts: 1,297
Joined: Oct 2008
Reputation: 61
Post: #56
Update Version - dharma 0.0.4, eden 1.0.1
added many new categories and a search function
fixed an issue with request headers

New NexDef mod. files - http://mlbmc-xbmc.googlecode.com/files/NexDef-Mod-0.3
find quote
WildBill Offline
Senior Member
Posts: 229
Joined: Aug 2011
Reputation: 3
Post: #57
Is there away that you can add today condense games?
find quote
clubwerks Online
Posting Freak
Posts: 868
Joined: Dec 2010
Reputation: 0
Post: #58
Holy cow, this is the best thing ever.

[Image: watched-fanart.jpg]
find quote
divingmule Offline
Skilled Python Coder
Posts: 1,297
Joined: Oct 2008
Reputation: 61
Post: #59
WildBill Wrote:Is there away that you can add today condense games?

I don't think they are available until the next day.
find quote
WildBill Offline
Senior Member
Posts: 229
Joined: Aug 2011
Reputation: 3
Post: #60
divingmule Wrote:I don't think they are available until the next day.
I checked yesterday on mlb.mlb.com/mediacenter/?&affiliateId=mlbMENU and all the day games were available around 6 EST
find quote
Post Reply