2017-05-10 3 views
0

Je reçois un résultat d'option invalide de avcodec_open2 dans ffmpeg 3.1.6 avec libopus 1.1.4. J'ai trié toutes les options et je ne trouve pas l'option incriminée, I created a gist holding the relevant native code. J'ai cherché tout sur Internet et ne trouve rien d'utile pour le moment. J'ai aussi essayé avec et sans le dictionnaire opts.Erreur d'option non valide avec avcodec_open2 et libopus

results = avcodec_open2(context, codec, &opts); et results = avcodec_open2(context, codec, 0);

Tous les tests et les variations retour -22 (à la ligne 51 GIST)

Répondre

1

memset(context, 0, sizeof(context));

Ce code doit être supprimé. Cela va fondamentalement tout casser. Plus précisément, il désactive toutes les choses définies dans avcodec_alloc_context3() sur la base du paramètre codec, ainsi que plus généralement toutes les valeurs par défaut du codec-agnostic.

(Notez qu'il ne met que les 8 premiers octets (sur x86-64), puisque vous avez utilisé sizeof(context) au lieu de sizeof(*context)).

+0

J'ai enlevé la ligne fautive; Je vous remercie. Cependant, le seuil de code ne fonctionne pas. –

+1

À ce stade, votre stderr devrait vous dire quelles options priv sont manquantes lorsque vous appelez avcodec_open2() avec un opts non-NULL. –