diff --git a/libavfilter/vf_kerndeint.c b/libavfilter/vf_kerndeint.c index 8449d00e62..9b77e09e58 100644 --- a/libavfilter/vf_kerndeint.c +++ b/libavfilter/vf_kerndeint.c @@ -40,6 +40,7 @@ typedef struct { int frame; ///< frame count, starting from 0 int thresh, map, order, sharp, twoway; int vsub; + int is_packed_rgb; uint8_t *tmp_data [4]; ///< temporary plane data buffer int tmp_linesize[4]; ///< temporary plane byte linesize int tmp_bwidth [4]; ///< temporary plane byte width @@ -100,6 +101,7 @@ static int config_props(AVFilterLink *inlink) const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(inlink->format); int ret; + kerndeint->is_packed_rgb = av_pix_fmt_desc_get(inlink->format)->flags & PIX_FMT_RGB; kerndeint->vsub = desc->log2_chroma_h; ret = av_image_alloc(kerndeint->tmp_data, kerndeint->tmp_linesize, @@ -150,7 +152,7 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *inpic) const int sharp = kerndeint->sharp; const int twoway = kerndeint->twoway; - const int is_packed_rgb = av_pix_fmt_desc_get(inlink->format)->flags & PIX_FMT_RGB; + const int is_packed_rgb = kerndeint->is_packed_rgb; outpic = ff_get_video_buffer(outlink, AV_PERM_WRITE|AV_PERM_ALIGN, outlink->w, outlink->h); if (!outpic) {