AVFilterContext *ctx = outlink->src;
TransContext *trans = ctx->priv;
AVFilterLink *inlink = ctx->inputs[0];
- const AVPixFmtDescriptor *pixdesc = &av_pix_fmt_descriptors[outlink->format];
+ const AVPixFmtDescriptor *desc_out = av_pix_fmt_desc_get(outlink->format);
+ const AVPixFmtDescriptor *desc_in = av_pix_fmt_desc_get(inlink->format);
if (trans->dir&4) {
av_log(ctx, AV_LOG_WARNING,
trans->passthrough = TRANSPOSE_PT_TYPE_NONE;
}
- trans->hsub = av_pix_fmt_descriptors[inlink->format].log2_chroma_w;
- trans->vsub = av_pix_fmt_descriptors[inlink->format].log2_chroma_h;
+ trans->hsub = desc_in->log2_chroma_w;
+ trans->vsub = desc_in->log2_chroma_h;
- av_image_fill_max_pixsteps(trans->pixsteps, NULL, pixdesc);
+ av_image_fill_max_pixsteps(trans->pixsteps, NULL, desc_out);
outlink->w = inlink->h;
outlink->h = inlink->w;
return trans->passthrough ? ff_null_draw_slice(inlink, y, h, slice_dir) : 0;
}
+static const AVFilterPad avfilter_vf_transpose_inputs[] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .get_video_buffer= get_video_buffer,
+ .start_frame = start_frame,
+ .draw_slice = draw_slice,
+ .end_frame = end_frame,
+ .min_perms = AV_PERM_READ,
+ },
+ { NULL }
+};
+
+static const AVFilterPad avfilter_vf_transpose_outputs[] = {
+ {
+ .name = "default",
+ .config_props = config_props_output,
+ .type = AVMEDIA_TYPE_VIDEO,
+ },
+ { NULL }
+};
+
AVFilter avfilter_vf_transpose = {
.name = "transpose",
.description = NULL_IF_CONFIG_SMALL("Transpose input video."),
.query_formats = query_formats,
- .inputs = (const AVFilterPad[]) {{ .name = "default",
- .type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer= get_video_buffer,
- .start_frame = start_frame,
- .draw_slice = draw_slice,
- .end_frame = end_frame,
- .min_perms = AV_PERM_READ, },
- { .name = NULL}},
- .outputs = (const AVFilterPad[]) {{ .name = "default",
- .config_props = config_props_output,
- .type = AVMEDIA_TYPE_VIDEO, },
- { .name = NULL}},
+ .inputs = avfilter_vf_transpose_inputs,
+ .outputs = avfilter_vf_transpose_outputs,
.priv_class = &transpose_class,
};