91 "dir values greater than 3 are deprecated, use the passthrough option instead\n");
99 "w:%d h:%d -> w:%d h:%d (passthrough mode)\n",
100 inlink->
w, inlink->
h, inlink->
w, inlink->
h);
111 outlink->
w = inlink->
h;
112 outlink->
h = inlink->
w;
120 inlink->
w, inlink->
h, trans->
dir, outlink->
w, outlink->
h,
121 trans->
dir == 1 || trans->
dir == 3 ?
"clockwise" :
"counterclockwise",
122 trans->
dir == 0 || trans->
dir == 3);
148 for (plane = 0; out->
data[plane]; plane++) {
149 int hsub = plane == 1 || plane == 2 ? trans->
hsub : 0;
150 int vsub = plane == 1 || plane == 2 ? trans->
vsub : 0;
151 int pixstep = trans->
pixsteps[plane];
152 int inh = in->
height >> vsub;
155 int start = (outh * jobnr ) / nb_jobs;
156 int end = (outh * (jobnr+1)) / nb_jobs;
158 int dstlinesize, srclinesize;
162 dst = out->
data[plane] + start * dstlinesize;
163 src = in->
data[plane];
167 src += in->
linesize[plane] * (inh-1);
172 dst = out->
data[plane] + dstlinesize * (outh-start-1);
178 for (y = start; y <
end; y++, dst += dstlinesize)
179 for (x = 0; x < outw; x++)
180 dst[x] = src[x*srclinesize + y];
183 for (y = start; y <
end; y++, dst += dstlinesize) {
184 for (x = 0; x < outw; x++)
185 *((uint16_t *)(dst + 2*x)) = *((uint16_t *)(src + x*srclinesize + y*2));
189 for (y = start; y <
end; y++, dst += dstlinesize) {
190 for (x = 0; x < outw; x++) {
197 for (y = start; y <
end; y++, dst += dstlinesize) {
198 for (x = 0; x < outw; x++)
199 *((uint32_t *)(dst + 4*x)) = *((uint32_t *)(src + x*srclinesize + y*4));
203 for (y = start; y <
end; y++, dst += dstlinesize) {
204 for (x = 0; x < outw; x++) {
205 int64_t
v =
AV_RB48(src + x*srclinesize + y*6);
211 for (y = start; y <
end; y++, dst += dstlinesize) {
212 for (x = 0; x < outw; x++)
213 *((uint64_t *)(dst + 8*x)) = *((uint64_t *)(src + x*srclinesize + y*8));
253 #define OFFSET(x) offsetof(TransContext, x)
254 #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM
263 {
"passthrough",
"do not apply transposition if the input matches the specified geometry",
297 .priv_class = &transpose_class,
299 .
inputs = avfilter_vf_transpose_inputs,
300 .
outputs = avfilter_vf_transpose_outputs,