Bonjour,
J'ai commencé un programme en Python basé sur vlc (pour enregistrer des radios).
Je dois donc arrêter/lancer vlc plusieurs fois pendant l'exécution du programme.
Pour ça j'utilise le Python Binding de vlc qui permet d'intégrer facilement un "lecteur" dans l'interface graphique.
Pour vlc python bindings, c'est ici
http://wiki.videolan.org/Python_bindings Même avant d'arriver à l'interface graphique, je n'arrive pas à démarrer vlc plus de 50 fois: vlc me jette avec une erreur du type 'Out of Memory'
Voici un bout de code qui reproduit le problème (lance vlc sans rien lire, attends une seconde, sort de vlc ).
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import vlc, time
itv=1 #intervalle in seconds
idx=0
while True:
idx+=1
player=vlc.MediaControl()
time.sleep(itv)
print (str(idx)+"---")*10
player.exit()
del player
Si je regarde la mémoire utilisée par ce script, je vois que celle-ci augmente comme si Python ne libérait pas la mémoire lors du "delete" du player.
J'ai essayé d'utiliser gc mais sans succès.
Si quelqu'un à un avis sur cette question, je suis preneur !
(j'ai testé cela sur ubuntu et sous windows c'est pareil sauf que la mémoire allouée est plus importante : j'obtiens 150 démarrages)
Merci (j'ai tourné le problème dans tous les sens, sans succès..., je dois rater quelquechose, c'est sûr!)