From 36f7eb500c81ab6491e7e8bf7b8a3dfff252315e Mon Sep 17 00:00:00 2001 From: nick black Date: Wed, 2 Jun 2021 23:46:42 -0400 Subject: [PATCH] av_frame_free() instead of av_freep() in ffmpeg_destroy() #1712 --- src/media/ffmpeg.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/media/ffmpeg.c b/src/media/ffmpeg.c index 677549603..5171073bb 100644 --- a/src/media/ffmpeg.c +++ b/src/media/ffmpeg.c @@ -175,14 +175,14 @@ force_rgba(ncvisual* n){ sframe->linesize); if(height < 0){ //fprintf(stderr, "Error applying converting %d\n", inf->format); - av_freep(sframe->data); + //av_freep(sframe->data); av_freep(&sframe); return -1; } int bpp = av_get_bits_per_pixel(av_pix_fmt_desc_get(sframe->format)); if(bpp != 32){ //fprintf(stderr, "Bad bits-per-pixel (wanted 32, got %d)\n", bpp); - av_freep(sframe->data); + //av_freep(sframe->data); av_freep(&sframe); return -1; } @@ -191,6 +191,7 @@ force_rgba(ncvisual* n){ //fprintf(stderr, "SETTING UP RESIZE %p\n", n->data); if(n->details->frame){ if(n->owndata){ + // FIXME av_freep? av_freep(&n->details->frame); } } @@ -300,14 +301,14 @@ int ffmpeg_resize(ncvisual* n, int rows, int cols){ sframe->linesize); if(height < 0){ //fprintf(stderr, "Error applying scaling (%d X %d)\n", inf->height, inf->width); - av_freep(sframe->data); + //av_freep(sframe->data); av_freep(&sframe); return -1; } int bpp = av_get_bits_per_pixel(av_pix_fmt_desc_get(sframe->format)); if(bpp != 32){ //fprintf(stderr, "Bad bits-per-pixel (wanted 32, got %d)\n", bpp); - av_freep(sframe->data); + //av_freep(sframe->data); av_freep(&sframe); return -1; } @@ -318,6 +319,7 @@ int ffmpeg_resize(ncvisual* n, int rows, int cols){ //fprintf(stderr, "SETTING UP RESIZE %p\n", n->data); ncvisual_set_data(n, sframe->data[0], false); if(n->details->frame){ + // FIXME av_freep(&n->details->frame->data); av_freep(&n->details->frame); } } @@ -578,13 +580,13 @@ int ffmpeg_blit(ncvisual* ncv, int rows, int cols, ncplane* n, if(rgba_blit_dispatch(n, bset, stride, data, rows, cols, bargs) < 0){ //fprintf(stderr, "rgba dispatch failed!\n"); if(sframe){ - av_freep(sframe->data); + //av_freep(sframe->data); av_freep(&sframe); } return -1; } if(sframe){ - av_freep(sframe->data); + //av_freep(ncv->details->frame->data); av_freep(&sframe); } return 0; @@ -634,7 +636,7 @@ void ffmpeg_details_destroy(ncvisual_details* deets){ avcodec_close(deets->codecctx); avcodec_free_context(&deets->subtcodecctx); avcodec_free_context(&deets->codecctx); - av_freep(&deets->frame); + av_frame_free(&deets->frame); //avcodec_parameters_free(&ncv->cparams); sws_freeContext(deets->rgbactx); sws_freeContext(deets->swsctx);