From 45697d54f90ed26a6fa568b6fedef760417a131e Mon Sep 17 00:00:00 2001 From: nick black Date: Wed, 27 Nov 2019 15:51:40 -0500 Subject: [PATCH] libav: pass AVFrame back through #61 --- src/lib/libav.c | 3 +-- src/view/main.cpp | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/libav.c b/src/lib/libav.c index 2f824df38..1a40ec106 100644 --- a/src/lib/libav.c +++ b/src/lib/libav.c @@ -40,8 +40,7 @@ AVFrame* ncvisual_decode(struct ncvisual* nc){ do{ ret = avcodec_receive_frame(nc->codecctx, nc->frame); if(ret == AVERROR(EAGAIN) || ret == AVERROR_EOF){ - // FIXME can we still use nc->frame? - return NULL; + return nc->frame; // FIXME is this safe? could it have been blown away? }else if(ret < 0){ fprintf(stderr, "Error decoding AVPacket (%s)\n", av_err2str(ret)); return NULL; diff --git a/src/view/main.cpp b/src/view/main.cpp index 03d9611b3..93741b1cb 100644 --- a/src/view/main.cpp +++ b/src/view/main.cpp @@ -12,7 +12,9 @@ void usage(std::ostream& o, const char* name, int exitcode){ } int ncview(struct ncvisual* ncv, const notcurses_options* opts){ - ncvisual_decode(ncv); + if(ncvisual_decode(ncv) == nullptr){ + return -1; + } auto nc = notcurses_init(opts); if(nc == nullptr){ return -1;