Scaling still does not affect the renderer dimensions

Hi

I asked about this problem and got an answer that it was fixed here: http://forums.microsoft.com/MSDN/ShowPost.aspx PostID=718158&SiteID=1&mode=1
But it still seems to do not work as it should.

The problem:
I built MFT that performs 2x scaling with input type YV12, NV12 or YUY2. To test it I use a player that based on the PlaybackFX SDK sample.
When the output type is YV12, everything is OK and I get the scaled dimensions from the renderer using GetNativeVideoSize().
When the output type is NV12 or YUY2 the GetNativeVideoSize() returns the original dimensions of the video and what I see is a quarter of the frame.
I also tried to set it manually with the correct size but it only stretched the quarter and did not display the entire frame.

Please let me know what I could have done wrong.

Thanks
Haim



Answer this question

Scaling still does not affect the renderer dimensions

  • ECHS BACHS

    Yes, CopyAllItems() does give you a complete copy of the media type.

    As for your original issue, it sure sounds like it's specific to a particular mediatype (YUY2), which is a bit surprising. We'll need some time to look into this on our side.



  • KGOFF

    I don't remember whether I mentioned this last time, but one thought off the top of my head: We have a known issue that if the MFT merely changes attributes on the existing instance of the output IMFMediaType (GetOutputCurrentType), instead of actually creating a new Media Type instance for GetOutputCurrentType, your media type change won't actually take effect as desired.

    Double-check that you create a new Media Type object, and let me know. I'm actually rather surprised that this behavior is different for different mediatypes.



  • Andreia

    Thanks for the reply.

    Well, I double checked and changed both the GetOutputCurrentType and GetInputCurrentType to a new media type instance but it doesn't seem to help.

    Just a small remark, it seems that I made a mistake: the problem is in YUY2 and not in NV12 output.

    Another question: is it enough to use IMFMediaType::CopyAllItems() in order to copy the media type to the new one does it copy all the required information from the media type

    Thanks
    Haim


  • Scaling still does not affect the renderer dimensions