mirror of https://git.ffmpeg.org/ffmpeg.git
ffmpeg: send EOF pts to filters.
This commit is contained in:
parent
5ba2aef6ec
commit
8043d8eb3b
10
ffmpeg.c
10
ffmpeg.c
|
@ -2223,14 +2223,14 @@ static int ifilter_send_frame(InputFilter *ifilter, AVFrame *frame)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int ifilter_send_eof(InputFilter *ifilter)
|
||||
static int ifilter_send_eof(InputFilter *ifilter, int64_t pts)
|
||||
{
|
||||
int i, j, ret;
|
||||
|
||||
ifilter->eof = 1;
|
||||
|
||||
if (ifilter->filter) {
|
||||
ret = av_buffersrc_add_frame_flags(ifilter->filter, NULL, AV_BUFFERSRC_FLAG_PUSH);
|
||||
ret = av_buffersrc_close(ifilter->filter, pts, AV_BUFFERSRC_FLAG_PUSH);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
} else {
|
||||
|
@ -2581,8 +2581,12 @@ out:
|
|||
static int send_filter_eof(InputStream *ist)
|
||||
{
|
||||
int i, ret;
|
||||
/* TODO keep pts also in stream time base to avoid converting back */
|
||||
int64_t pts = av_rescale_q_rnd(ist->pts, AV_TIME_BASE_Q, ist->st->time_base,
|
||||
AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX);
|
||||
|
||||
for (i = 0; i < ist->nb_filters; i++) {
|
||||
ret = ifilter_send_eof(ist->filters[i]);
|
||||
ret = ifilter_send_eof(ist->filters[i], pts);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue