giulio98 / libcapture

libcapture is a multiplatform c++ library that allows to capture the display and the microphone audio.
GNU General Public License v3.0
12 stars 3 forks source link

Uso smart-pointers / classi wrapper #2

Closed lulor closed 2 years ago

lulor commented 2 years ago

Sarebbe comodo non dover gestire esplicitamente i puntatori grezzi e il rilascio della memoria, ma non saprei quale approccio abbia più senso.

lulor commented 2 years ago

Al momento occorre ancora:

lulor commented 2 years ago

Alla fine non ho creato una classe per ogni struttura, ma ho aggiunto un paio di struct template in deleter.h ed alcuni alias in common.h per poter gestire più comodamente gli smart pointers della libreria standard. L'idea è presa da qua.

Alcune strutture come AVDictionary secondo me non possono essere gestire in modo furbo con degli smart pointers visto che quasi tutte le funzioni ne richiedono il puntatore a puntatore, perciò le ho lasciate così.

Ho provato a registrare qualche minuto di video e il consumo di RAM di sembra abbastanza costante, quindi non dovrebbero esserci leaks.

In generale ho cercato di seguire questo schema per i puntatori:

Non sono però ben sicuro di che modello di possesso dare ai pacchetti/frame restituiti dalle varie strutture dati (per ora ci sono degli shared_ptr)