1. John Siracusa
    1. Mountain Lion
      1. Introduction
      2. Achat et installation
      3. Changements d'interface (1)
      4. Changements d'interface (2)
      5. Changements d'interface (3)
      6. Applications (1)
      7. Applications (2)
      8. Applications (3)
      9. Applications (4)
      10. Applications (5)
      11. iCloud(1)
      12. iCloud(2)
      13. iCloud(3)
      14. Gatekeeper(1)
      15. Gatekeeper(2)
      16. Retina et HiDPI
      17. Fourre-tout (1)
      18. Fourre-tout (2)
      19. Fourre-tout (3)
      20. Fourre-tout (4)
      21. Fourre-tout (5)
      22. Fourre-tout (6)
      23. Recommandations
      24. Deux pères, un fils
    2. Lion
      1. Introduction
      2. Installation
      3. Revoir les fondamentaux
      4. Redimensionnement des fenêtres
      5. Et voici pour les cinglés
      6. La gestion des fenêtres
      7. Le modèle de document
      8. le modèle des processus
      9. Les éléments internes (1)
      10. Les éléments internes (2)
      11. ARC
      12. Le système de fichiers
      13. Ses modifications dans Lion
      14. Documents, résolution
      15. Le Finder
      16. Mail, Safari
      17. Fourre tout (1)
      18. Fourre tout (2)
      19. Recommendations
    3. Snow Leopard
      1. Introduction
      2. Le ticket d'entrée
      3. L'installation
      4. Nouvel aspect
      5. Détails internes
      6. Quick Time X
      7. Système de fichiers
      8. Faire plus avec plus
      9. LLVM et Clang
      10. Les blocs
      11. Concurrence
      12. Grand Central Dispatch
      13. Asynchronicité
      14. Open CL
      15. La différence...
      16. Quick Time Player
      17. Le Dock
      18. Le Finder
      19. Exchange
      20. Performances
      21. Fourre tout (1)
      22. Fourre tout (2)
      23. Le futur
    4. Leopard
      1. Introduction
      2. L'héritage
      3. Nouvel aspect 1
      4. Nouvel aspect 2
      5. Le noyau
      6. 64 bits
      7. FS Events
      8. Core animation
      9. Quartz GL
      10. Core UI
      11. Détails internes
      12. Le Finder
      13. Le Dock
      14. Time Machine
      15. Performances
      16. Pot pourri
      17. Demain
    5. Tiger
      1. Introduction
      2. Retour sur le passé
      3. Nouvel aspect de Tiger
      4. Mises à jour du noyau
      5. Le lancement
      6. Les méta-données
      7. Attributs étendus
      8. Listes de contrôle d'accès
      9. Spotlight 1
      10. Spotlight 2 : analyse et potentiel
      11. Types de fichiers
      12. Méta-données : la fin
      13. Quartz
      14. Quartz 2D Extreme
      15. Core Image
      16. La vidéo sous Tiger
      17. Dashboard
      18. Le Finder
      19. Les performances
      20. Pot pourri
      21. Conclusion
    6. Panther
      1. Introduction
      2. Les précédents
      3. L'installation
      4. Nouvel aspect
      5. Performances
      6. Changement rapide d'utilisateur
      7. Gestion des fenêtres
      8. Exposé
      9. Le Finder
      10. Performance du Finder
      11. Toujours le même
      12. Safari
      13. XCode
      14. Conclusion
    7. Jaguar
      1. Introduction
      2. Le nom
      3. L'installation
      4. Modifications d'Unix
      5. Dévelopeurs...
      6. Quoi de neuf
      7. Rendezvous
      8. Quartz Extrême
      9. Performance
      10. Compositions
      11. Le Finder
      12. Applications
      13. Sherlock
      14. Le portrait
    8. Puma
      1. Prelude
      2. Introduction
      3. Installation
      4. Réglages système
      5. Performance
      6. Redimensionnement des fenêtres
      7. Utilisation de la mémoire
      8. Diagnostics de mémoire
      9. L'environnement Classique
      10. L'interface Utilisateur
      11. Le Finder
      12. Extensions de fichiers
      13. Divers, conclusion
    9. Cheeta (Mac OS X 10.0)
      1. Qu'est ce que Mac OS X
      2. Installation
      3. Le démarrage
      4. Utilisation de la RAM
      5. Performance
      6. Performance des applications
      7. Stabilité
      8. L'interface utilisateur
      9. Le Finder
      10. Le navigateur du Finder
      11. Le Finder (divers)
      12. L'interface utilisateur
      13. Os X Classique
      14. Système de fichiers
      15. Unix
      16. Applications
      17. Conclusion
    10. Les débuts de MacOsX
      1. 1999 : OSX DP2
      2. 2000 : Quartz et Aqua/a>
      3. Fin de la lune de miel
      4. la première bêta publique
      5. 2001 : Mac OS X 10.0
      6. Un investissement
    11. Finder Spatial
      1. Introduction
      2. Interfaces spatiales
      3. Le Finder spatial
      4. Le concierge
      5. Un nouveau Finder
      6. Le browser
      7. Le browser spatial
      8. Finder et méta-données
      9. Les modèles
      10. Pensées finales

La vidéo sous Tiger




Core Video

Quand j'ai présenté Core Image précédemment, j'ai laissé de côté une des technologies de "Cœur", Core Vidéo. Cela porte à trois le nombre de ces technologies de Cœur consacrées aux média. Tiger, dans un effort de promotion les a toutes habillées d'un logo nouveau et élégant, ressemblant à des sphères de verre avec un cœur de pierre précieuse.
listing

J'ai reproduit ces icônes, (avec une taille assez grosse) parce que je les trouve bien. Créer des logos pour des technologies abstraites comme Core Image, Audio et Vidéo n'est pas facile. Celui qui les a créées mérite un bonus. Elles semblent bonnes à croquer.

Core Vidéo est un peu une technologie "secondaire", ou peut-être une technologie commerciale. C'est essentiellement l'applicartion des filtres de Core Image à de la vidéo, au lieu d'images fixes.

Cela ne veut pas dire que ce n'est pas impressionnant. A tout le moins, cela met en lumière les performances en temps réel de la technologie qui est derrière Core Image. Si vous avez un jour espéré appliquer du flou, des filtres, de la détection de contour, et des distorsions à de la vidéo, et pouvoir contrôler tous ces effets en temps réel, Core Vidéo est la technologie pour ça.

Comme Core Vidéo est inutile s'il ne s'exécute pas en temps réel, il exige un GPU programmable. Core Vidéo exploite le GPU par l'intermédiaire d'Open GL, tout comme Core Image, et Quartz Extrême, et Quartz 2D Extrême... y voyez-vous une tendance ?

Appliquer une série de filtres à une image fixe est une chose. L'appliquer à de la vidéo, une série d'images fixes créée à la volée par une autre partie entièrement différente du système, c'est tout différent. Non seulement Core Vidéo doit terminer de traiter chaque trame avant que la trame suivante ait besoin d'être affichée, mais elle doit aussi accéder aux trames de façon régulière pour avoir une chance de s'en tirer.

C'était déjà possible dans les versions précédentes de Mac OS X, comme le démontre l'application impressionnante, Open GL movie player créée par "feelgood", un membre du forum Ars, mais c'est beaucoup, beaucoup plus facile à faire sous Tiger en utilisant Core Vidéo. C'est surtout grâce à des modifications importantes faites à la source de la plupart des trames vidéo de Mac OS X, QuickTime.

QuickTime 7

QuickTime 7 est une modernisation, attendue depuis longtemps, du système de média numérique le plus ancien, et toujours resté compatible, de l'industrie. Commençons par les modifications qui rendent Core Vidéo possible.

Ce ne serait pas complètement inexact de décrire les sessions consacrées à QuickTime à la WWDC au cours des quatre dernières années, comme une série d'exemples dépareillés de la façon de faire travailler QuickTime vidéo sur une surface 3D.

(En fait, les vétérans grisonnants des guerres des APIs d'Apple se souviendront d'avoir vu une démo entièrement logicielle d'une vidéo QuickTime affichée sur les six faces d'un cube au temps d'"Escher", autrement dit QuickDraw 3D. Ah, la mémoire... )

Sous Mac OS X, le problème de la "vidéo sur une surface 3D" a été gêné par la difficulté de récupérer chaque trame vidéo dans la mémoire principale (ou QuickTime les dessine), et de la convertir en un format qu'Open GL puisse accepter comme "texture", puis de la charger dans la carte vidéo où Open GL peut enfin l'afficher sur une surface. Essayez de faire ça trente fois par seconde, et vous avez une idée du défi.

QuickTime 7 supprime entièrement le besoin d'éléments dépareillés. Il représente l'unification finale de QuickTime et d'OpenGL. Comme toute technologie qui affiche et manipule des images fonctionne déjà sur le GPU sous Tiger, il est logique que QuickTime les déplace là aussi. En fait, la modification est indispensable si toute autre partie du système d'affichage veut un accès rapide aux trames vidéo de QuickTime.

Avec QuickTime 7 sous Tiger, chaque séquence QuickTime est affichée sur une surface OpenGL. Il se trouve seulement que cette surface est parfaitement parallèle à celle de l'écran.

Mais la modernisation de QuickTime 7, c'est plus que de déplacer l'affichage vidéo sur le GPU en utilisant OpenGPL. Un tas d'éléments anciens, indésirables de l'implantation de QuickTime ont été remplacés par des équivalents plus modernes. Voilà à quoi ressemblait QuickTime dans Mac OS classique aux alentours de 1995.

QuickTime 1995

QuickTime en 1995

A cette époque, QuickTime avait ses propres moteurs de traitement audio et vidéo. Il utilisait QuickDraw pour dessiner sur l'écran, et Sound Manager pour les sorties audio, et l'un et l'autre s'interfacaient directement avec le matériel.

QuickTime 7 dans Mac OS X 10.4 Tiger ressemble à ceci ;

QuickTime 2005

QuickTime en 2005

QuickDraw étant abandonné, QuickTime 7 utilise Core Graphics (un autre nom pour Quartz) pour dessiner sur l'écran. Core vidéo (et par extension Core Image) sont utilisés pour afficher la vidéo. Core Audio remplace finalement Sound Manager, terriblement dépassé. (Bien que cela ne figure pas sur le diagramme, QuickTime 7 utilise encore des greffons pour le support des différents codecs, comme cela a toujours été).

Core Graphics, Core Image, Core Vidéo reposent tous sur OpenGL, qui à son tour s'interface avec le matériel vidéo. Core Audio (que je regrette de n'avoir pas traité dans le passé, et que je ne vais pas avoir le temps de traiter ici) repose sur sa propre couche d'abstraction matérielle (HAL, Hardware Abstracion Layer), avec le matériel audio à la base.

Dans l'ensemble, l'architecture de QuickTime 7 est plus abstraite, plus puissante, et plus moderne. Cette nouvelle architecture a été rendue possible par un autre changement dans QuickTime, longtemps attendu : le découplage entre le décodage vidéo et l'affichage vidéo.

Quand QuickTime 1.0 fut introduit en 1991, son pipe-line de décompression vidéo reposait sur une présomption simple et apparemment sûre : les trames vidéo étaient décompressées dans l'ordre où elles devaient être affichées. Cette présomption était assumée dans la conception et les APIs de QuickTime depuis le début, et elle s'est poursuivie jusqu'à QuickTime 6 en 2004. Cela implique qu'une trame compressée ne peut dépendre que des trames précédentes pour une décompression réussie.

Cela s'est révélé constituer un problème. Les codecs vidéo modernes, (Windows Média 9, Real Vidéo 10, et même DivX et associés) utilisent souvent la connaissance de trames vidéo futures pour compresser une trame donnée. QuickTime, en tant que moteur de décompression strictement séquentiel n'a absolument aucune connaissance des trames futures quand il décompresse une trame.

QuickTime 7 élimine cette limitation. L'ordre de décodage et l'ordre d'affichage peuvent être distincts. La chose la plus remarquable de cette modification, est que l'ensemble des possibilités d'édition de QuickTime reste intact. Imaginez la difficulté d'autoriser des coupures, des copies, de collages arbitraires quand une trame vidéo peut dépendre des trames futures pour sa décompression. Que se passe-t-il si vous coupez un morceau d'un clip vidéo dont la trame finale dépend d'une trame future qui est au delà des limites de la coupure ? Comment cette vidéo peut-elle être collée ailleurs sans risque ?

La solution de ce problème n'est "pas triviale", comme on dit, et c'est une des raisons pour lesquelles le changement d'architecture a été si long à venir. QuickTime 7 la fournit. Et pour célébrer cela, Apple introduit un nouveau codec, qui lui est propre dans QuickTime 7 : H.264.

H.264 est un nom épouvantablement rébarbatif pour le dernier codec au standard MPEG-4. On l'appelle aussi AVC (Advanced Video Coding) et MPEG-4 part 10, deux noms qui font paraître H.264 pas si mauvais, en comparaison. C'est un codec entièrement nouveau, qui rivalise au mieux avec ce que ses concurrents (commerciaux ou open-source) peuvent proposer. En tant qu'élément d'un standard très largement reconnu et supporté (MPEG-4), il est un cran au dessus de concurrents commerciaux ou d'entreprise (WM9, Real), et de la plupart des autres vendeurs indépendants ou des initiatives open-source (XviDn DivX, 3ivs, etc...).

Une comparaison de la qualité et de la taille de ces codecs mériterait son propre article, et je ne vais pas le faire maintenant. Il suffit de dire qu'il est réconfortant de voir QuickTime jouer dans la cour des grands quand il s'agit des codecs vidéo.

QuickTime 7 inclut aussi un support amélioré pour de multiples pistes audio, une haute résolution audio, l'accès à des méta-données de média, et permet maintenant d'écrire des greffons en utilisant Objective C.

En ce qui concerne Objective C, Tiger inclut un cadeau propre à QuickTime pour les développeurs Cocoa. Il a toujours été, sinon difficle, du moins très ennuyeux d'utiliser QuickTime dans une application Cocoa. Les deux technologies viennent de mondes très différents. QuickTime a été conçu pour Mac OS classique (système 6 !) vers 1991, alors que Cocoa est une évolution de la technologie NeXT.

Tiger relie les deux mondes avec QTKit. QTKit fournit une interface complète orientée objet pour la totalité de QuickTime, avec des classes de style cocoa pour tout : les pistes, les séquences, les vues, tout ce qu'il faut.

Quand Carbon fut développé, Apple a choisi de faire reposer l'une de ses applications les plus importantes (le Finder) sur l'API, pour démontrer son utilité. Dans l'industrie du logiciel, on dit avec poésie que cela correspond à "manger la nourriture de son chien". Tout utilisateur ancien de Mac OS X sait comment les choses ont tourné dans le cas du Finder, mais le concept de la nourriture du chien est sain.

Dans Tiger, Apple a réimplanté l'application QuickTime Player en utilisant QTKit, et je dois dire que les résultats sont impressionnants immédiatement. J'admets que beaucoup des aspects impressionnants de QuickTime Player dans Tiger, sont le résultat des améliorations de QuickTime 7 ; l'application Player ne fait qu'en permettre l'accès. Mais à tout le moins, c'est une validation de l'utilité de QTKit.

Voici un bref aperçu du nouveau QuickTime Player :

QuickTime Player

Le nouveau QuickTime Player sous Cocoa, basé sur QTKit

La fenêtre de l'application conserve le même aspect, mais montre de subtiles différences, avec encore une autre teinte de métal brossé. Les fenêtres de l'afficheur changent de taille sans qu'on s'en aperçoive, même quand la vidéo est en cours, bien que quelques trames puissent être perdues sur des systèmes lents.

L'effet génie sur une séquence en fonctionnement fait un nouveau pas vers la perfection sous Tiger, avec pour seul défaut discernable le choix de la trame de repos dans l'icône initiale du Dock. (Faites un maj-click sur le widget de minimisation -le bouton jaune- de la fenêtre de QuickTime Player, pendant que la séquence tourne, pour juger par vous-même).

Il y a aussi un nouveau panneau de contrôle audio/vidéo.

Audio/video controls

Les contrôles audio/vidéo de QuickTime Player

Tous les ajustements vidéo agissent en temps réel quand la séquence tourne. Grâce à Core Vidéo, même les systèmes lents ne peinent pas, pourvu qu'ils aient un GPU convenable, bien sûr. La glissière de ralentissement fonctionne aussi en temps réel, et fait passer les images à une vitesse ajustable dans chaque direction. La glissière n'est pas aussi bien qu'un bouton physique de ralenti, mais elle répond bien. J'aimerais seulement que la glissière soit un peu plus longue, pour que la manipulation de la souris exige moins d'habileté.

Ma caractéristique favorite est l'ajustement de la vitesse de reproduction, et particulièrement la façon dont elle peut augmenter la vitesse du son sans changer la tonalité. Cela signifie que je peux regarder, par exemple, des sessions de la WWDC à une vitesse de 1,5x, sans que chaque présentateur s'exprime comme des marionnettes. (Il n'y a pas de filtre pour l'accent de Bertrand, malheureusement). (1)

QuickTime Player

Débilitant...


Il y a un dernier aspect désagréable à aborder : QuickTime Pro. Comme ses prédécesseurs, QuickTime Player est un logiciel bridé (crippleware). La plupart des caractéristiques les plus utiles sont invalidées, et ne peuvent être permises qu'en payant 30 $ de plus à Apple pour une licence de QuickTime Pro. Les items de menu de cette version Pro sont grisés, et marqués par des petits badges "Pro" très désagréables.



Ne vous méprenez pas, aucune des caractéristiques invalidées de QuickTime Player n'est réellement invalidée dans QuickTime 7. Elles sont seulement interdites dans l'application Player. N'importe qui peut créer une application QuickTime Player qui va tout droit, et appelle les APIs que QuickTime Player en mode "non-pro" refuse d'utiliser. Et puis, au fait, le greffon de navigation de QuickTime souffre des mêmes débilitations intentionnelles de ses caractéristiques.


Cela fait des années que ça dure avec QuickTime, alors, pourquoi s'en irriter maintenant ? Voilà pourquoi : Mac OS X est livré avec un environnement intégré de développement complet qui supporte C, C++, Objective-C, Java, et toutes les APIs de Mac OS X, sans compter la compilation distribuée, un outil GUI de conception et de présentation, une suite d'applications pour le contrôle des performances. Tiger inclut un navigateur web gratuit, un client email, le carnet d'adresse, un dictionnaire, un thésaurus, un gestionnaire de fontes, un client de messagerie instantanée AIM/Jabber. Quand vous achetez un iMac, vous avez tout ça, plus iLife : iPhoto, iMovie, Garage Band, et iDVD.

Le coût total de développement de ce paquetage de logiciels est absolument considérable. Le prix de détail de iLife tout seul est de 80 $. Et alors, après avoir dépensé 1500 $ ou plus pour un nouveau Mac, avec ce magnifique paquetage logiciel, qu'est-ce qui vous attend quand vous le mettez en route, et que vous cherchez à regarder un extrait de séquence QuickTime en mode plein écran ? Pourquoi cet écran irritant vous demandant de payer 30 $ de plus pour "le privilège" d'appeler les APIs de QuickTime qui sont déjà installées là, dans la bibliothèque de code de votre disque.

C'est tout simplement stupide et criminel. Cela gâche l'expérience, autrement exemplaire, de sortir un Mac de sa boîte pour l'acheteur d'un Mac à titre personnel. Quand j'ai dépensé plus de 4000 $ pour mon équipement matériel en Mac, (plus 80 $ pour iLife 05, plus qui sait combien pour toutes les versions de Mac OS X depuis la Beta jusqu'à Tiger), je me trouve personnellemnt insulté de ne pas encore avoir le droit aux "merveilles" de QuickTime Pro.

Oui, bien sûr, je peux télécharger une application de lecture de séquences vidéo, et trouver un greffon pour le navigateur QuickTime. Je peux regarder des extraits vidéo sous iTunes, qui ne pourront passer en plein écran qu'avec la clé magique de QuickTime Pro. ou je peux chercher sur Google un code de clé QuickTime Pro illégitime. Je peux même me fendre des 30 $. Mais ce n'est pas l'argent qui me tourmente, c'est le principe. Je serais content si Apple augmentait simplement le prix de son matériel de 30 $. Sur une facture de 4 000 $, c'est presque une erreur d'arrondi.

Bouh... la tirade est finie.

Résumé sur QuickTime 7

En dépit de l'irritation envers "l'impôt QuickTime Pro", QuickTime 7 est la mise à jour la plus importante de QuickTime de toute l'ère Mac OS X. Elle résout des problèmes d'architecture qui duraient depuis longtemps, elle permet à plusieurs autres nouvelles technologies de Tiger de faire des choses dont on aurait seulement pu rêver avec QuickTime 6 ou avant, elle inclut son propre codec vidéo parmi les meilleurs, et elle est finalement acceptée par Cocoa. Le nouveau QuickTime Player est assez bon pour renforcer l'opinion générale (très uniformisée dans la communauté Mac), que la ré-écriture d'une application sous Cocoa la rend automatiquement meilleure. QuickTime 7 a mis longtemps à arriver, mais il s'est révélé valoir l'attente.

(Et si Apple ressent qu'il n'y a plus rien à faire pour QuickTime 8 à part produire de nouveaux greffons pour la soupe à l'alphabet des codecs audio et vidéo, des pistes de sous-titres, et des formats de contenu utilisés dans les fansubs, vous ne m'entendrez pas me plaindre.)

(1) Note du traducteur : un coup de patte à Bertrand Serlet, d'origine Française, dont les présentations à la WWDC sont pour moi les plus faciles à suivre !