Beste tweakers,
Voor een nieuw project op mijn werk is het vereist dat ik filmpjes (avi, mpg, mp4, etc) kan afspelen op een resolutie van 1360 x 768, met daarover transparante vlakken met scrolling text.
Dit heb ik bereikt door WPF te gebruiken. Kwestie van een MediaElement, Image met opacity, en een TextBlock dat verplaatst wordt op basis van het CompositionTarget.Rendering event (dit vermindert het effect van dropped frames tov time based animations).
Dit werkt op zich prima, mits:
- Het systeem Vista draait (omdat WPF frame tearing krijgt in Windows XP)
- Het systeem een grafische kaart met dedicated VRAM heeft > 128MB
Helaas is het de bedoeling dat bovenstaand spul op een Eee Box 202 / 204 moet draaien met Windows XP. Door de frame tearing en brakke performance komen we in de problemen. De Eee Box is echter wel in staat de filmpjes vloeiend af te spelen in Windows Media Player, dus het zou moeten kunnen.
Ik ben samen met een collega een hele week bezig geweest met het zoeken naar alternatieven, maar elke keer als we iets vonden, kwamen we tot de conclusie dat het niets werd.
Bijv. de Managed DirectX library voor AudioVideoPlayback speelt niet alle filmpjes af die we willen. Het direct gebruik van DirectShow filters in C++ is voor ons op dit moment te ingewikkeld. Dit project moet binnen 2 weken operationeel zijn en moet veel communiceren met managed assemblies (wij werken voornamelijk met .Net en hebben te weinig C++ ervaring).
Mijn vraag is nu: zijn er goede managed libraries om DirectShow te gebruiken op Windows XP zonder frame tearing, maar dat je alsnog de kans krijgt om de frames te wijzigen (overlays, texts, etc).
Want wij konden ze niet vinden.. het moet ook productiekwaliteit zijn, DirectShow.Net hebben we bijv geen enkele keer echt stabiel aan de praat gekregen. Het is de bedoeling dat de applicatie 24/7 blijft draaien op TV schermen in openbare plekken, en dat de pc zo klein is dat die praktisch achter het scherm geplakt kan worden, etc.
Help!
PS:
Ik heb ook ontdekt dat ik C++ icm .Net kan gebruiken met Visual C++, dus een goed voorbeeld zou in het allerergste geval ook kunnen helpen (aangezien ik wel een beetje C++ ervaring heb, maar totaal geen kaas heb gegeten van DirectX / DirectShow). We konden alleen veel te weinig vinden hierover.. Ik kom niet verder dan het afspelen van de filmpjes (dat lukt wel, vaak met een ActiveMovie venster, maar dan kan ik er niet meer bij om er iets overheen te zetten).
Voor een nieuw project op mijn werk is het vereist dat ik filmpjes (avi, mpg, mp4, etc) kan afspelen op een resolutie van 1360 x 768, met daarover transparante vlakken met scrolling text.
Dit heb ik bereikt door WPF te gebruiken. Kwestie van een MediaElement, Image met opacity, en een TextBlock dat verplaatst wordt op basis van het CompositionTarget.Rendering event (dit vermindert het effect van dropped frames tov time based animations).
Dit werkt op zich prima, mits:
- Het systeem Vista draait (omdat WPF frame tearing krijgt in Windows XP)
- Het systeem een grafische kaart met dedicated VRAM heeft > 128MB
Helaas is het de bedoeling dat bovenstaand spul op een Eee Box 202 / 204 moet draaien met Windows XP. Door de frame tearing en brakke performance komen we in de problemen. De Eee Box is echter wel in staat de filmpjes vloeiend af te spelen in Windows Media Player, dus het zou moeten kunnen.
Ik ben samen met een collega een hele week bezig geweest met het zoeken naar alternatieven, maar elke keer als we iets vonden, kwamen we tot de conclusie dat het niets werd.
Bijv. de Managed DirectX library voor AudioVideoPlayback speelt niet alle filmpjes af die we willen. Het direct gebruik van DirectShow filters in C++ is voor ons op dit moment te ingewikkeld. Dit project moet binnen 2 weken operationeel zijn en moet veel communiceren met managed assemblies (wij werken voornamelijk met .Net en hebben te weinig C++ ervaring).
Mijn vraag is nu: zijn er goede managed libraries om DirectShow te gebruiken op Windows XP zonder frame tearing, maar dat je alsnog de kans krijgt om de frames te wijzigen (overlays, texts, etc).
Want wij konden ze niet vinden.. het moet ook productiekwaliteit zijn, DirectShow.Net hebben we bijv geen enkele keer echt stabiel aan de praat gekregen. Het is de bedoeling dat de applicatie 24/7 blijft draaien op TV schermen in openbare plekken, en dat de pc zo klein is dat die praktisch achter het scherm geplakt kan worden, etc.
Help!
PS:
Ik heb ook ontdekt dat ik C++ icm .Net kan gebruiken met Visual C++, dus een goed voorbeeld zou in het allerergste geval ook kunnen helpen (aangezien ik wel een beetje C++ ervaring heb, maar totaal geen kaas heb gegeten van DirectX / DirectShow). We konden alleen veel te weinig vinden hierover.. Ik kom niet verder dan het afspelen van de filmpjes (dat lukt wel, vaak met een ActiveMovie venster, maar dan kan ik er niet meer bij om er iets overheen te zetten).
[ Voor 4% gewijzigd door Lethalis op 28-03-2009 11:56 ]
Ask yourself if you are happy and then you cease to be.