#1 Le 26/06/2009, à 23:24
- wlourf
Python : problème de mémoire avec vlc
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.
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
Et voici le message de vlc lorsqu'il n'arrive plus à démarrer (vers le cinquantième démarrage) :
[00001054] main interaction error: Interaction control thread could not be created at interface/interaction.c:382 (Resource temporarily unavailable)
[00001054] main interaction error: Interaction control thread creation failed, interaction will not be displayed
[00001058] main stream error: Out of memory when allocating stream cache (12582912 bytes)
[00001059] main preparser error: preparser thread could not be created at playlist/thread.c:79 (Resource temporarily unavailable)
[00001055] main playlist error: cannot spawn preparse thread
[00001060] main interface error: interface thread could not be created at interface/interface.c:168 (Resource temporarily unavailable)
[00001060] main interface error: cannot spawn interface thread
[00001061] main interface error: interface thread could not be created at interface/interface.c:168 (Resource temporarily unavailable)
[00001061] main interface error: cannot spawn interface thread
[00001062] main interface error: interface thread could not be created at interface/interface.c:168 (Resource temporarily unavailable)
[00001062] main interface error: cannot spawn interface thread
Si je regarde la mémoire utilisée 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 !
Dernière modification par wlourf (Le 26/06/2009, à 23:34)
Hors ligne