12.1 upgrade breaks flash streams (SOLVED)
#1
Bug 
It seems something changed between 12.0 and 12.1 because bog standard NASA flash streams fail to work on 12.1
Tested both on Raspbmc 12.1 and Openelec 3.0 (12.1)

test stream
http://nasa-f.akamaihd.net/public_h264_200@54826
(copy paste it in a .strm file)

ticket with debug log here:
http://trac.xbmc.org/ticket/14224


my crappy deduction,

on 12.1 I think something changed with either curl or FFMPEG
Meaning, on the old working version (12.0), curl fails in the range (seek) command (error 33) and therefor xbmc goes on with FFMPEG estimating the stream on its own and working.

curl on the new version doesn't crash and starts doing the ranging (seek) but gets into a loop (?) which fails and FFMPEG then seems to fail in getting the stream detail it needs to play the stream which fails.

Help Smile

P.S.
For people reading along, this also breaks ustream and the official XBMC NASA add-on
Reply
#2
Does this fail on other xbmc platforms on 12.1 (i.e. iOS/Windows?)

This change to 12.1 is a possibility:
https://github.com/xbmc/xbmc/commit/169d...3734a763f0
Reply
#3
(2013-03-27, 13:40)popcornmix Wrote: Does this fail on other xbmc platforms on 12.1 (i.e. iOS/Windows?)

This change to 12.1 is a possibility:
https://github.com/xbmc/xbmc/commit/169d...3734a763f0

Thanks for your reply,
I'm at work currently, so i'm slow, i'll try in a second on windows

Indeed the change you mention above changes the range request where it doesn't fail anymore, however, when it gets a range, it seems to loop or keeps requesting it in a way that FFMPEG can't get the stream details and the stream fails to play.

P.S.
As this is a live stream, I remember some PR about adding parameters to a stream (UDP) but not sure if it made it into 12.1
EDIT: This one
https://github.com/xbmc/xbmc/pull/2426

the issue is telling xbmc/ffmpeg that this is a live stream and to disable seeking, if ffmpeg/xbmc is clever enough (or the server stupid enough not to explain the stream properly) the PR above would help indicate that this is a live stream and no need to seek.
Reply
#4
Confirmed, same problem on win32

Debug Log here:

http://pastebin.com/HadxQYbc
Reply
#5
Also MP4 streams not runs in this version on raspberry pi.
(for example, from streamcloud)
Reply
#6
(2013-03-27, 13:40)popcornmix Wrote: Does this fail on other xbmc platforms on 12.1 (i.e. iOS/Windows?)

This change to 12.1 is a possibility:
https://github.com/xbmc/xbmc/commit/169d...3734a763f0

Nope, it's not: it was never merged to 12.1
-= Team Kodi developer fueled by heavy metal =-
Reply
#7
(2013-03-28, 20:49)arnova Wrote:
(2013-03-27, 13:40)popcornmix Wrote: Does this fail on other xbmc platforms on 12.1 (i.e. iOS/Windows?)

This change to 12.1 is a possibility:
https://github.com/xbmc/xbmc/commit/169d...3734a763f0

Nope, it's not: it was never merged to 12.1

Do we have a trick on github to show changes since 12.0 ? I can go through them and have a look.

thanks

P.S.
That commit was tagged 12.1 btw ? and committed by S. Davilla committed 18 days ago
https://github.com/xbmc/xbmc/commits/12.1-Frodo

and that change is in the current master
https://github.com/xbmc/xbmc/blob/master...rlFile.cpp

also
https://github.com/xbmc/xbmc/pull/2187


So now i'm lost as to what went into 12.1 according to github ??
Reply
#8
Correction: It seems like my commit somehow got merged to 12.1 by accident.
-= Team Kodi developer fueled by heavy metal =-
Reply
#9
(2013-03-28, 22:28)arnova Wrote: Correction: It seems like my commit somehow got merged to 12.1 by accident.

Thought so ;-)

So, does it make sense to revert, ie will this fix this issue, or leave it in and see if we can make it work somehow
(I'm assuming the later as your patch does fix the crashing of curl (error 33) on range/seek)
Reply
#10
@arnova,

Last time I was a dev, turbo pascal was still hip, so excuse the dust, but looking at the log files again, am I correct to say that now that the range seek is working, it tries to get the range (which it shouldn't do on a live stream like this btw) but it never gets there and due to this "timeout" FFMPEG never gets the input it needs to figure out the stream ?

if so, is there a way for curl to figure out if the stream is live, or can we use something like the patch below but changed for tcp streams ?
https://github.com/xbmc/xbmc/pull/2426
Reply
#11
(2013-03-29, 11:24)Jester Wrote: @arnova,

Last time I was a dev, turbo pascal was still hip, so excuse the dust, but looking at the log files again, am I correct to say that now that the range seek is working, it tries to get the range (which it shouldn't do on a live stream like this btw) but it never gets there and due to this "timeout" FFMPEG never gets the input it needs to figure out the stream ?

if so, is there a way for curl to figure out if the stream is live, or can we use something like the patch below but changed for tcp streams ?
https://github.com/xbmc/xbmc/pull/2426

The strange thing is: with the old range method Curl used to generate an error telling "Can't do range". With the new method somehow this doesn't happen, that's what puzzles me. Can someone provide a full debug log of when it was still working?
-= Team Kodi developer fueled by heavy metal =-
Reply
#12
(2013-03-29, 14:38)arnova Wrote:
(2013-03-29, 11:24)Jester Wrote: @arnova,

Last time I was a dev, turbo pascal was still hip, so excuse the dust, but looking at the log files again, am I correct to say that now that the range seek is working, it tries to get the range (which it shouldn't do on a live stream like this btw) but it never gets there and due to this "timeout" FFMPEG never gets the input it needs to figure out the stream ?

if so, is there a way for curl to figure out if the stream is live, or can we use something like the patch below but changed for tcp streams ?
https://github.com/xbmc/xbmc/pull/2426

The strange thing is: with the old range method Curl used to generate an error telling "Can't do range". With the new method somehow this doesn't happen, that's what puzzles me. Can someone provide a full debug log of when it was still working?

debug log of a fresh install of win32 xbmc 12.0 where it still works

http://pastebin.com/Cxqg9rGB

P.S.
Isn't this because you now use CURLOPT_RANGE instead of CURLOPT_RESUME_FROM_LARGE during a http seek event (which, again, it technically shouldn't do a seek, because this is a live stream)
Reply
#13
Thanks to arnova and ulion,

issue is fixed and merged here
http://trac.xbmc.org/changeset/63a6dadd4...23ce9a5eb4
Reply
#14
So, the dumb question, is it possible to install a "fixed" version from any PPA now?

EDIT: resolved - https://launchpad.net/~wsnipex/+archive/xbmc-xvba
Reply

Logout Mark Read Team Forum Stats Members Help
12.1 upgrade breaks flash streams (SOLVED)0