Message ID | 20170505233404.16279-1-cus@passwd.hu |
---|---|
State | Accepted |
Commit | c0443c1af1a772daf33731da7262f3aa6b28dc8e |
Headers | show |
Le septidi 17 floréal, an CCXXV, Marton Balint a écrit : > Fixes a regression introduced in 32c59a115d3cc757676b5384a5ea44b5a7a7b872, > becoming effective in 912969a33e313c57c906e87a7e2367b78a2160f4. > > Fixes trimmed output of > ffmpeg -f lavfi -i "sine=d=0.01" -f lavfi -i "sine=d=1" -filter_complex "[0:a]anull[a1];[1:a]anull[a2]" -map "[a1]" -f null none -map "[a2]" -f framecrc - > --- > libavfilter/avfiltergraph.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) LGTM, thanks for finding that. Out of curiosity, how did you arrive to a graph with buffersc and buffersink connected directly? Regards,
On Sun, 7 May 2017, Nicolas George wrote: > Le septidi 17 floréal, an CCXXV, Marton Balint a écrit : >> Fixes a regression introduced in 32c59a115d3cc757676b5384a5ea44b5a7a7b872, >> becoming effective in 912969a33e313c57c906e87a7e2367b78a2160f4. >> >> Fixes trimmed output of >> ffmpeg -f lavfi -i "sine=d=0.01" -f lavfi -i "sine=d=1" -filter_complex "[0:a]anull[a1];[1:a]anull[a2]" -map "[a1]" -f null none -map "[a2]" -f framecrc - >> --- >> libavfilter/avfiltergraph.c | 9 ++++++--- >> 1 file changed, 6 insertions(+), 3 deletions(-) > > LGTM, thanks for finding that. > > Out of curiosity, how did you arrive to a graph with buffersc and > buffersink connected directly? The original command and filter graph which I used when I hit this bug was quite complex and was operating on a real file, I had to come up with a simplified version to make debugging easier. Obviously you can replace anull with any audio filter and still experience the trimmed output. Thanks, Marton
On Sun, 7 May 2017, Marton Balint wrote: > > > On Sun, 7 May 2017, Nicolas George wrote: > >> Le septidi 17 floréal, an CCXXV, Marton Balint a écrit : >>> Fixes a regression introduced in 32c59a115d3cc757676b5384a5ea44b5a7a7b872, >>> becoming effective in 912969a33e313c57c906e87a7e2367b78a2160f4. >>> >>> Fixes trimmed output of >>> ffmpeg -f lavfi -i "sine=d=0.01" -f lavfi -i "sine=d=1" -filter_complex > "[0:a]anull[a1];[1:a]anull[a2]" -map "[a1]" -f null none -map "[a2]" -f > framecrc - >>> --- >>> libavfilter/avfiltergraph.c | 9 ++++++--- >>> 1 file changed, 6 insertions(+), 3 deletions(-) >> >> LGTM, thanks for finding that. >> >> Out of curiosity, how did you arrive to a graph with buffersc and >> buffersink connected directly? > > The original command and filter graph which I used when I hit this bug was > quite complex and was operating on a real file, I had to come up with a > simplified version to make debugging easier. > > Obviously you can replace anull with any audio filter and still experience > the trimmed output. Pushed and backported to 3.3. Thanks, Marton
diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index f7fbf119eb..598e50a077 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -1399,10 +1399,13 @@ int avfilter_graph_request_oldest(AVFilterGraph *graph) oldest = graph->sink_links[0]; if (oldest->dst->filter->activate) { /* For now, buffersink is the only filter implementing activate. */ - return av_buffersink_get_frame_flags(oldest->dst, NULL, - AV_BUFFERSINK_FLAG_PEEK); + r = av_buffersink_get_frame_flags(oldest->dst, NULL, + AV_BUFFERSINK_FLAG_PEEK); + if (r != AVERROR_EOF) + return r; + } else { + r = ff_request_frame(oldest); } - r = ff_request_frame(oldest); if (r != AVERROR_EOF) break; av_log(oldest->dst, AV_LOG_DEBUG, "EOF on sink link %s:%s.\n",