| @@ -166,7 +166,7 @@ static int default_start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref) · 165 unmodified lines |
| 166 | 166 | if (inlink->dst->nb_outputs) |
| 167 | 167 | outlink = inlink->dst->outputs[0]; |
| 168 | 168 | |
| 169 | | − if (outlink && (inlink->dstpad->start_frame || inlink->dstpad->end_frame || inlink->dstpad->draw_slice)) { |
| 169 | + if (outlink && (inlink->dstpad->start_frame || inlink->dstpad->end_frame)) { |
| 170 | 170 | AVFilterBufferRef *buf_out; |
| 171 | 171 | outlink->out_buf = ff_get_video_buffer(outlink, AV_PERM_WRITE, outlink->w, outlink->h); |
| 172 | 172 | if (!outlink->out_buf) |
| @@ -283,7 +283,7 @@ static int default_end_frame(AVFilterLink *inlink) · 110 unmodified lines |
| 283 | 283 | int ret = inlink->dstpad->filter_frame(inlink, inlink->cur_buf); |
| 284 | 284 | inlink->cur_buf = NULL; |
| 285 | 285 | return ret; |
| 286 | | − } else if (inlink->dstpad->start_frame || inlink->dstpad->end_frame || inlink->dstpad->draw_slice){ |
| 286 | + } else if (inlink->dstpad->start_frame || inlink->dstpad->end_frame){ |
| 287 | 287 | return ff_end_frame(outlink); |
| 288 | 288 | } else { |
| 289 | 289 | int ret = ff_filter_frame(outlink, inlink->cur_buf); |
| @@ -309,23 +309,10 @@ int ff_end_frame(AVFilterLink *link) · 19 unmodified lines |
| 309 | 309 | return ret; |
| 310 | 310 | } |
| 311 | 311 | |
| 312 | | −static int default_draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) |
| 313 | | −{ |
| 314 | | − AVFilterLink *outlink = NULL; |
| 315 | | − |
| 316 | | − if (inlink->dst->nb_outputs) |
| 317 | | − outlink = inlink->dst->outputs[0]; |
| 318 | | − |
| 319 | | − if (outlink && (inlink->dstpad->start_frame || inlink->dstpad->end_frame || inlink->dstpad->draw_slice)) |
| 320 | | − return ff_draw_slice(outlink, y, h, slice_dir); |
| 321 | | − return 0; |
| 322 | | −} |
| 323 | | − |
| 324 | 312 | int ff_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) |
| 325 | 313 | { |
| 326 | 314 | uint8_t *src[4], *dst[4]; |
| 327 | | − int i, j, vsub, ret; |
| 328 | | − int (*draw_slice)(AVFilterLink *, int, int, int); |
| 315 | + int i, j, vsub; |
| 329 | 316 | |
| 330 | 317 | FF_TPRINTF_START(NULL, draw_slice); ff_tlog_link(NULL, link, 0); ff_tlog(NULL, " y:%d h:%d dir:%d\n", y, h, slice_dir); |
| 331 | 318 | |
| @@ -358,14 +345,8 @@ int ff_draw_slice(AVFilterLink *link, int y, int h, int slice_dir) · 26 unmodified lines |
| 358 | 345 | } |
| 359 | 346 | } |
| 360 | 347 | |
| 361 | | − if (!(draw_slice = link->dstpad->draw_slice)) |
| 362 | | − draw_slice = default_draw_slice; |
| 363 | | − ret = draw_slice(link, y, h, slice_dir); |
| 364 | | − if (ret < 0) |
| 365 | | − clear_link(link); |
| 366 | | − else |
| 367 | 348 | /* incoming buffers must not be freed in start frame, |
| 368 | 349 | because they can still be in use by the automatic copy mechanism */ |
| 369 | 350 | av_assert1(link->cur_buf_copy->buf->refcount > 0); |
| 370 | | − return ret; |
| 351 | + return 0; |
| 371 | 352 | } |