Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multimedia decoding is crashing FreeRDP when gfx is used #3013

Closed
sebastianuw opened this issue Dec 15, 2015 · 8 comments
Closed

Multimedia decoding is crashing FreeRDP when gfx is used #3013

sebastianuw opened this issue Dec 15, 2015 · 8 comments
Labels
channel:tsmf Deprecated multimedia redirection, disabled in 2.0

Comments

@sebastianuw
Copy link

Hi,

For the last few months I've been experiencing a problem where FreeRDP crashes when I use both multimedia redirection and gfx.

When I run this command

xfreerdp /cert-ignore /v:windows2012r2server /multimedia:decoder:gstreamer /u:user

I can play the Big Buck Bunny videos just fine.

However, if I add gfx into the mix FreeRDP crashes whenever I try playing the videos
xfreerdp /cert-ignore /v:windows2012r2server /multimedia:decoder:gstreamer /gfx /u:user

This is from the latest pull, but I've had this issue for months.

Below is console output:

No gfx (logged in, played video, logged out):

[12:50:03:997] [9358:9359] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpdr
[12:50:03:997] [9358:9359] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpsnd
[12:50:03:997] [9358:9359] [INFO][com.freerdp.client.common.cmdline] - loading channel drdynvc
Password: 
[12:50:10:688] [9358:9359] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel tsmf
[12:50:17:202] [9358:9420] [ERROR][com.freerdp.channels.tsmf.client] - VIDEO: (PLAYING) GST_STATE_CHANGE_ASYNC.
[12:50:17:262] [9358:9420] [ERROR][com.freerdp.channels.tsmf.client] - unknown format:(0).
[12:50:17:262] [9358:9420] [WARN][com.freerdp.channels.tsmf.client] - Format not supported by decoder gstreamer
[12:50:17:279] [9358:9420] [ERROR][com.freerdp.channels.tsmf.client] - VIDEO: (PLAYING) GST_STATE_CHANGE_ASYNC.
[12:50:17:339] [9358:9420] [ERROR][com.freerdp.channels.tsmf.client] - unknown format:(0).
[12:50:17:340] [9358:9420] [WARN][com.freerdp.channels.tsmf.client] - Format not supported by decoder gstreamer
[12:50:25:214] [9358:9359] [ERROR][com.freerdp.core] - ERRINFO_LOGOFF_BY_USER (0x0000000C):The disconnection was initiated by the user logging off his or her session on the server.
[12:50:25:324] [9358:9359] [ERROR][com.freerdp.core.rdp] - DisconnectProviderUltimatum: reason: 3

With gfx (logged in, tried playing video, crash)

[12:49:12:959] [9290:9291] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpdr
[12:49:12:960] [9290:9291] [INFO][com.freerdp.client.common.cmdline] - loading channel rdpsnd
[12:49:12:960] [9290:9291] [INFO][com.freerdp.client.common.cmdline] - loading channel drdynvc
Password: 
[12:49:18:406] [9290:9291] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel tsmf
[12:49:18:406] [9290:9291] [INFO][com.freerdp.channels.drdynvc.client] - Loading Dynamic Virtual Channel rdpgfx
[12:49:23:782] [9290:9294] [ERROR][com.freerdp.channels.tsmf.client] - VIDEO: (PLAYING) GST_STATE_CHANGE_ASYNC.
[12:49:23:859] [9290:9294] [ERROR][com.freerdp.channels.tsmf.client] - unknown format:(0).
[12:49:23:859] [9290:9294] [WARN][com.freerdp.channels.tsmf.client] - Format not supported by decoder gstreamer
[12:49:23:874] [9290:9294] [ERROR][com.freerdp.channels.tsmf.client] - VIDEO: (PLAYING) GST_STATE_CHANGE_ASYNC.
[12:49:23:935] [9290:9294] [ERROR][com.freerdp.channels.tsmf.client] - unknown format:(0).
[12:49:23:935] [9290:9294] [WARN][com.freerdp.channels.tsmf.client] - Format not supported by decoder gstreamer
[12:49:24:440] [9290:9294] [ERROR][com.freerdp.channels.drdynvc.client] - ChannelId 10 not found!
[12:49:24:440] [9290:9294] [ERROR][com.freerdp.channels.drdynvc.client] - drdynvc_order_recv failed with error 1359!
[12:49:24:440] [9290:9291] [ERROR][com.freerdp.core] - drdynvc_virtual_channel_client_thread reported an error. Error was 1359
[12:49:24:440] [9290:9291] [INFO][com.freerdp.client.x11] - Network disconnect!
[12:49:24:440] [9290:9291] [ERROR][com.freerdp.client.x11] - Failed to check FreeRDP file descriptor
@hardening
Copy link
Contributor

Strange it looks like the tsmf channel is not registered when using egfx. Giving a look at that.

@hardening
Copy link
Contributor

@sebastianuw I have tried the same command line options connecting on a Seven host, and multimedia redirection works like a charm with both egfx and without. Any chance, you would retry with an updated master and if it crashes that you would post us a run of xfreerdp with valgrind ?

@sebastianuw
Copy link
Author

I tried it yesterday with a pull from master. no dice, Below is the valgrind output of the crash.
http://staff.washington.edu/lisic/freerdp_gfx_crash.txt

@hardening
Copy link
Contributor

@sebastianuw sorry to ask, but would you recompile your freerdp with valgrind helpers activated. Without we have a lot of garbage in the valgrind output.

sidenote: I may be wrong but I have read that on last version of RDP the multimedia channel is disabled when egfx is used, because using codecs is already very efficient. In your case that seems to be the case as we get a lot of uninitialized values in remoteFx. That would suggest that the ocntent is encoded using the RFX codec...

@dbungert
Copy link
Contributor

@hardening - are you talking from a server or client standpoint? From Server, MMR and EGFX can coexist. MMR is just unlikely in cases where EGFX is actually in use - in win 8.1 you have to use Windows Media Player (which is no longer the default video player), and in win 10 MMR will not be used, even with explicit playback in WMP. The references in the recent RDS blog appear to be talking about EVOR.

@sebastianuw
Copy link
Author

@hardening, sorry about that. Below is a crash log from a debug build.

http://staff.washington.edu/lisic/freerdp_gfx_crash_with_sym.log

I forgot to add, using an older build (e45edb8) I am able to have both work on my 2012r2 server.

@hardening
Copy link
Contributor

@sebastianuw your last valgrind, does not seem to have valgrind helpers activated (requires valgrind to installed on the compiling host and the cmake option activated, ccmake is your friend).

Would you try to git bissect to try to find the faulty commit ? My guess is that it's something that happened in the hardening of MMR or egfx, but having the commit that introduced the bug would be very nice !

@sebastianuw
Copy link
Author

@hardening is this what you are looking for in regards to valgrind output?
I used ccmake and set:
CMAKE_BUILD_TYPE Debug
WITH_VALGRIND_MEMCHECK ON
then ran the following:

http://staff.washington.edu/lisic/freerdp_gfx_valgrind.txt

@akallabeth akallabeth added the channel:tsmf Deprecated multimedia redirection, disabled in 2.0 label Dec 22, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
channel:tsmf Deprecated multimedia redirection, disabled in 2.0
Projects
None yet
Development

No branches or pull requests

4 participants