J'ai une application C# WinForms qui appelle une DLL C++ Win32 contenant les opérations DirectShow.IMediaControl :: Run E_OUTOFMEMORY
Lorsque je diffuse 13MP (4208 * 3120) à partir de la caméra, l'API IMediaControl :: Run() échoue avec la valeur HRESULT = E_OUTOFMEMORY. J'ai vérifié l'allocation de mémoire et les désallocations de la mémoire. En outre, j'ai essayé d'activer/LARGEADDRESSAWARE. J'ai même essayé de spécifier la taille de commit de tas.
Mais encore, l'est existe.
Ai-je raté quelque chose? S'il vous plaît partagez vos pensées.
Merci à l'avance.
Avez-vous vérifié si votre ordinateur manquait de mémoire? –
oui. J'ai fait. PC a suffisamment de mémoire. – sam
Il est encore susceptible d'être un problème de mémoire. Est-ce votre application 32 bits? PC RAM est peu susceptible d'être pertinent. Une grande connaissance de l'adresse doit être définie sur l'application (EXE). Vous devriez être capable de surveiller le processus et son utilisation de l'adresse virtuelle. Il est typique pour le pipeline DirectShow d'allouer des tampons et ils peuvent être coûteux en termes de mémoire pour une telle résolution. Il serait utile aussi de [connaître votre graphique de filtre DirectShow] (http://alax.info/blog/1678). –