les fonctions "thread_safe" et la programmation multi-thread

les fonctions "thread_safe" et la programmation multi-thread - Divers - Programmation

Marsh Posté le 23-09-2009 à 15:22:58    

Voilà,  
 
Deux threads qui utilisent la même fonction 'avcodec_open()'. cette fonction n'es thread_save, c à dire elle n'es pas ré-entrante. cette fonction appartiens à une bibliothèque (qui s'appelle libavcodec de FFmpeg).
 
l'exécution de ces deux threads donne des erreurs aléatoires (liés probablement à l'allocation mémoire faite par avcodec_open() ).
 
la question est : y a t il un moyen pour utiliser des fonctions qui ne sont pas ré-entrantes dans des exécutions en parallèle (multi-threads).
 
Notes :  
 - le but global est le décodage parallèle de deux flux vidéo (deux threads qui décode et affiche les images vidéo en même temps)
 - ce n'es pas un problème d'exclusion mutuelle. même avec des exécutions exclusives, ça ne fonctionne pas!  
 - je programme en C
 
mots clés : avcodec_open , ffmpeg , libavcodec


Message édité par iglance7 le 23-09-2009 à 15:46:08
Reply

Marsh Posté le 23-09-2009 à 15:22:58   

Reply

Marsh Posté le 23-09-2009 à 15:29:31    

une des solutions est d'essayer de dupliquer la bibliothèque ou de la linker statiquement, mais je ne sais pas si c faisable


Message édité par iglance7 le 23-09-2009 à 15:49:02
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed