static GstFlowReturn
gst_video_aggregator_do_aggregate (GstVideoAggregator * vagg,
GstClockTime output_start_time, GstClockTime output_end_time,
- GstBuffer ** outbuf)
+ GstClockTime output_start_running_time, GstBuffer ** outbuf)
{
GstAggregator *agg = GST_AGGREGATOR (vagg);
GstFlowReturn ret = GST_FLOW_OK;
&out_stream_time);
/* Let the application know that input buffers have been staged */
- gst_aggregator_selected_samples (agg);
+ gst_aggregator_selected_samples (agg, GST_BUFFER_PTS (*outbuf),
+ GST_BUFFER_DTS (*outbuf), GST_BUFFER_DURATION (*outbuf));
/* Convert all the frames the subclass has before aggregating */
gst_element_foreach_sink_pad (GST_ELEMENT_CAST (vagg), prepare_frames, NULL);
jitter = gst_video_aggregator_do_qos (vagg, output_start_time);
if (jitter <= 0) {
flow_ret = gst_video_aggregator_do_aggregate (vagg, output_start_time,
- output_end_time, &outbuf);
+ output_end_time, output_start_running_time, &outbuf);
if (flow_ret != GST_FLOW_OK)
goto done;
vagg->priv->qos_processed++;
static GstBuffer *expected_selected_buffer = NULL;
static void
-samples_selected_cb (GstAggregator * agg, gint * called)
+samples_selected_cb (GstAggregator * agg, GstSegment * segment,
+ GstClockTime pts, GstClockTime dts, GstClockTime duration, gint * called)
{
GstPad *pad;
GstSample *sample;
}
static void
-samples_selected_cb (GstElement * agg, GHashTable * consumed_buffers)
+samples_selected_cb (GstElement * agg, GstSegment * segment, GstClockTime pts,
+ GstClockTime dts, GstClockTime duration, GHashTable * consumed_buffers)
{
- gst_printerr ("Compositor has selected the samples it will aggregate\n");
+ gst_printerr
+ ("Compositor has selected the samples it will aggregate for output buffer with PTS %"
+ GST_TIME_FORMAT " and duration %" GST_TIME_FORMAT "\n",
+ GST_TIME_ARGS (pts), GST_TIME_ARGS (duration));
gst_element_foreach_sink_pad (agg,
(GstElementForeachPadFunc) check_aggregated_buffer, consumed_buffers);
}