do { \
int idx = -1; \
\
- if (!*ref || !(*ref)->refs) \
+ if (!ref || !*ref || !(*ref)->refs) \
return; \
\
FIND_REF_INDEX(ref, idx); \
int ret = ref_fn(fmts, &ctx->inputs[i]->out_fmts); \
if (ret < 0) { \
unref_fn(&fmts); \
- av_freep(&fmts->list); \
+ if (fmts) \
+ av_freep(&fmts->list); \
av_freep(&fmts); \
return ret; \
} \
int ret = ref_fn(fmts, &ctx->outputs[i]->in_fmts); \
if (ret < 0) { \
unref_fn(&fmts); \
- av_freep(&fmts->list); \
+ if (fmts) \
+ av_freep(&fmts->list); \
av_freep(&fmts); \
return ret; \
} \