pix_fmts, lavfi->graph)) < 0)
FAIL(ret);
lavfi->sinks[i] = sink;
- if ((ret = avfilter_link(inout->filter_ctx, 0, sink, 0)) < 0)
+ if ((ret = avfilter_link(inout->filter_ctx, inout->pad_idx, sink, 0)) < 0)
FAIL(ret);
}
st->codec->time_base = link->time_base;
st->codec->width = link->w;
st->codec->height = link->h;
+ st ->sample_aspect_ratio =
+ st->codec->sample_aspect_ratio = link->sample_aspect_ratio;
}
}
{
LavfiContext *lavfi = avctx->priv_data;
double min_pts = DBL_MAX;
- int min_pts_sink_idx;
+ int min_pts_sink_idx = 0;
AVFilterBufferRef *picref;
AVPicture pict;
int ret, i, size;
if (ret < 0)
return ret;
d = av_rescale_q(picref->pts, tb, AV_TIME_BASE_Q);
+ av_dlog(avctx, "sink_idx:%d time:%f\n", i, d);
+
if (d < min_pts) {
min_pts = d;
min_pts_sink_idx = i;
}
}
+ av_dlog(avctx, "min_pts_sink_idx:%i\n", min_pts_sink_idx);
av_vsink_buffer_get_video_buffer_ref(lavfi->sinks[min_pts_sink_idx],
&picref, 0);
picref->video->h, pkt->data, size);
pkt->stream_index = lavfi->sink_stream_map[min_pts_sink_idx];
pkt->pts = picref->pts;
+ pkt->pos = picref->pos;
pkt->size = size;
avfilter_unref_buffer(picref);