Skip to content
  • Jan Alexander Steffens's avatar
    videoaggregator: Fix locking around vagg->info · b3fe2d36
    Jan Alexander Steffens authored and GStreamer Marge Bot's avatar GStreamer Marge Bot committed
    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.
    
    Part-of: <gstreamer/gst-plugins-base!915>
    b3fe2d36