 Qu'est-ce que c'est que Petit V, c'est un merveilleux petit lechiel de montage vidéo qui est basé sur G-Strummer et qui est écrit en piton. Et son but c'est d'être un truc qui est facile à utiliser mais qui en même temps est un truc qu'on pourrait utiliser pour des productions plus professionnelles si il n'était pas aussi bogué. Donc l'intérêt de pourquoi c'est basé sur G-Strummer c'est que dépendamment des plugins qu'on a installés sur sa machine, des plugins G-Strummer, on peut avoir à peu près n'importe quoi en entrée, n'importe quoi en sortie comme codec multimédia, des trucs comme ça. Donc oui, il est traduit en 40 langues, il fonctionne sous l'unique, c'est entièrement libre, c'est un projet ouvert. Puis n'importe qui peut contribuer à ce truc-là et j'ai une politique de review de 3 semaines. Donc en général, si vous essayez de nous envoyer un patch, on va essayer de le reviewer de l'Emergie en 3 semaines, ça aussi c'est de la crap complète. Donc c'est ça. Comme je suis nouveau ici, et que je connais à peu près personne dans la salle sauf lui, je vais prendre deux petites minutes pour m'en présenter peut-être quand même. Moi je suis Jean-François et à la base je suis un peu un cinéaste designer et tout ça, pas vraiment un programmeur de profession. Petit vie c'est mon hobby depuis des années, mais je suis un peu plus actif sérieusement depuis 2011. Et donc Piton, c'est un hobby aussi. Et j'en connais juste assez sur les autres langages de programmation pour pouvoir les fuir. Et donc oui, je suis un hobbyiste. Et savoir coder une petite application en Piton pour un marché niche, c'est pas toujours le truc le plus glamour. Et donc des fois ça fait des situations cocasses quand on passe une entrevue. Et en même temps j'ai aussi vu le contraire se produire, ce qui m'a amené à mon emploi actuel. Donc petit disclaimer, je tenais à dire, je suis présentement employé chez Collabora, une compagnie de leciel Lib puis vous connaissez peut-être ou pas. Mais je ne suis pas très payé à travailler sur Petit vie, donc ça reste un hobby. Je viens vous parler comme membre de la communauté. Et donc je ne suis pas là pour vous vendre de la salade. Ceci étant dit, si vous avez de la business à faire dans le monde du multimédiaux autour de Petit vie, vous viendrez me voir autour d'une bière. Donc c'est ça. Maintenant que vous savez qui je suis, on va voir un peu d'où Petit vie vient, mais très rapidement. Première chose qu'elle montre dans ce nom, c'est quoi ce nom ? C'est quoi ce nom ? Eh bien essentiellement, c'est parce que c'est un projet de fin d'études d'un Français à Epitech. Et puis il s'est dit, ah, Epitech, mais Petit vie. Oui, Petit vie. Ok. Et donc c'est pour ça qu'on a un nom bizarre. Ça a commencé autour de 2004, machin de trucs. Moi, dans ce temps-là, je suis encore jeune et naïf et tout ça. Puis je me suis dit, oh, c'est super cool, le lochet de montage vidéo. Et puis ça, on vit ça. Dans six mois, je vais pouvoir damper Vegas. Et c'est ça. C'était en 2005. Puis, bon, il y en a beaucoup à dire, mais je pourrais passer une heure juste sur l'histoire. Donc je vous souhaite toutes les explications de pourquoi ça a pris autant de temps pour se rendre à ce qu'on est ou bien encore l'implication de certaines personnes ou de certaines compagnies ou des stagiaires pour des projets Google Summer of Code. Je veux juste peut-être attirer votre attention sur le graph qu'on ne voit pas vraiment parce qu'on a un éclairage assez pourri, mais ce n'est pas grave. Sur le graph de l'évolution du code base, un nombre de lignes de code. Il y a deux patterns importants. Fin de 2005, d'abord, ça a été commencé en C. Et puis là, il s'est dit, c'est con du C. Il a tout écrit en piton. Puis ça a monté, ça a monté, ça a monté, ça a monté jusqu'à il y a à peu près l'été dernier ou l'an dernier. Il s'est dit, oh fuck, c'est un spaghetti. Et donc, c'est là qu'on a commencé la migration à ce qu'on appelle GES, G-Strummer Editing Services. Et ça refait le deuxième plongeant du truc de lignes de code. Moi, ce qui m'énerve là-dedans, c'est que ça fait baisser la valeur monétaire de Petit-V sur OHLO. Mais c'est un détail. Et donc, qu'est-ce que c'est que GES au travers de ça? Effectivement, on n'est pas assez de 50 000 lignes de piton un peu spaghetti au final parce que c'était des années et des années de trucs accumulés. Ça devenait un petit peu difficile à déboiller avec G-Strummer. On enlevait plein de codes en remplaçant ça, on enlevait en coeur, puis en disant, ça va devenir une librairie externe, une librairie qui va être vraiment intégrée avec G-Strummer. Donc, c'est une librairie en C. Ouais, c'est du C. Moi, je peux pas y contribuer, mais c'est pas grave. Les gens de G-Strummer aiment bien le C parce que ça facilite leur débagage. Puis pour les codes d'utilisation qu'on a là, c'est plus performant. Puis c'est essentiellement l'évolution naturelle de toutes les années d'effort puis toutes les apprentissages qu'on a fait sur PTIV au fil du temps, où on se sentait que vraiment il y avait quelque chose qui me manquait. Et donc, pour vous situer un petit peu, on aime bien les schémas de ce genre-là, de mon déprimeur. Dans le monde autour de PTIV, il y a G-Strummer qui fait toute la question du multimédia. J'étais cas pour ceux qui connaissent pas vraiment les nœuds, c'est une librairie graphique pour faire des boutons, des boutons, des labels, des trucs comme ça, des finites, des choses. C'est pour fortes l'interface graphique. Go Canvas, c'est un autre truc fucking obscure. C'est une espèce de librairie de dessins par-dessus Cairo en GTK, en tout cas. On va domper ça et on va remplacer par cloteur un jour. Au-dessus de G-Strummer, il y a Gene Online qui est une librairie qui sert essentiellement à faire des pipelines dynamiques et à gérer un peu les éléments de les notions de non-linéaire. De non-linéarité dans une question de pipeline G-Strummer, en tout cas. Avant, Petit V s'interagissait directement avec Gene Online et maintenant s'interagit avec GES et GES se démerde avec Gene Online. Donc essentiellement, Petit V, c'est pas mal juste une interface graphique de nos jours. Puis donc, ouais, GES c'est bien parce que au final, ça fait en sorte qu'on enlève toute la partie compliquée et chiante et puis ça peut être utilisé pour toutes sortes de projets mais c'est pas juste pour Petit V. C'est pas un moteur pour Petit V en particulier. C'est un truc qui peut être sur votre téléphone portable comme ça ou juste sur votre serveur BeWolf, votre cluster BeWolf. C'est une solution pour faire toutes sortes de choses, pas juste l'édition. Vous pouvez faire la lecture de l'encodage, de l'acquisition, de la gestion de format, toutes sortes de assets management. Bref, c'est un truc pour faire de l'édition et puis c'est pas juste pour la vidéo, c'est aussi si vous voulez faire un logiciel d'édition audio pour y utiliser GES pour le faire. Puis donc, ce qu'on voit à l'écran, c'est le fameux Nokia N9, le smartphone que vous ne pouvez pas acheter ici parce que Nokia ne voulait pas que vous l'achetez ici pis que je devrais mettre sur mute, voilà. Puis ça s'est utilisé sur ce téléphone pour un logiciel gratuit et open source d'édition vidéo. Ça a aussi servi, par exemple, ça a été montré dans une interface web avec WebKit. Ça a été aussi utilisé dans une tablette pour une autre démonstration puis ça va être utilisé dans divers autres projets à venir. Mais donc, pour l'instant, le plus gros consommateur de GES c'est évidemment PetitV. Pourquoi c'est intéressant pour PetitV en particulier, c'est le fun. T'enlève 20 000 lignes de code pis tu rajoutes des fonctionnalités et t'enlèves des bugs, donc win-win partout. Puis en plus, tu passes de genre 150 fichiers dans ton source tree, genre 25 ou je sais pas quoi. En bref, c'est beaucoup moins mêlant les noms du sens pis moi je m'y retrouve donc je suis content. Pis y'a plus d'affaires, est-ce que ça ça va dans l'interface graphique ou est-ce que c'est le bout de code là, en fait ça fait partie du back-end pis de problèmes là-dessus. Puis essentiellement, ceux qui veulent contribuer, qui veulent vraiment s'intéresser et qui sont en train d'avoir des espèces de gourous complètement tordus de g-streamer. Donc c'est très bien sur ce point-là. Là je vais arrêter de parler de gs parce que c'est pas le sujet principal. Pis si vous êtes curieux de toute façon vous pouvez aller voir, j'ai donné une présentation là-dessus à San Diego pis c'est sur le site de PetitV de toute façon y'a plein de présentations là-dessus. Donc, si vous avez remarqué là, j'ai dit que gs c'est en C pis c'est diabolique de toute façon pis c'est en tout cas, c'est créant C comme g-streamer, comme le reste de g-streamer pis le piton là-dedans. C'est là qu'on le rend dans la partie intéressante. Si on vient au merveilleux diagramme de tantôt y'a G Object G Object qui peut servir à diverses fins comme des fins d'insulte et des choses comme ça. C'est une technologie de Gnome qui apporte la notion d'orienter objets au C entre autres. Donc déjà vous devriez avoir un petit peu peur mais en ce cas. Attentionnellement pour interagir avec GTK avec g-streamer tout ça, on utilisait des bindings pitons statiques. Par exemple, PyGTK ou bien GST Python ou des choses du genre. Sauf que les gars de Gnome sont dit ah fuck that shit, ça m'énerve maintenir des bindings à la main c'est con. Et donc depuis environ un an, il y a de ce qu'on appelle l'introspection un peu partout dans Gnome. Donc on a G Object qui est introspectable par toutes sortes de langues. Donc on peut accéder à Librarie qui est écrit en C à travers l'introspection, qui utilise G Object. Librarie qui utilise G Object on peut accéder à travers Python, Java et je sais pas moi, n'importe quoi qui peut fonctionner avec l'introspection, ça marche. Et personne a besoin d'écrire la glu qui vente les deux manuellement. Puis d'updater ça quand la PI change à chaque fois. Donc tout est automatique, c'est génial sur ce point-là. Donc ça c'est un point plutôt cool. Si vous voulez jouer avec de l'introspection il y a comme des heures d'aventure à jouer avec ça. Mais ça, ça pourrait être une autre présentation à part. Un autre truc qui est cool c'est que c'est testé automatiquement avec Doctail, qui est un machine de test en Python un test d'interface graphique qui utilise la couche d'accessibilité de GNOME et de GTK et de n'importe quoi. Et donc moi je lance mon ordi puis je mange mes muffins et je regarde l'ordi c'est testé lui-même. Et essentiellement c'est un langage super simplifié pour dire clique sur ce piton-là et ensuite attend-toi ce qui est cette fenêtre-là qui apparaissent avec ce titre-là et puis ça marche. Ce qui est génial c'est qu'au lieu d'avoir ce qu'on appelle des unit tests donc des tests unitaires dans le fond c'est vraiment une fonction à ce qu'elles retournent les bons trucs mais là on teste vraiment comment le logiciel serait utilisé dans le vrai monde dans le monde réel. Donc ça c'est vraiment cool et en plus c'est plus facile à faire pour moi c'est plus facile à imaginer ça qu'un espèce de truc abstrait. Et donc Doctail c'est bien c'est super simple puis ça c'est un exemple de bout de code qu'on ne peut pas lire enfin plus ou moins. Ouais je pourrais c'est ça mais il me semble que c'est assez aléatoire Ah oh oh oh ok Ouais qu'est-ce qu'il y a là-dedans en fait J'ai pas cette fonctionnalité là. Si mon logiciel de présentation était fait en piton j'aurais pu la rajouter mais non il est fait en C Donc ouais dans ce truc-là on a des trucs genre en fait j'ai plein de variables là-dedans que je me suis mis comme raccourci parce que je n'ai pas envie de faire une espèce de 3 niveaux d'appel ou je sais pas quoi à chaque fois mais bon dans Petitvie j'ai un truc qui s'appelle le viewer j'ai un truc qui s'appelle le media library mais bon je peux dire après avoir importer telle truc attend-toi est-ce que ce widget-là soit visible dans l'interface graphique ensuite inserve-moi un clip c'est une fonction que j'ai rajouté quelque part pour des besoins de test ça fait pas partie de Doctail insert clip safe project non plus ok maintenant que tu as inséré un clip et que tu as enregistré le projet cette info bar là ne devrait plus s'afficher attend une demi seconde parce que si il va trop vite ça va foirer puis clique sur le menu projet puis ensuite dans le sous menu tu cliques sur new et là tu vas billouiller dans le nouveau dialogue qui va apparaître là et tu vas t'attendre à ce qu'il y ait tel nombre d'objets qui ont tel valeur des choses comme ça donc c'est vraiment un truc ça se lit très bien, ça se caste très bien puis c'est très amusant à faire en fait il faut juste un peu de l'imagination de quelle façon je peux casser mon leciel aujourd'hui et donc une fois que tu as ça tu peux faire plein plein plein refactoring dans ton leciel et pas avoir peur de tout casser sans t'en vendre compte parce que tu n'as pas besoin de tout retester ton interface graphique donc ça c'est absolument génial autre maintenant on peut réaliser l'illumière autre truc absolument génial pour les pistonneux et qui vous a intéressé c'est que le code de ptv se conforme au standard de style de piston c'est-à-dire pimp 8 et donc tu peux pas commiter du code dans ptv si il ne respecte pas pimp 8 parce que Git va te bloquer donc oui je suis assez maniaque là-dessus il y a juste peut-être une règle ou deux que je ne respecte pas genre les lignes de 40 80 colonnes ça ça je vais l'utiliser j'ai utilisé la vie j'ai utilisé la vie et donc il reste 6 minutes c'est mieux carrière c'est mieux que du C il faut pas me parler de PHP qu'est-ce qu'on pourrait dire de ptv dans l'avenir ça va être bien ça va sauver des chatons mais en ce moment ce qui nous empêche de réaliser c'est des bugs majeurs dans Gstreamer et G9n et le problème c'est quand on en réparer il peut en avoir un caché en-dessous qu'on n'avait pas vu parce qu'il était caché par l'autre pour ça on a besoin d'aide mais ça prend du bon de connaisse le C donc ça prend un petit bout de temps mais à part ça dans ptv ça va on pourra plus se parler autour d'une bière oui c'est bien ça où se trouve le code pour les effets spéciaux oui mais avant le code base était pas mal plus massif maintenant c'est vraiment fx.py c'est pas mal plus propre que ça l'était avant les effets sont gérés par gs c'est tout ça donc c'est vraiment il y a beaucoup moins maintenant c'est plutôt je dis je demande à gs c'est quoi la liste des effets puis je veux que tu me mettes cet effet là sur ce clip là et puis ptv vraiment c'est plutôt réfléchir à penser à une bonne interface graphique pour aller avec comment ça va interagir connecter les trucs ensemble mettre la glu puis hop puis après se taper quelques bugs dans G9n oui non les effets sont une pipeline entièrement en OpenGL avec Clutter ou je sais pas quoi Clutter 5 n'importe quoi dans Gstreamer donc mais c'est qu'il faudrait porter les effets, les filtres, les trucs comme ça dans Gstreamer qui n'ont pas été portés à un pipeline OpenGL disons mais tout se fait s'il y a quelqu'un pour le faire mais voilà il y a juste 24 heures dans une journée il y a un bug d'ouvert là-dessus sur le bug tracker de Mozilla mais personne qui l'a réglé encore pour l'affaire de 24 heures euh oui oui si tu connais plusieurs workaround donc est-ce que PTV est utilisable ? ça dépend de tes besoins moi j'ai fait du montage vidéo avec puis les vidéos qui sont sur le site de PTV tu peux aller voir le site de PTV et voir quelles vidéos qui ont été fait avec tu peux faire des trucs assez bien mais des fois tu peux tomber sur des bugs assez bizarres donc il faut peut-être aller me demander est-ce que ce codec là ça fonctionne vraiment comme il faut on est dans la situation on a la vieille version stable qui fonctionne et qui marche mais qui commence à être vieille puis on a réglé plein de trucs dans la nouvelle version mais on peut pas encore réaliser la nouvelle version parce qu'elle est bloquée sur autre chose de manière générale ça marche mais la route est longue et puis le ciel de montage vidéo c'est extrêmement sophistiqué comme besoin mais c'est vraiment terminé donc la réponse c'est ça dépend du besoin parce que j'en ai dit il y a quelques autres petits projets pour ceux qui se disent bon ok c'est bloqué sur la partie multimédia G steamer on peut travailler sur autre chose en attendant mais on peut faire d'autres choses on peut travailler par exemple sur les keyframes ou faire une bonne interface graphique pour éditer les titres s'il y a quelqu'un qui est bon en truc abstrait ou en dessin sur des canvases des trucs comme ça mais pas avec une tablette mais avec du code j'aimerais bien avoir de l'aide là dessus parce que c'est assez abstrait pour moi puis on aimerait par exemple refaire la timeline donc toute la table de montage remplacer goût canvas mettre clutter à la place et donc là on aurait une timeline en openGL et donc on pourrait faire des animations avec clutter on pourrait faire des animations tout smooth et des trucs comme ça ça serait bien et puis aussi on dépendrait plus d'une librairie qui n'a pas été admise à jour depuis des années donc moi c'est cool on a un projet qui est intéressant du point de vue technologiquement et dans ses buts et dans son esprit puis on est très sympathique sur RC donc vous pouvez venir me voir, vous pouvez ping in et co-hio puis même si je dors généralement après un bout de temps le code est bien séparé bien archi-texturé le UI c'est séparé du coeur et tout ça puis on est là depuis très longtemps donc on a l'expérience on réinvente pas la roue puis si il y a quelque chose à réparer dans G-Stumer on le répare dans G-Stumer au lieu de réparer un hack dans notre application à Python et puis de toute façon si vous avez amené un patch on va faire de notre mieux pour le merger dans les trois semaines mais s'il vous plaît faites-le sur la version Git pas sur une version vieille de deux ans c'est vraiment intéressant pour rejoindre le truc puis what else, Nespresso si vous êtes intéressé dans le fond vous pouvez venir me voir puis je vais vous aider à s'accepter votre environnement parce que pour faire rouler la version de développement en ce moment, si vous n'avez pas de G-Stumer 1.0 ou 1.x, ça peut être un peu plus compliqué mais à part ça c'est relativement facile parce que le code est pas mal plus simple qu'avant donc c'est ça