aggregator: Hide GstAggregatorPad buffer and EOS fileds

And add a getter for the EOS.

The user should always use the various getters to access
those fields

https://bugzilla.gnome.org/show_bug.cgi?id=742684
This commit is contained in:
Thibault Saunier 2015-01-26 11:25:54 +01:00
parent 008de39d3f
commit 83e1895dbf

View File

@ -966,8 +966,9 @@ gst_videoaggregator_fill_queues (GstVideoAggregator * vagg,
bpad = GST_AGGREGATOR_PAD (pad); bpad = GST_AGGREGATOR_PAD (pad);
GST_OBJECT_LOCK (bpad); GST_OBJECT_LOCK (bpad);
segment = bpad->segment; segment = bpad->segment;
is_eos = bpad->eos;
GST_OBJECT_UNLOCK (bpad); GST_OBJECT_UNLOCK (bpad);
is_eos = gst_aggregator_pad_is_eos (bpad);
if (!is_eos) if (!is_eos)
eos = FALSE; eos = FALSE;
buf = gst_aggregator_pad_get_buffer (bpad); buf = gst_aggregator_pad_get_buffer (bpad);
@ -1550,6 +1551,7 @@ gst_videoaggregator_sink_clip (GstAggregator * agg,
{ {
GstVideoAggregatorPad *pad = GST_VIDEO_AGGREGATOR_PAD (bpad); GstVideoAggregatorPad *pad = GST_VIDEO_AGGREGATOR_PAD (bpad);
GstClockTime start_time, end_time; GstClockTime start_time, end_time;
GstBuffer *pbuf;
start_time = GST_BUFFER_TIMESTAMP (buf); start_time = GST_BUFFER_TIMESTAMP (buf);
if (start_time == -1) { if (start_time == -1) {
@ -1586,10 +1588,15 @@ gst_videoaggregator_sink_clip (GstAggregator * agg,
end_time *= ABS (agg->segment.rate); end_time *= ABS (agg->segment.rate);
} }
if (bpad->buffer != NULL && end_time < pad->priv->end_time) { pbuf = gst_aggregator_pad_get_buffer (bpad);
gst_buffer_unref (buf); if (pbuf != NULL) {
*outbuf = NULL; gst_buffer_unref (pbuf);
goto done;
if (end_time < pad->priv->end_time) {
gst_buffer_unref (buf);
*outbuf = NULL;
goto done;
}
} }
*outbuf = buf; *outbuf = buf;