diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c index a711beea8c..898de598f2 100644 --- a/gst-libs/gst/video/gstvideoaggregator.c +++ b/gst-libs/gst/video/gstvideoaggregator.c @@ -1230,7 +1230,7 @@ gst_videoaggregator_get_next_time (GstAggregator * agg) } static GstFlowReturn -gst_videoaggregator_aggregate (GstAggregator * agg) +gst_videoaggregator_aggregate (GstAggregator * agg, gboolean timeout) { GstFlowReturn ret; GstVideoAggregator *vagg = GST_VIDEO_AGGREGATOR (agg); @@ -1275,7 +1275,7 @@ gst_videoaggregator_aggregate (GstAggregator * agg) output_end_time); } - if (res == GST_FLOW_NEEDS_DATA) { + if (res == GST_FLOW_NEEDS_DATA && !timeout) { GST_DEBUG_OBJECT (vagg, "Need more data for decisions"); ret = GST_FLOW_OK; goto done; diff --git a/gst/compositor/compositor.c b/gst/compositor/compositor.c index 04d01a14cc..c5d09011c5 100644 --- a/gst/compositor/compositor.c +++ b/gst/compositor/compositor.c @@ -280,6 +280,9 @@ gst_compositor_pad_prepare_frame (GstVideoAggregatorPad * pad, static GstAllocationParams params = { 0, 15, 0, 0, }; gint width, height; + if (!pad->buffer) + return TRUE; + if (!gst_video_frame_map (frame, &pad->buffer_vinfo, pad->buffer, GST_MAP_READ)) { GST_WARNING_OBJECT (vagg, "Could not map input buffer");