Silverlight quality issue

Asked by Simon

I'm not 100% if this is directly a pipelight issue but putting it out there should help to confirm what it is/is not.

So I have pipelight and silverlight5.0 working, if I use the silverlight 'Bubbles' test page (http://bubblemark.com/sl3/TestPage.html) I get around 49fps most of the time but if I use the 'Smooth Streaming' test page (http://www.iis.net/media/experiencesmoothstreaming) I get 12fps most of the time and that's with it starting to stream with a high bitrate and then dropping the bitrate to 350kbps with no improvement of fps.

So initially I thought fair enough I have old hardware (Core 2 E7300 + Geforce 8600GT + 4GB RAM) but it's not as I suffer with poor frame rates with local files. I am on a 20+MB adsl connection so that also shouldn't be an issue. This isn't isolated to that demo either BTSport behaves exactly the same, starts in HD, you can see that the framerate could be better but then drops after approx 10seconds to a god awful bitrate(NESmode) with no noticeable improvement in fps.

Some facts about my setup:
No UA Switch - Nothing works if I switch from default
Silverlight 5.0 instead of 5.1
CPU usage stays low even when streaming
Mozilla Firefox 27.01
Ubuntu 13.10
Latest Pipelight from PPA with old wine-compholio as new version breaks silverlight completely

This is what I get if I run silverlight streaming content
[PIPELIGHT:LIN:unknown] attached to process.
[PIPELIGHT:LIN:unknown] checking environment variable PIPELIGHT_SILVERLIGHT5_0_CONFIG.
[PIPELIGHT:LIN:unknown] searching for config file pipelight-silverlight5.0.
[PIPELIGHT:LIN:unknown] trying to load config file from '/home/fielden/.config/pipelight-silverlight5.0'.
[PIPELIGHT:LIN:unknown] sandbox not found or not installed!
[PIPELIGHT:LIN:silverlight5.0] GPU driver check - Your driver is supported, hardware acceleration enabled.
[PIPELIGHT:LIN:silverlight5.0] using wine prefix directory /home/fielden/.wine-pipelight/.
[PIPELIGHT:LIN:silverlight5.0] checking plugin installation - this might take some time.
[install-dependency] wine-silverlight5.0-installer is already installed in '/home/fielden/.wine-pipelight/'.
[install-dependency] wine-mpg2splt-installer is already installed in '/home/fielden/.wine-pipelight/'.
[install-dependency] wine-wininet-installer is already installed in '/home/fielden/.wine-pipelight/'.
wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"
err:wineboot:ProcessRunKeys Error running cmd L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2)
[PIPELIGHT:WIN:silverlight5.0] embedded mode is on.
[PIPELIGHT:WIN:silverlight5.0] windowless mode is off.
[PIPELIGHT:WIN:silverlight5.0] linux windowless mode is off.
[PIPELIGHT:WIN:silverlight5.0] force SetWindow is off.
[PIPELIGHT:WIN:silverlight5.0] unity hacks is off.
[PIPELIGHT:WIN:silverlight5.0] window class hook is on.
[PIPELIGHT:WIN:silverlight5.0] replaced API function CreateWindowExA.
[PIPELIGHT:WIN:silverlight5.0] replaced API function CreateWindowExW.
[PIPELIGHT:WIN:silverlight5.0] replaced API function TrackPopupMenuEx.
[PIPELIGHT:WIN:silverlight5.0] replaced API function TrackPopupMenu.
fixme:advapi:RegisterTraceGuidsW (0x2b1f07, 0x34f118, {aa087e0e-0b35-4e28-8f3a-440c3f51eef1}, 1, 0x66f5f8, (null), (null), 0x34f118): stub
[PIPELIGHT:WIN:silverlight5.0] init successful!
[PIPELIGHT:LIN:silverlight5.0] using timer based event handling.
[PIPELIGHT:LIN:silverlight5.0] nppfunctions.c:436:NPP_New(): malformed argument 'PARAM' -> '(null)'
fixme:advapi:CreateProcessAsUserW 0xf0 L"C:\\Program Files\\Silverlight\\5.0.61118.0\\agcp.exe" L"agcp.exe 8 232" (nil) (nil) 1 0x00004000 (nil) (null) 0x66f098 0x66f088 - semi-stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:file:K32GetMappedFileNameW (0xffffffff, 0x4015f4, 0x50e1f4, 520): stub
fixme:urlmon:Uri_GetPropertyBSTR (0xfa57f0)->(6 0x66deb4 4)
fixme:process:GetNumaHighestNodeNumber (0x66e950): stub
fixme:thread:SetThreadStackGuarantee (0x6code from a recent 6e940): stub
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e4e0, (nil) 0x66e4d8
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e4e0, (nil) 0x66e4d8
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e550, (nil) 0x66e548
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e4d4, (nil) 0x66e4cc
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e4d4, (nil) 0x66e4cc
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e550, (nil) 0x66e548
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e734, (nil) 0x66e72c
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e734, (nil) 0x66e72c
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e734, (nil) 0x66e72c
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e734, (nil) 0x66e72c
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e734, (nil) 0x66e72c
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e734, (nil) 0x66e72c
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e1d4, (nil) 0x66e1cc
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e1d4, (nil) 0x66e1cc
fixme:thread:GetThreadPreferredUILanguages 48, 0x66d588, (nil) 0x66d580
fixme:thread:GetThreadPreferredUILanguages 48, 0x66d588, (nil) 0x66d580
fixme:thread:GetThreadPreferredUILanguages 48, 0x66d5f8, (nil) 0x66d5f0
fixme:thread:GetThreadPreferredUILanguages 48, 0x66d56c, (nil) 0x66d564
fixme:thread:GetThreadPreferredUILanguages 48, 0x66d56c, (nil) 0x66d564
fixme:thread:GetThreadPreferredUILanguages 48, 0x66d5f8, (nil) 0x66d5f0
fixme:thread:GetThreadPreferredUILanguages 48, 0x66ec20, (nil) 0x66ec18
fixme:thread:GetThreadPreferredUILanguages 48, 0x66ec20, (nil) 0x66ec18
[PIPELIGHT:LIN:silverlight5.0] unscheduled event timer.
fixme:process:FlushProcessWriteBuffers : stub
fixme:thread:GetThreadPreferredUILanguages 48, 0x466d718, (nil) 0x466d710
fixme:thread:GetThreadPreferredUILanguages 48, 0x466d718, (nil) 0x466d710
fixme:thread:GetThreadPreferredUILanguages 48, 0x466d718, (nil) 0x466d710
[PIPELIGHT:LIN:silverlight5.0] nppfunctions.c:436:NPP_New(): malformed argument 'PARAM' -> '(null)'
fixme:urlmon:Uri_GetPropertyBSTR (0x4172af8)->(6 0x66deb4 4)
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e4e0, (nil) 0x66e4d8
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e4e0, (nil) 0x66e4d8
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e550, (nil) 0x66e548
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e4d4, (nil) 0x66e4cc
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e4d4, (nil) 0x66e4cc
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e550, (nil) 0x66e548
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e734, (nil) 0x66e72c
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e734, (nil) 0x66e72c
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e734, (nil) 0x66e72c
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e734, (nil) 0x66e72c
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e734, (nil) 0x66e72c
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e734, (nil) 0x66e72c
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e1d4, (nil) 0x66e1cc
fixme:thread:GetThreadPreferredUILanguages 48, 0x66e1d4, (nil) 0x66e1cc
fixme:thread:GetThreadPreferredUILanguages 48, 0x66d588, (nil) 0x66d580
fixme:thread:GetThreadPreferredUILanguages 48, 0x66d588, (nil) 0x66d580
fixme:thread:GetThreadPreferredUILanguages 48, 0x66d5f8, (nil) 0x66d5f0
fixme:thread:GetThreadPreferredUILanguages 48, 0x66d56c, (nil) 0x66d564
fixme:thread:GetThreadPreferredUILanguages 48, 0x66d56c, (nil) 0x66d564
fixme:thread:GetThreadPreferredUILanguages 48, 0x66d5f8, (nil) 0x66d5f0
fixme:thread:GetThreadPreferredUILanguages 48, 0x66ec20, (nil) 0x66ec18
fixme:thread:GetThreadPreferredUILanguages 48, 0x66ec20, (nil) 0x66ec18
fixme:winediag:AUDDRV_GetAudioEndpoint Winepulse is not officially supported by the wine project
fixme:winediag:AUDDRV_GetAudioEndpoint For sound related feedback and support, please visit http://ubuntuforums.org/showthread.php?t=1960599
fixme:dsound:DSOUND_WaveFormat Limiting channels to 2 due to lack of multichannel support
fixme:pulse:AudioRenderClient_GetBuffer 0x6e117e8 Not using pulse locked data: 0 8187/38400 0/38400
NOTE: child process received `Goodbye', closing down

Question information

Language:
English Edit question
Status:
Solved
For:
Pipelight Edit question
Assignee:
No assignee Edit question
Solved by:
Simon
Solved:
Last query:
Last reply:
Revision history for this message
Sebastian Lackner (slackner) said :
#1

Hi,

the problem with wine-compholio is already fixed, so you should be able to use the latest version again. (1.7.13-1) Which version of Pipelight are you using exactly? The latest one is (at the time of writing) 0.2.5. There were some speed improvements during the last time, so if you still have an older version I would recommend to upgrade and test again. You can find out your current version by running:

dpkg --list | grep pipelight

Do you also experience sound problems after some times, or is it only the framerate? If the sound is affected, too, the real problem could probably have to do with that. Silverlight tries to adjust the frame rate to the sound speed and things like that, so a problem with sound often also results in bad video playback.

Are you maybe connecting via WiFi or have a lot of package loss with your connection? I would suggest you to run "ping google.de" (or with some other domain) for some time. When you abort it again (ctrl+C) you see some statistics, including the packet loss. If the packet loss is too high its normal that TCP reduces the connection speed. It might be possible to improve the playback by using a wired connection instead, or some other tricks.

One additional note: Using the Silverlight fullscreen button often works much better, than manually resizing the browser to fullscreen. Not sure which way you've tested it though.

I hope that some of these ideas help, if not just report back.

Sebastian

Revision history for this message
Simon (simontipping21) said :
#2

Thanks for getting back to me.

Only have ssh access to the affected machine at the moment so I can't test the updated version but I will answer everything else and get back to you.

When I run
dpkg --list | grep pipelight

rc pipelight 0.2.4.2~ubuntu13.10.1 amd64 allows usage of Silverlight through Wine
ii pipelight-multi 0.2.5~ubuntu13.10.1 amd64 allows usage of Windows NPAPI plugins through Wine

I could be wrong but I think this means there is some sort of installation conflict as it looks like two versions are installed but if I run sudo apt-get remove pipelight

Package 'pipelight' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded

Although I am unfamiliar with the 'rc' and 'ii' tags so if you could clarify this that would be great.

Also the machine is connected by cable to the LAN and get minimal packet loss after a long period of running so I don't think that this is causing the issue

Revision history for this message
Sebastian Lackner (slackner) said :
#3

Hi,

there is no conflict between pipelight and pipelight-multi, the pipelight package is just a wrapper to install "pipelight-multi" and enable Silverlight.

'ii' means installed and 'rc' means that there are some config files remaining somewhere on your hard disk, but this shouldn't be a problem.

It would be nice if you could test the remaining things later, when you have access to the machine again.

Sebastian

Revision history for this message
Simon (simontipping21) said :
#4

Thanks for explaining that, I have been toying with linux for a years but this is my first long term install for a htpc so apologies for lack of understanding on some issues.

So I gave BTSport a run and the issues still persists with pipelight showing as 0.2.5 and I have also changed the graphics card to a 9800 GT. The sound is fine, no issues at all and all other streaming works fine.

Simon

Revision history for this message
Sebastian Lackner (slackner) said :
#5

Well, based on what you've tested so far I think its either a problem with GPU acceleration or with the internet connection itself.

To check the internet connection:

> I would suggest you to run "ping google.de" (or with some other domain) for some time.
> When you abort it again (ctrl+C) you see some statistics, including the packet loss. If the
> packet loss is too high its normal that TCP reduces the connection speed. It might be
> possible to improve the playback by using a wired connection instead, or some other tricks.

To check if it has something to do with GPU acceleration:

What is the output of "glxinfo" ? Which graphic driver do you use (open-source or proprietary)?

Revision history for this message
Simon (simontipping21) said :
#6

Just ran ping for 397 packets with 0% loss and other internet apps work fine, bbc iplayer hd for example.

Using nvidia proprietary driver, ran glxinfo and posted link to output file below as it has many lines!

https://www.dropbox.com/s/p25ay1lqb5n303s/glxoutput

Revision history for this message
Michael Müller (mqchael) said :
#7

Hi,

how did you install the nvidia driver? As debian package or with the nvidia installer provided on their website? If you used the original installer by nvidia make sure that you also installed the 32 bit libraries when the install scripts asked you.

Michael

Revision history for this message
Simon (simontipping21) said :
#8

I installed nvidia driver using the additional drivers part of the settings module in Ubuntu 13.10 so I believe that the 32bit libraries should automatically of been installed?

Simon

Revision history for this message
Simon (simontipping21) said :
#9

So I just had an idea:

You stated that silverlight sinks with the audio?

I am currently using a creative usb sound card for my surround setup, I had to disable timer based scheduling in order to stop issues with the sound cracking and popping (see here: https://wiki.archlinux.org/index.php/PulseAudio#Realtime_scheduling)

So I removed the tsched=0 line to enable timer based scheduling and hey presto I get 24 fps with good quality in the live streaming demo and btsport will now stream in hd! I'm going to move over to the onboard sound so hopefully I won't need to disable it again.

If you have any thoughts on this or want to include in the faq for others that would be great.

Cheers

Simon

Revision history for this message
dmnmsc (demonmusic-m) said :
#10

Simon, I LOVE YOU!!

Finally I can use pipelight with pulseaudio without playback issues.

Just a note: I did the trick on ~/.pulse/default.pa (home directory). Just changed "load-module module-udev-detect tsched=0" to "load-module module-udev-detect"