locked
Disabling third party custom sink RRS feed

  • Question

  • Hi,
    I have implemented the ByteStreamHandler for WNV and ASF type of files. I also have a custom MFT. I have registered these on a W2k8 R1 server. I have two wys to connect to the server. One way is to use protocol X and the other is protocol Y.

    When i connect to server using protocol X, i am able to play a wmv file without any issue. The issue is when i connect to server using protocol Y, the wmv file plays but pause- stop do not work properly. What i observe is that in case of connectivity thru protocol Y a custom video sink is coming into picture. I dont see the EVR.dll being loaded by mfpmp.exe.This custom video sink is loaded by mfpmp.exe. if i rename the custom video sink's dll the video does not play at all. WMP throws an error.

    How do i disable a custom video sink? is there any registry setting?

    Thanks in advance.
    Itamnas
    Wednesday, September 23, 2009 3:08 PM

Answers

  • As far as I am aware, there is not a registry key to enable or disable the terminal services sink.  Video is pretty much unwatchable over remote desktop without it.  However, I am not sure what binary has the description "xxx Media Foundation sinks."  The binary that handles the terminal services sink should be tsmf.dll with description "RDP MF Plugin."

    I still do not have a good grasp on how exactly you are playing back media.  So far, my assumption is:

    1) Connect to server using Remote Desktop Client
    2) Play back a local WMV file using WMP over the remote desktop connection.
    3) Pause or Stop -- WMP displays an error dialog

    It would help me figure out what is going on if I had more details.

    Thursday, October 1, 2009 1:17 AM

All replies

  • I am not entirely sure what you are trying to do in this scenario (streaming?  is the client or server (or both) supposed to be using the EVR?).  However, I will give you some background on WMP rendering to see if that helps.

    WMP does not support custom sinks for playback.  For local playback, WMP always uses the EVR.  Only when WMP detects it is being run under remote desktop does it use a different sink, the terminal services sink.  This sink is an optimization for sending compressed frames rather than uncompressed frames over the network.  A decoder will not be inserted in a terminal services topology, which may be throwing things off if you are counting on a decoder being inserted.
    Friday, September 25, 2009 6:29 PM
  • Thanks a lot Matt.

    I am making a remote connection. And when i use the procexp to see the modules loaded then i dont see EVR.dll to be loaded by mfpmp.exe. I see a custom module (whose description says "xxx Media Foundation sinks") loaded by mfpmp.

    Is there any registry which mentions the entry of this terminal services sink?


    Appreciate your help on this.

    ~itamnas
    Saturday, September 26, 2009 1:49 PM
  • As far as I am aware, there is not a registry key to enable or disable the terminal services sink.  Video is pretty much unwatchable over remote desktop without it.  However, I am not sure what binary has the description "xxx Media Foundation sinks."  The binary that handles the terminal services sink should be tsmf.dll with description "RDP MF Plugin."

    I still do not have a good grasp on how exactly you are playing back media.  So far, my assumption is:

    1) Connect to server using Remote Desktop Client
    2) Play back a local WMV file using WMP over the remote desktop connection.
    3) Pause or Stop -- WMP displays an error dialog

    It would help me figure out what is going on if I had more details.

    Thursday, October 1, 2009 1:17 AM
  • Thanks Matt,

    We have a custom MediaSource and Custom MFT implemented. What we do is redirect the audio/video content down to client. Like multimedia redirection. We have no issues with RDP connectivity. I am finding issues of co-existence with ICA connectivity and their multimedia redirection technology. What is notice is that their MediaFoundation Sink module comes into picture. I dont see evr.dll loaded at all.

    What we try to do on the server side is send dummy sample to render so that the topology gets completed. We send the actual sample to the client.What i observe is that when i dont release the sample at the end of processoutput the controls respond immed. But this is increasing memory consumption.

    So, i thought the easier way would be to disable their sink.

    itamnas



    Friday, October 2, 2009 12:15 PM