Commit 8043d8eb authored by Nicolas George's avatar Nicolas George

ffmpeg: send EOF pts to filters.

parent 5ba2aef6
...@@ -2223,14 +2223,14 @@ static int ifilter_send_frame(InputFilter *ifilter, AVFrame *frame) ...@@ -2223,14 +2223,14 @@ static int ifilter_send_frame(InputFilter *ifilter, AVFrame *frame)
return 0; return 0;
} }
static int ifilter_send_eof(InputFilter *ifilter) static int ifilter_send_eof(InputFilter *ifilter, int64_t pts)
{ {
int i, j, ret; int i, j, ret;
ifilter->eof = 1; ifilter->eof = 1;
if (ifilter->filter) { 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) if (ret < 0)
return ret; return ret;
} else { } else {
...@@ -2581,8 +2581,12 @@ out: ...@@ -2581,8 +2581,12 @@ out:
static int send_filter_eof(InputStream *ist) static int send_filter_eof(InputStream *ist)
{ {
int i, ret; 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++) { 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) if (ret < 0)
return ret; return ret;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment