Video Mixing Renderer 7

Michael Stefaniuc mstefani at redhat.com
Wed Oct 16 03:22:07 CDT 2013


Hello,

On 10/15/2013 09:52 PM, Michael Müller wrote:
> I am wondering what would be the best way to handle programs which rely
> on the Video Mixing Renderer 7 (quartz.dll) as it's supposed to be
> available on XP and later, but Wine contains only an implementation of
> version 9.
> 
> The program I am speaking of is Silverlight which uses the VMR 7
> Interface to create a filter graph and then queries for the
> IAMCertifiedOutputProtection interface. I am currently using a hack fix
> to get around this by returning a VMR9 instance when a VMR7 is requested
> and implementing the missing subinterfaces (which are only part of
> VMR7). This solution is clearly not perfect and I am searching for a
> better way to get around this issue.
> 
> The most similar way to Windows would be to completely rewrite the
> current implementation of the VMR9 as VMR7 using DirectDraw, which would
> take a lot of time and most probably end up in having a lot of duplicate
> code. I am wondering whether using d3d9 for VMR7 would also be an
> acceptable solution. We could move all the d3d9 related stuff to a
> separate file so that VMR7.c and VMR9.c only offer the version specific
> interfaces and use the same code internally. This shouldn't be a big
> problem since the differences between the VMR7 and VMR9 interfaces are
> often only very small. Though it would not completely fit the behavior
> of windows.
if the differences are small then there are different options to reuse
the common parts:
- Use the same object (struct) for both VMR7 and 9. Just set the
  correct vtbl pointers during object creation.

- Use a separate struct for the common parts and include it in both
  objects. Kind off like it is done at the moment with the BaseRenderer
  and the other Base* stuff.

- If it is feasible to have VMR7 implemented in d3d9 you could even
  make VMR7 a small wrapper around VMR9. Aka COM aggregate the VMR9
  object and just implement the parts you can't forward.

> I am open for other ideas on how to solve the problem, but as
> Silverlight does not even use the VMR7 object for playing the video but
> only to check for the graphic driver certificate I don't think it would
> justify to rewrite everything using Direct Draw if there are no other
> programs needing this interface.
I have an old kids education game that uses both ddraw and quartz that
doesn't works. I'll check if it uses VMR7. If yes it is worthwhile to do
it right as it is a whole class of such multimedia apps from the early
days.

bye
	michael




More information about the wine-devel mailing list