Un module pour le magntoscope numrique Video Disk Recorder (VDR).
Ajoute une source supplmentaire (FREEBOX)  VDR 

Dvelopp par:                  Olivier DJIAN <odjosc@free.fr>

Page d'accueil du projet:       http://www.panczyk.eu/vdr

Version la plus  jour sur le site :  http://www.panczyk.eu/vdr

Voir le fichier COPYING pour des informations sur la licence.


Restrictions :
==============

Ce module a seulement t test avec des sessions ne contenant qu'une sous-session utilisant un codec MP2T. Je ne sais pas si cela fonctionne avec plus ( essayer...).


Pr-requis :
==============

Pour utiliser ce module, la bibliothque LIVE555 Streaming Media est indispensable. Vous pouvez vous la procurer en vous rendant sur le site :
      http://www.live555.com/
Il vous suffit alors de tlcharger le code source liveMedia, compiler puis installer la bibliothque sur votre systme.

NB:  la date de rdaction de ce document, la bibliothque liveMedia fournie directement par le paquet DEBIAN-etch (liblivemedia-dev) ne fonctionne pas avec le module freeboxtv.

La fonctionnalit EPG (guide lectronique des programmes) est optionnelle. Si vous souhaitez l'activer, il vous faudra installer en plus  :
  - l'utilitaire xmltv
  - les bibliothques suivantes (archives ET fichiers headers) :
      libxml++ (version 2.6 ou ultrieure)
      glib (version 2.6 ou ultrieure)
      glibmm (version 2.4 ou ultrieure)

Si vous utilisez la distribution DEBIAN, vous pouvez rcuprer ces bibliothques  partir des paquets correspondants (etch) :
    apt-get install libxml++2.6-2 libxml++2.6-dev
    apt-get install libglib2.0-0 libglib2.0-dev
    apt-get install libglibmm-2.4-1c2a libglibmm-2.4-dev


Installation :
==============

Ce module a t dvelopp et seulement test sur les versions 1.4.x de VDR. Cependant, il devrait fonctionner sur des versions plus anciennes (non garanti mais  essayer...).

1- Comme dit plus haut, la bibliothque liveMedia est obligatoire et doit d'abord tre installe correctement sur votre systme. Si vous la construisez  partir du code source, faites attention  l'endroit o vous placez les diffrents fichiers. Le makefile fourni dans l'archive tar FreeboxTv suppose que les fichiers et rpertoires d'include de la bibliothque sont sous /usr/include (chemin par dfaut si elle est installe directement par le gestionnaire de paquets de votre distribution). Si par exemple vous avez compil puis install la biliothque sous /usr/local, vous devrez adapter le Makefile du module FreeboxTv en consquence (variable INCLUDES).

2- Comme tout autre module VDR, dpliez l'archive tar dans le rpertoire <VOTRE_REPERTOIRE_VDR>/PLUGINS/src. Crez ensuite un lien symbolique freeboxtv pointant sur ce rpertoire.

3- Placez-vous dans le rpertoire d'accueil des sources VDR :
      <VOTRE_REPERTOIRE_VDR>
  Crez ou ditez (selon le cas) le fichier Make.config puis ajoutez-y les lignes suivantes :
      LIBS += -L/usr/local/lib/liveMedia \
            -lBasicUsageEnvironment  -lgroupsock  -lliveMedia  -lUsageEnvironment

L-encore, vous devez faire attention  l'endroit o vous avez install les bibliothques que vous avez construites  partir des sources. Selon le cas, vous aurez peut-tre besoin de modifier la directive -L ci-dessus pour tre conforme  votre configuration.

3bis - Si vous ne souhaitez pas utiliser la fonctionnalit EPG (active par dfaut), commentez dans le fichier Makefile du plugin la ligne suivante puis passez directement  l'tape 4 : 
    FREEBOXTV_EPG = 1

  Dans le cas contraire, ajoutez les dclarations suivantes  la ligne LIBS du fichier Make.config dans le  rpertoire d'accueil des sources VDR (mme ligne qu' l'tape 3 ci-dessus) :
     -lglibmm-2.4 -lxml2 -lxml++-2.6

Comme prcdemment et selon votre configuration, vous pouvez avoir  adapter la directive -L ou modifier les numros de version dans les noms des bibliothques en question.

4- Ensuite :
      make plugins
      make
  Puis installez comme d'habitude les fichiers nouvellement gnrs.


Configuration :
==============

C'est probablement la partie la plus dlicate ;-)
Pour l'instant, les fichiers de configuration ne sont pas grs par l'intermdiaire du menu setup de VDR. Par consquent, vous devez le faire " la main".

1- D'abord, vous devez ajouter les dclarations des chanes freebox dans votre fichier channels.conf. La syntaxe correcte est dcrite dans la documentation de VDR (man 5 vdr). Comme la Freebox ne rcupre pas son flux DVB "par les airs", les frquences et autres paramtres de transmission n'ont aucun sens ici. Ils sont nanmoins obligatoires pour que le parseur de fichier channels.conf de VDR  fonctionne correctement. Vous devez donc en fournir des valeurs "ralistes" bien que totalement "bidons" ;-). Pour ne pas vous compliquer la vie, je vous suggre de toujours utiliser les mmes valeurs (sur chaque ligne) pour les champs Frequency, Parameters, Srate, Conditional access, SID, NID, RID.

Bien sr, les champs VPID, APID et TPID (si prsent) doivent avoir des valeurs valides. Obtenir de telles valeurs est probablement le plus difficile pour btir un fichier channels.conf correct pour ce module dans la mesure o il n'y a pour l'instant aucun moyen de les rcuprer automatiquement  partir du flux entrant. Vous pouvez toutefois tenter de les obtenir avec l'aide d'un lecteur multimdia sachant lire les flux RTSP - i.e. VLC (http://www.videolan.org/) par exemple.

Le champ le plus important est TID (cf la documentation VDR) car c'est lui qui assure la correspondance avec l'autre fichier de configuration de FreeboxTv et qui est utilis pour identifier de manire unique une chane (VDR channel ID). Vous pouvez choisir n'importe qu'elle valeur pour ce champ  partir du moment o  chaque chane en a une diffrente. C'est probablement une bonne ide que de choisir une valeur en rapport avec le numro de chane ou tout autre partie distinctive de son URL.

2- ATTENTION :  partir de la version 0.0.2 du plugin FreeboxTv, les fichiers de configuration sont placs dans le rpertoire :
      <VOTRE_REPERTOIRE_CONFIG_VDR>/plugins/freeboxtv

Par consquent, vous devez donc crer le fichier suivant
      <VOTRE_REPERTOIRE_CONFIG_VDR>/plugins/freeboxtv/channels.conf.freebox

Chaque ligne reprsente un triplet NID/Identifiant XMLTV/URL pour une chane et a la forme :
      <NID>:<XMLTV_Channel_ID>:<URL>

A chaque valeur de NID doit correspondre UNE ET UNE SEULE ligne avec le mme NID dans le fichier channels.conf.

Par exemple :
Si l'on trouve la ligne suivante dans channels.conf :
  France 2:219000:C12D0M64B8T8G32Y0:T:27500:163:1912:35:0:1:1:1201:0

Il doit y avoir une ligne comme celle-ci dans channels.conf.freebox :
  1201:C2.telepoche.com:rtsp://mafreebox.freebox.fr/freeboxtv/stream?id=201

NB: vous remarquerez dans l'exemple prcdent que j'ai utilis la valeur 1201 comme NID. Ma stratgie personnelle de dfinition est la suivante :
   NID = 1000 + (identifiant du flux dans l'URL)
Ce choix est purement arbitraire et vous tes libre d'en faire un autre. Encore une fois, notez que VPID (163), APID (1912) and TPID (35) sont des valeurs relles et valides (ce sont celles actuellement utilises par FREE pour le flux France2).

3- Pour obtenir le guide des programmes (EPG) sur le device FreeboxTv vous devez configurer le logiciel xmltv. Je ne dcrirai pas ici son fonctionnement ni mme ses principes. Je vous suggre de faire un tour sur le site http://xmltv.org/wiki/ pour plus d'information sur le sujet. Sachez simplement que j'ai fait le choix de respecter la philosophie du logiciel qui veut que l'on spare la collecte des informations de leur interprtation. En consquence, je n'ai pas intgr l'appel du "grabber" au code du plugin FreeboxTv. Vous avez donc le choix entre plusieurs possibilits pour la mise  jour des informations EPG :

      - Utiliser la crontab de la VDR-Box
      - Utiliser les commandes de maintenance de VDR
      - Toute autre mthode de votre choix pour lancer une commande  intervalle rgulier...

Comme vous lisez ce fichier en franais, je suppose que vous utiliserez le "collecteur" tv_grab_fr. Lors de son premier lancement, vous devez choisir les chanes qui vous intressent. Le processus de rcupration pouvant tre assez long, je vous conseille de ne slectionner que les chanes freebox (et mieux encore uniquement celles qui vous intressent vraiment). En effet, le processus de collecte est (volontairement) assez long pour ne pas surcharger les sites qui fournissent les programmes (site telepoche.com pour le grabber franais). Vous obtiendrez ainsi un fichier tv_grab_fr.conf dans votre  rpertoire ~/.xmltv. L'analyse du contenu de ce fichier tv_grab_fr.conf vous permettra de dterminer l'identifiant de chacune des chanes  inscrire dans votre fichier channels.conf.freebox. Cet identifiant est de la forme Cxxx.telepoche.com o xxx a comme valeur le numro suivant le mot-cl "channel" dans le fichier tv_grab_fr.conf. Voici quelques exemples de correspondances pour mieux comprendre le principe :

  Entre dans tv_grab_fr.conf               Identifiant dans channels.freebox.xmltv
    channel 2 france 2                ->          C2.telepoche.com
    channel 40 ab1                    ->          C40.telepoche.com

Le fichier channels.conf.freebox correspondant a donc l'allure suivante :

   1201:C2.telepoche.com:rtsp://mafreebox.freebox.fr/freeboxtv/stream?id=201
   1211:C40.telepoche.com:rtsp://mafreebox.freebox.fr/freeboxtv/stream?id=211

NB: Si vous choisissez uniquement les chanes freebox lors de la phase de configuration de xmltv, vous constaterez que beaucoup de chanes manquent  l'appel. En principe, il est possible d'utiliser  l'identifiant d'une chane TNT, SAT ou HERTZIENNE pour peu qu'elle diffuse les mmes programmes au mme moment (ce qui est le cas des chanes nationales diffuses via ces diffrents supports par exemple).

Une fois le fichier channels.conf.freebox correctement configur, vous devez faire excuter la commande suivante  intervalles rguliers par la mthode de votre choix (cf plus haut) :

    tv_grab_fr --day 2 --slow --output <VOTRE_REPERTOIRE_CONFIG_VDR>/plugins/freeboxtv/xmltv.freebox
 
La valeur aprs le mot-cl --day indique pour combien de jours vous voulez rcuprer les programmes. Plus cette valeur est grande, plus le processus est long. Le mot-cl --slow permet de d'obtenir plus d'informations, et en particulier les descriptions dtailles des programmes.

NB: Mme si vous n'utilisez pas la fonctionnalit EPG, le second champ doit tre prsent. Vous pouvez par contre y mettre une valeur quelconque qui ne sera pas interprte.

Deux modles ainsi qu'un fichier de configuration xmltv sont fournis dans le rpertoire "examples" :
  channels.conf-template qui peut tre fusionn avec votre fichier channels.conf  (dans le rpertoire config de VDR)
  channels.conf.freebox peut tre copi tel quel dans votre rpertoire <VOTRE_REPERTOIRE_CONFIG_VDR>/plugins/freeboxtv
  tv_grab_fr.conf qui peut tre copi tel quel dans votre rpertoire ~/.xmltv

A la date de rdaction de ce document, les deux fichiers modles fournis sont valides pour les abonns de FREE et sont donc utilisables tels quels, y-compris les identifiants XMLTV.


Usage :
=======

Comme d'habitude, ajoutez simplement -P freeboxtv sur votre ligne de commande vdr.

Choix du port client (local sur votre machine VDR) : 
A partir de la version 0.0.3, vous pouvez spcifier le port client sur lequel le serveur RTSP enverra le flux video, ce qui est prfrable au plan scurit car cela permet  ceux qui sont derrire un pare-feu de n'ouvrir que le port ncessaire.

La configuration de fait par l'interface VDR : 
  Menu -> Configuration -> Plugins -> Freeboxtv

Entrez la valeur dsire pour "Client Port Number".
NB : la valeur 0 indique que le serveur RTSP choisit lui-mme le numro de port.

C'est tout !

