delete newVideSample;
Это не освобождает память, выделенную для newVideoSample->buffer
, однако - вы должны освободить ее явно перед удалением.
//Free newVideSample->buffer if it was allocated using malloc
free((void*)(newVideSample->buffer));
//if it was created with new, use `delete` to free it
delete newVideSample->buffer;
//Now you can safely delete without leaking any memory
delete newVideSample;
Обычно этот вид освобождения записывается в деструктор класса, так что он будет вызываться автоматически при delete
динамически созданном объекте.
Спасибо @steve за упоминание этого:)