Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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