Bonjour,

je me permets de venir vers vous suite à un problème de mémoire avec gstreamer. J'ai de multiple questions sur le morceau de code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
    gst_init (&argc, &argv);
 
    string action ;
    cin >> action ;
 
    int SIZE = 99999;
 
    GstElement **source = NULL;
    source = new GstElement*[SIZE];
 
    for(int i=0;i<SIZE;i++){
        source[i] = gst_pipeline_new ("filesrc");
    }
 
    cin >> action ;
    for(int i=0;i<SIZE;i++){
        gst_object_unref(GST_OBJECT(source[i]));
    }
    cout << source[0] << endl;
    cin >> action ;
Quand je lance le programme, il consomme: 2Mo.
Après création des 99999 il consommes 150Mo
Après l'appel de la méthode gst_object_unref je tombe à 80Mo.

Ma grande question. Pourquoi, je ne retombe pas à 2Mo ? De plus, comment savoir si gst_object_unref fonctionne ? En effet, la mémoire semble bien libéré mais l'instruction suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
cout << source[0] << endl;
m'affiche l'adresse mémoire. est-il normal de ne pas avoir 0 ?

Merci