mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-23 23:58:17 +00:00
geometrictransform: Prevent access to the transform map when it is null
Check if the map doesn't exist when receiving a new caps and create a new one. This prevents that the transform functions try to access the map when it doesn't exist.
This commit is contained in:
parent
74471813eb
commit
7dd5b2002a
1 changed files with 6 additions and 2 deletions
|
@ -178,8 +178,8 @@ gst_geometric_transform_set_caps (GstBaseTransform * btrans, GstCaps * incaps,
|
|||
|
||||
/* regenerate the map */
|
||||
GST_OBJECT_LOCK (gt);
|
||||
if (old_width == 0 || old_height == 0 || gt->width != old_width ||
|
||||
gt->height != old_height) {
|
||||
if (gt->map == NULL || old_width == 0 || old_height == 0
|
||||
|| gt->width != old_width || gt->height != old_height) {
|
||||
if (klass->prepare_func)
|
||||
if (!klass->prepare_func (gt)) {
|
||||
GST_OBJECT_UNLOCK (gt);
|
||||
|
@ -352,6 +352,10 @@ gst_geometric_transform_stop (GstBaseTransform * trans)
|
|||
GstGeometricTransform *gt = GST_GEOMETRIC_TRANSFORM_CAST (trans);
|
||||
|
||||
GST_INFO_OBJECT (gt, "Deleting transform map");
|
||||
|
||||
gt->width = 0;
|
||||
gt->height = 0;
|
||||
|
||||
g_free (gt->map);
|
||||
gt->map = NULL;
|
||||
|
||||
|
|
Loading…
Reference in a new issue