2010-11-18 5 views
0

Je décrypte une vidéo en utilisant ffmpeg, la convertis de l'espace colorimétrique yuv420 vers l'espace colorimétrique rgba en la convertissant en CGImage et la restitue à l'écran. La vidéo joue correctement. Avec les Instruments, je vois qu'un tiers des cycles CPU est utilisé pour une autre conversion (fonction appelée CGSConvertBGRX8888àRGBA8888) Pourquoi cette seconde conversion d'espace colorimétrique est-elle nécessaire et pourquoi n'y a-t-il pas de conversion si je charge par exemple une image PNG ?Rendu CGImage dans iOS

Code pour la création CGImage:

http://pastebin.com/CqePhPzG

Merci!

Répondre

0

On dirait que l'ordre des octets de l'image source ne correspond pas à la destination. Aussi, je crois que X est alpha non prémultiplié alors que A est alpha prémultiplié. Essayez de modifier les paramètres d'ordre des octets que vous passez lors de la création de votre image ou de votre contexte d'image bitmap. HTH.