[media] move to all-c allocation #1421

pull/1427/head
nick black 4 years ago
parent c1ee44b1b7
commit fceb0b5182

@ -269,19 +269,23 @@ int ffmpeg_resize(ncvisual* nc, int rows, int cols) {
} }
auto ffmpeg_details_init(void) -> ncvisual_details* { auto ffmpeg_details_init(void) -> ncvisual_details* {
auto deets = new ncvisual_details{}; auto deets = static_cast<ncvisual_details*>(malloc(sizeof(ncvisual_details)));
if(deets){
memset(deets, 0, sizeof(*deets));
deets->stream_index = -1; deets->stream_index = -1;
deets->sub_stream_index = -1; deets->sub_stream_index = -1;
if((deets->frame = av_frame_alloc()) == nullptr){ if((deets->frame = av_frame_alloc()) == nullptr){
delete deets; free(deets);
return nullptr; return nullptr;
} }
}
return deets; return deets;
} }
auto ffmpeg_create() -> ncvisual* { auto ffmpeg_create() -> ncvisual* {
ncvisual* nc = static_cast<ncvisual*>(malloc(sizeof(*nc))); auto nc = static_cast<ncvisual*>(malloc(sizeof(ncvisual)));
if(nc){ if(nc){
memset(nc, 0, sizeof(*nc));
if((nc->details = ffmpeg_details_init()) == nullptr){ if((nc->details = ffmpeg_details_init()) == nullptr){
free(nc); free(nc);
return nullptr; return nullptr;
@ -591,7 +595,7 @@ auto ffmpeg_details_destroy(ncvisual_details* deets) -> void {
av_packet_free(&deets->packet); av_packet_free(&deets->packet);
avformat_close_input(&deets->fmtctx); avformat_close_input(&deets->fmtctx);
avsubtitle_free(&deets->subtitle); avsubtitle_free(&deets->subtitle);
delete deets; free(deets);
} }
static const ncvisual_implementation ffmpeg_impl = { static const ncvisual_implementation ffmpeg_impl = {

@ -16,12 +16,9 @@ typedef struct ncvisual_details {
} ncvisual_details; } ncvisual_details;
auto oiio_details_init(void) -> ncvisual_details* { auto oiio_details_init(void) -> ncvisual_details* {
auto deets = new ncvisual_details{}; auto deets = static_cast<ncvisual_details*>(malloc(sizeof(ncvisual_details)));
if(deets){ if(deets){
deets->image = nullptr; memset(deets, 0, sizeof(*deets));
deets->frame = nullptr;
deets->ibuf = nullptr;
deets->framenum = 0;
} }
return deets; return deets;
} }
@ -34,8 +31,9 @@ auto oiio_details_destroy(ncvisual_details* deets) -> void {
} }
auto oiio_create() -> ncvisual* { auto oiio_create() -> ncvisual* {
ncvisual* nc = static_cast<ncvisual*>(malloc(sizeof(*nc))); auto nc = static_cast<ncvisual*>(malloc(sizeof(*nc)));
if(nc){ if(nc){
memset(nc, 0, sizeof(*nc));
if((nc->details = oiio_details_init()) == nullptr){ if((nc->details = oiio_details_init()) == nullptr){
free(nc); free(nc);
return nullptr; return nullptr;

Loading…
Cancel
Save