diff options
author | Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> | 2020-11-09 18:00:48 +0100 |
---|---|---|
committer | Jan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com> | 2020-11-09 18:00:48 +0100 |
commit | 82c90f80be447d464690e49ca068b54a058c91b7 (patch) | |
tree | 4d93e748d5875f16b3c7a6636eac58b641988a16 | |
parent | 0c293361a7247b9a754b4daba279eb96baf00f47 (diff) | |
download | gstreamer-plugins-base-82c90f80be447d464690e49ca068b54a058c91b7.tar.gz |
videoaggregator: Use local var instead of reloading vagg->info
`gst_video_aggregator_default_negotiated_src_caps` races with
`gst_video_aggregator_reset` called by
`gst_video_aggregator_release_pad` of the last sinkpad. 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.
Cherry-picked changes from b3fe2d3623722ebf9dfe5c3dc198764ce17cba38.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/926>
-rw-r--r-- | gst-libs/gst/video/gstvideoaggregator.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gst-libs/gst/video/gstvideoaggregator.c b/gst-libs/gst/video/gstvideoaggregator.c index bb0379bcf..6ea423e59 100644 --- a/gst-libs/gst/video/gstvideoaggregator.c +++ b/gst-libs/gst/video/gstvideoaggregator.c @@ -1061,7 +1061,7 @@ gst_video_aggregator_default_negotiated_src_caps (GstAggregator * agg, vagg->info = info; GST_OBJECT_UNLOCK (vagg); - finfo = vagg->info.finfo; + finfo = info.finfo; if (at_least_one_alpha && !(finfo->flags & GST_VIDEO_FORMAT_FLAG_ALPHA)) { GST_ELEMENT_ERROR (vagg, CORE, NEGOTIATION, @@ -1082,7 +1082,7 @@ gst_video_aggregator_default_negotiated_src_caps (GstAggregator * agg, gst_aggregator_set_src_caps (agg, caps); latency = gst_util_uint64_scale (GST_SECOND, - GST_VIDEO_INFO_FPS_D (&vagg->info), GST_VIDEO_INFO_FPS_N (&vagg->info)); + GST_VIDEO_INFO_FPS_D (&info), GST_VIDEO_INFO_FPS_N (&info)); gst_aggregator_set_latency (agg, latency, latency); } |