Skip to content

videoaggregator: Fix locking around vagg->info

Take GST_OBJECT_LOCK when writing vagg->info, so that reading in subclasses is protected against races, as documented in the struct.

/*< public >*/
/* read-only, with OBJECT_LOCK */
GstVideoInfo                  info;

gst_video_aggregator_default_negotiated_src_caps should take the GST_VIDEO_AGGREGATOR_LOCK to avoid racing with gst_video_aggregator_reset called by gst_video_aggregator_release_pad of the last sinkpad. Otherwise it can happen that latency = gst_util_uint64_scale (... gets called with a zero framerate.

There doesn't seem to be any reason not to use the local info instead of vagg->info, so do that.

Merge request reports