82 int h, plane, src_line_step, dst_line_step, line_size,
line;
91 "frame with same field order" :
"progressive frame");
107 "picture will move %s one line\n",
110 for (plane = 0; plane < 4 && frame->
data[plane] && frame->
linesize[plane]; plane++) {
111 dst_line_step = out->
linesize[plane];
112 src_line_step = frame->
linesize[plane];
114 dst = out->
data[plane];
115 src = frame->
data[plane];
122 for (line = 0; line < h; line++) {
124 memcpy(dst, src + src_line_step, line_size);
126 memcpy(dst, src - 2 * src_line_step, line_size);
128 dst += dst_line_step;
129 src += src_line_step;
137 dst += (h - 1) * dst_line_step;
138 src += (h - 1) * src_line_step;
139 for (line = h - 1; line >= 0 ; line--) {
141 memcpy(dst, src - src_line_step, line_size);
143 memcpy(dst, src + 2 * src_line_step, line_size);
145 dst -= dst_line_step;
146 src -= src_line_step;
157 #define OFFSET(x) offsetof(FieldOrderContext, x)
158 #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
188 .
name =
"fieldorder",
191 .priv_class = &fieldorder_class,
193 .
inputs = avfilter_vf_fieldorder_inputs,
194 .
outputs = avfilter_vf_fieldorder_outputs,