|
|
|
@@ -295,13 +295,15 @@ static int config_output(AVFilterLink *outlink) |
|
|
|
AVFilterContext *ctx = outlink->src; |
|
|
|
AVFilterLink *toplink = ctx->inputs[TOP]; |
|
|
|
AVFilterLink *bottomlink = ctx->inputs[BOTTOM]; |
|
|
|
BlendContext *b = ctx->priv; |
|
|
|
const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(toplink->format); |
|
|
|
|
|
|
|
if (toplink->format != bottomlink->format) { |
|
|
|
av_log(ctx, AV_LOG_ERROR, "inputs must be of same pixel format\n"); |
|
|
|
return AVERROR(EINVAL); |
|
|
|
} |
|
|
|
if (toplink->w != bottomlink->w || |
|
|
|
toplink->h != bottomlink->h || |
|
|
|
if (toplink->w != bottomlink->w || |
|
|
|
toplink->h != bottomlink->h || |
|
|
|
toplink->sample_aspect_ratio.num != bottomlink->sample_aspect_ratio.num || |
|
|
|
toplink->sample_aspect_ratio.den != bottomlink->sample_aspect_ratio.den) { |
|
|
|
av_log(ctx, AV_LOG_ERROR, "First input link %s parameters " |
|
|
|
@@ -317,21 +319,15 @@ static int config_output(AVFilterLink *outlink) |
|
|
|
} |
|
|
|
|
|
|
|
outlink->w = toplink->w; |
|
|
|
outlink->h = bottomlink->h; |
|
|
|
outlink->h = toplink->h; |
|
|
|
outlink->time_base = toplink->time_base; |
|
|
|
outlink->sample_aspect_ratio = toplink->sample_aspect_ratio; |
|
|
|
outlink->frame_rate = toplink->frame_rate; |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static int config_input_top(AVFilterLink *inlink) |
|
|
|
{ |
|
|
|
BlendContext *b = inlink->dst->priv; |
|
|
|
const AVPixFmtDescriptor *pix_desc = av_pix_fmt_desc_get(inlink->format); |
|
|
|
|
|
|
|
b->hsub = pix_desc->log2_chroma_w; |
|
|
|
b->vsub = pix_desc->log2_chroma_h; |
|
|
|
b->nb_planes = av_pix_fmt_count_planes(inlink->format); |
|
|
|
b->nb_planes = av_pix_fmt_count_planes(toplink->format); |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
@@ -435,7 +431,6 @@ static const AVFilterPad blend_inputs[] = { |
|
|
|
{ |
|
|
|
.name = "top", |
|
|
|
.type = AVMEDIA_TYPE_VIDEO, |
|
|
|
.config_props = config_input_top, |
|
|
|
.filter_frame = filter_frame, |
|
|
|
},{ |
|
|
|
.name = "bottom", |
|
|
|
|