diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-06-03 02:59:10 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-06-03 02:59:14 +0200 |
commit | 2976e2a102cd8202e0f7b9e601d62354b7ad1c72 (patch) | |
tree | b0b2663c448af7ee268e74414f62e94bbefcc581 | |
parent | d2021f74ed5e14d2675065550ff95a225c0b60cf (diff) | |
parent | 50a4d076ce630db9b5b72c3e6348970e13ae1fb6 (diff) | |
download | ffmpeg-2976e2a102cd8202e0f7b9e601d62354b7ad1c72.tar.gz |
Merge remote-tracking branch 'cigaes/master'
* cigaes/master:
lavfi/trim: mark link closed on EOF.
ffmpeg: ignore EOF when pushing frames to filters.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | ffmpeg.c | 6 | ||||
-rw-r--r-- | libavfilter/trim.c | 4 |
2 files changed, 7 insertions, 3 deletions
@@ -1623,6 +1623,8 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) f = decoded_frame; err = av_buffersrc_add_frame_flags(ist->filters[i]->filter, f, AV_BUFFERSRC_FLAG_PUSH); + if (err == AVERROR_EOF) + err = 0; /* ignore */ if (err < 0) break; } @@ -1726,7 +1728,9 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output) } else f = decoded_frame; ret = av_buffersrc_add_frame_flags(ist->filters[i]->filter, f, AV_BUFFERSRC_FLAG_PUSH); - if (ret < 0) { + if (ret == AVERROR_EOF) { + ret = 0; /* ignore */ + } else if (ret < 0) { av_log(NULL, AV_LOG_FATAL, "Failed to inject frame into filter network: %s\n", av_err2str(ret)); exit(1); diff --git a/libavfilter/trim.c b/libavfilter/trim.c index 96c30b4d76..29c7c50178 100644 --- a/libavfilter/trim.c +++ b/libavfilter/trim.c @@ -162,7 +162,7 @@ static int trim_filter_frame(AVFilterLink *inlink, AVFrame *frame) drop = 0; if (drop) { - s->eof = 1; + s->eof = inlink->closed = 1; goto drop; } } @@ -296,7 +296,7 @@ static int atrim_filter_frame(AVFilterLink *inlink, AVFrame *frame) } if (drop) { - s->eof = 1; + s->eof = inlink->closed = 1; goto drop; } } |