hello,
Je suis en train de réécrire un filtre directshow pour lire de la vidéo. Cette vidéo doit venir au choix d'un flux réseau ou d'un fichier arbitraire et je ne sais pas quel conteneur ou quel codec sera utilisé.
Pour complexifier un peu le tout, je me fais un graphe qui utilise le VMR9 avec un plugin d'Allocator/Presenter fait par mes soins.
J'ai l'impression que je me plante dans l'implémentation de ma fonction GetMediaType sur mon unique Pin de sortie, mais je n'ai pas trouvé d'exemple clair ou de GUID correspondant à un filtre qui sot de la data sans la connaître.
J'ai fait quelque chose comme ca :
Code :
- virtual HRESULT GetMediaType( __inout CMediaType* pMediaType )
- {
- pMediaType->majortype = MEDIATYPE_Stream;
- pMediaType->subtype = MEDIASUBTYPE_None;
- pMediaType->formattype = Format_None;
- pMediaType->pbFormat = NULL;
- return S_OK;
- }
|
Lorsque je fais un Render de mon output Pin, je reçois plusieurs appels à cette fonction, puis un appel au TerminateDevice de mon Allocator/Presenter, pour finalement avoir comme code de retour E_NOINTERFACE.
Queqlu'un a déjà joué avec direct show et saurait d'où ca peut venir ? Ou si, déjà, cette description de "media" est valide ?
Message édité par theshockwave le 26-05-2011 à 18:12:15
---------------
last.fm