2017-05-16 1 views
0

Decode image vidéo et l'afficher sur l'écran en utilisant Android MediaCodecdécodeur Android MediaCodec, portent les informations personnalisées avec des images vidéo d'entrée

Je dois indiquer wether une image vidéo peut afficher à l'écran ou non sur MediaCodec étape de sortie de décodage. Donc, la trame vidéo doit porter l'information qu'elle peut montrer à l'écran sur l'étape d'entrée de trame MediaCodec.

J'ai essayé de définir BufferInfo.flag un peu, mais MediaCodec va écraser cette variable, je ne peux pas obtenir le bit de drapeau que je définis sur l'étape d'entrée à l'étape de sortie.

J'ai une autre façon d'indiquer montrer ou ne pas montrer. Utilisez MediaCodec.BufferInfo#flags impair ou même pour indiquer cette information.

Existe-t-il une façon formelle de faire ce travail?

Répondre

0

Il n'y a pas d'autre mécanisme pour transporter des informations personnalisées autant que je sache. Ce que vous pouvez faire, cependant, est de garder une trace de ces informations manuellement. Si les horodatages sont uniques, vous pouvez avoir une carte qui garde trace de timestamp -> info personnalisée. Si les horodatages ne sont pas uniques, vous devrez peut-être stocker l'horodatage réel dans les informations personnalisées et générer de nouveaux horodatages (par exemple un nombre incrémentiel) pour chaque image - cela devrait fonctionner tant que le décodeur n'essaie pas d'utiliser réellement l'horodatage de tout ce qui se trouve dans le processus de décodage.