2012-06-27 1 views
0

Exemple d'extensions de média Cet exemple montre comment utiliser des extensions de média pour appliquer des effets à la vidéo, décoder la vidéo et créer des flux de média à l'aide de gestionnaires de schémas.Les extensions de médias exemple de bug de métro?

Je viens de déboguer l'échantillon. Je choisis un fichier mpg, la durée du fichier est 4mins. l'application sdk fonctionne bien, montre deux blocs de chevauchement. mais après environ 1min40s, le crash de l'application sdk. des informations de ce type: «exception non gérée à 0x68A95B94 (mfcore.dll) dans MediaExtensionsCPP.exe: 0xC0000005: violation d'accès emplacement de lecture 0x68A26A38.

Je remplace un autre fichier, la même erreur. Donc, je pense que l'échantillon Microsoft a un bug. Est-ce que quelqu'un a le même problème? peut me partager la méthode de résolution. Merci beaucoup.

+0

Je trouve la raison de ce problème. le dllmain.cpp pour le métro. La fonction est comme ceci: HRESULT WINAPI DllCanUnloadNow() { auto & module = Microsoft :: WRL :: Module :: GetModule(); return (module.Terminate())? S_OK: S_FALSE; } – ayuppie

Répondre

1

L'équipe Média dispose d'un correctif dans la nouvelle version des exemples pour résoudre ce problème. Voici les instructions pour corriger les exemples en cours:

Nous avons détecté un bogue dans les exemples de média qui provoquent le déchargement des DLL trop tôt. En attendant, vous pouvez ajouter ces lignes aux constructeurs/destructeurs des classes source/stream dans les exemples MSDN: Remarque: Ceci n'est pas nécessaire pour les classes dérivées de RuntimeClass <> (ex: le gestionnaire de schéma).

Constructeur: auto module = :: Microsoft :: WRL :: GetModuleBase(); if (module! = Nullptr) { module-> IncrementObjectCount(); }

Destructeur: auto module = :: Microsoft :: WRL :: GetModuleBase(); if (module! = Nullptr) { module-> DecrementObjectCount(); }

Questions connexes