Core Video est le modèle de traitement vidéo utilisé par macOS . Il relie le processus de décompression des images d'une source vidéo au reste des technologies Quartz pour le rendu et la composition des images. QuickTime X et QuickTime 7 dépendent tous deux de Core Video.
Aperçu
Core Video fournit à la fois un modèle de mise en mémoire tampon et une solution de synchronisation de lecture dans son pipeline de traitement. Une source vidéo fournit un flux de données décompressé à restituer sous forme d'images dans un contexte visuel dans Quartz 2D . Core Video peut être considéré comme le lien entre cette source vidéo et son contexte d'affichage. Les images rendues peuvent être traitées ultérieurement par Core Image avant d'être composées dans une scène finale avec Quartz Compositor . Dans le cadre du processus de composition, Core Video maintient un tampon d'images , en gardant un pool d'images composées et rendues prêtes à être lues. Pour assurer une lecture fluide, Core Video utilise un thread haute priorité pour maintenir son tampon d'images. Ce lien d'affichage s'exécute indépendamment de l'application qui appelle la lecture vidéo et compense les différents taux de rafraîchissement et latence de l'affichage.
Étant donné que QuickTime 7 utilisait Core Video, il s'agissait de la première version de QuickTime à implémenter la capacité de rendu de Quartz. Les versions précédentes de QuickTime utilisaient QuickDraw pour le rendu. Bien que Core Video interagisse généralement avec QuickTime, il peut interagir avec n'importe quelle source vidéo.
Core Video bénéficie du rendu et de la composition du processeur graphique (GPU) fournis par Quartz GL, Core Image et Quartz Extreme , puisque la lecture finale est composée sur une surface OpenGL.
Histoire
Bien que Core Video ait été introduit avec la sortie de Mac OS X v10.4 , il est inclus dans l'installation de QuickTime 7 sur Mac OS X ; ainsi, Core Video est également disponible pour Mac OS X 10.3.9 avec QuickTime 7 installé.
Dans Mac OS X 10.4, Core Video est implémenté dans le cadre du framework QuartzCore ; dans Mac OS X 10.5 et versions ultérieures, il réside dans son propre framework.