|
|
@ -323,21 +323,19 @@ static int request_frame(AVFilterLink *link) |
|
|
|
|
|
|
|
|
|
|
|
switch (link->type) { |
|
|
|
switch (link->type) { |
|
|
|
case AVMEDIA_TYPE_VIDEO: |
|
|
|
case AVMEDIA_TYPE_VIDEO: |
|
|
|
if ((ret = ff_start_frame(link, avfilter_ref_buffer(buf, ~0))) < 0 || |
|
|
|
if ((ret = ff_start_frame(link, buf)) < 0 || |
|
|
|
(ret = ff_draw_slice(link, 0, link->h, 1)) < 0 || |
|
|
|
(ret = ff_draw_slice(link, 0, link->h, 1)) < 0 || |
|
|
|
(ret = ff_end_frame(link)) < 0) |
|
|
|
(ret = ff_end_frame(link)) < 0) |
|
|
|
goto fail; |
|
|
|
return ret; |
|
|
|
break; |
|
|
|
break; |
|
|
|
case AVMEDIA_TYPE_AUDIO: |
|
|
|
case AVMEDIA_TYPE_AUDIO: |
|
|
|
ret = ff_filter_samples(link, avfilter_ref_buffer(buf, ~0)); |
|
|
|
ret = ff_filter_samples(link, buf); |
|
|
|
break; |
|
|
|
break; |
|
|
|
default: |
|
|
|
default: |
|
|
|
|
|
|
|
avfilter_unref_bufferp(&buf); |
|
|
|
return AVERROR(EINVAL); |
|
|
|
return AVERROR(EINVAL); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
fail: |
|
|
|
|
|
|
|
avfilter_unref_buffer(buf); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return ret; |
|
|
|
return ret; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|