AECS-informatique

Dépôt git pour les ateliers d’informatique à l’AECS

View project on GitHub

Programmation C et flux multimedia

Dans cette session, nous verrons un aperçu de concepts de programmation à l’aide du langage C qui est (avec ses variantes C++, Objective C, C#) très utilisé dans l’industrie. Nous prendrons pour exemple une bibliothèque de manipulation de sons et d’images afin d’étudier et de modifier des petites fonctions d’un module utilisé par un mini-lecteur multimedia.

Capture d’écran

Objectifs pédagogiques

  • Syntaxe de base C: fonction, variable, condition, structure, switch, etc
  • Compilation d’un programme.
  • Execution de programme avec arguments.
  • Structure de graphe.
  • Édition d’une mini-bibliothèque C
  • Bibliothèque GStreamer.

Déroulement possible de la session

  1. Introduction.
  2. Compilation avec make et execution du programme avec ./run-pipeline.
  3. Télécharger https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.webm et passer le fichier comme argument de ./run-pipeline.
  4. Étudier pipeline.h et pipeline.c
  5. Modifier print_keyboard_commands() pour afficher un message différent.
  6. Ajouter une commande ‘P’ dans handle_keyboard_command() qui affiche si le son est allumé ou éteint.
  7. Ajouter des commandes ‘+’ et ‘-‘ pour augmenter ou diminuer le volume
  8. Ajouter des filtres vidéo dans setup_pipeline(), par exemple mirror, ASCII art, rotate, etc
  9. Selon le temps disponible, ajouter plus de filtres et de commandes.

Installation

L’environnement suivant sera mis à disposition pour cette session:

  • Linux Mint >= 21
  • Paquets make gcc libgstreamer1.0-dev