Zbadaj DirectShowSpy od alax.info. Umożliwi to "szpiegowanie" na wykresach DirectShow. Bardzo przydatne w połączeniu z narzędziem takim jak GraphStudio.
Jestem programistą C++ piszącym aplikacje DirectShow i używam obu tych narzędzi przez cały czas, są niezbędnymi narzędziami do debugowania.
Google tematem tabeli Running Object. Wykresy DirectShow są (zwykle) dodawane do Tabeli Running Object, więc można wyliczyć ROT, aby określić, które wykresy są uruchomione w systemie.
Twoja karta wideo będzie wykorzystywać filtr renderera DirectShow do odtwarzania wideo na wykresie DirectShow. Renderer jest zwykle zasilany przez filtr dekodera. Filtr dekodera wykonuje zadanie dekodowania wideo i jest to dekoder, który musi zostać poinstruowany, aby używać przyspieszenia DXVA.
Na przykład, możesz mieć filtr dekodera H.264 na wykresie odtwarzania, musisz poinstruować go, aby używał akceleracji DXVA.
To było moje doświadczenie, że filtr dekoder będzie miał opcję pozwalają włączyć/wyłączyć DXVA przyspieszane dekodowanie wideo, ale to będą specyficzne do dekodera w pytaniu, a więc będzie to znacznie trudniejsze do powszechnego wykrywania.
Można na przykład napisać kod, aby wykryć, czy funkcja DXVA jest włączona, wysyłając zapytanie do filtru dekodera na uruchomionym wykresie, który dekoduje strumień H.264, ale kod do zapytania o filtr dekodera wykresu VP8 najprawdopodobniej inny kod.
This MSDN link potwierdza moje doświadczenie, że przyspieszenie DXVA jest przełączane przez filtr dekodera; może być jakiś sposób na zapytanie o kartę graficzną, ale myślę, że to byłby konkretny dostawca karty gfx.
Niestety odpowiedzi nie były bardziej szczegółowe, ale mam nadzieję, że punktów w dobrym kierunku ...
mówisz wykrywania, czy to grając na stronie? lub ogólnie? – Jason
Po prostu ogólnie. Media Player, VLC, itp. Używają akceleracji karty wideo, jeśli jest dostępna z nakładkami itp. Próbuję pułapkę, jeśli to się dzieje. – Boarder2
Podobne pytanie z możliwymi rozwiązaniami: http://stackoverflow.com/questions/11177373/how-to-detect-if-any-video-is-being-played-now – TheLegendaryCopyCoder