summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>2020-11-09 18:00:48 +0100
committerJan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>2020-11-09 18:00:48 +0100
commit82c90f80be447d464690e49ca068b54a058c91b7 (patch)
tree4d93e748d5875f16b3c7a6636eac58b641988a16
parent0c293361a7247b9a754b4daba279eb96baf00f47 (diff)
downloadgstreamer-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.c4
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);
}