Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4153 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  symboles faibles et écrasement au link (ffmpeg)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

symboles faibles et écrasement au link (ffmpeg)

n°2073747
theShockWa​ve
I work at a firm named Koslow
Posté le 04-05-2011 à 12:23:25  profilanswer
 

hello,
 
Je suis en train de jouer avec ffmpeg que j'ai recompilé (sous MSYS, donc via un GCC) et je l'utilise dans un projet compilé sous Visual Studio 2005 en C++.
 
Jusque là, tout se passait bien, mais j'ai noté une petite fuite mémoire, donc, pour la tracker, j'ai voulu remplacer les symboles av_malloc, av_realloc et av_free comme prévu dans la lib ffmpeg.
 
Voilà la déclaration des symboles :

Code :
  1. void *av_malloc(FF_INTERNAL_MEM_TYPE size) av_malloc_attrib av_alloc_size(1);
  2. void *av_realloc(void *ptr, FF_INTERNAL_MEM_TYPE size) av_alloc_size(2);
  3. void av_free(void *ptr);


 
du coup, j'ai fait mon implémentation assez logiquement :

Code :
  1. extern "C"
  2. {
  3. void *av_malloc( size_t iSize ) { /* ... */ }
  4. void *av_realloc( void *pData, size_t iSize ) { /* ... */ }
  5. void av_free(void *pData) { /* ... */ }
  6. }


 
Et donc, je n'attrappe que les appels à av_free. Ce qui semble donc gêner, ce sont les attributs sur av_malloc et av_realloc qui sont en fait des __attribute__((__malloc__)) et __attribute__((alloc_size(n))) après préprocesseur.
 
Il me semblait que ces attributs servaient seulement à des questions d'optimisation, donc je ne vois pas en quoi ca change quelqeu chose au niveau du linker.
 
Ca vous parle ?
 
 
Edit : Au cas où certains se le demanderaient, je compile en __cdecl par défaut
Edit 2 : FF_INTERNAL_MEM_TYPE correspond soit à unsigned int (vieille version du compilo ou de la lib) soit à size_t (version actuelle). En testant avec les deux, j'obtiens les mêmes résultats de toute façon.


Message édité par theShockWave le 04-05-2011 à 12:36:12

---------------
last.fm
mood
Publicité
Posté le 04-05-2011 à 12:23:25  profilanswer
 

n°2073776
theShockWa​ve
I work at a firm named Koslow
Posté le 04-05-2011 à 14:19:15  profilanswer
 

Bon, je me réponds tout seul, du coup, je me suis fait avoir comme un débutant : je link avec des libs statiques pour utiliser ffmpeg, mais ce ne sont que des interfaces vers les dll de ffmpeg. Du coup, mes symboles ne peuvent pas remplacer ceux de ffmpeg, sans surprise. La solution passera donc par une recompilation de ffmpeg en lib statique.


---------------
last.fm

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  symboles faibles et écrasement au link (ffmpeg)

 

Sujets relatifs
Follow this link dans google sur mon siteExplication balises méta et link
[resolu] MySQL-Link resource - erreur de placement d'accolade.Link error et Objective-C
Compilation en mode release (-02) : ca link plus avec gcc 4.4.2gcc linker et symboles non necessaires.
[VB] accès base SQL via "class Linq to SQL"link librarie
Problème de link étrange[Windows/Visual C++] Erreur de link "GetTime et KillTimer"...
Plus de sujets relatifs à : symboles faibles et écrasement au link (ffmpeg)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)