mirror of
https://github.com/obsproject/obs-studio.git
synced 2024-07-14 23:34:08 +00:00
libobs: Handle obs_scene_add failure
Previously a NULL item would cause a crash when reading transform info. The crash can be reproduced by e.g. editing scenes.json so that two scenes contain each other. Example scenes.json: { "current_scene": "Scene", "sources": [ { "flags": 0, "id": "scene", "mixers": 0, "name": "Scene", "settings": { "items": [ { "align": 5, "bounds": { "x": 1440.0, "y": 900.0 }, "bounds_align": 0, "bounds_type": 2, "name": "Scene 2", "pos": { "x": 0.0, "y": 0.0 }, "rot": 0.0, "scale": { "x": 1.0, "y": 1.0 }, "visible": true } ] }, "sync": 0, "volume": 1.0 }, { "flags": 0, "id": "scene", "mixers": 0, "name": "Scene 2", "settings": { "items": [ { "align": 5, "bounds": { "x": 1.0, "y": 1.0 }, "bounds_align": 0, "bounds_type": 0, "name": "Scene", "pos": { "x": 854.0, "y": -520.0 }, "rot": 0.0, "scale": { "x": 1.75, "y": 1.7562724351882935 }, "visible": true } ] }, "sync": 0, "volume": 1.0 } ] }
This commit is contained in:
parent
641f626593
commit
9dca07db30
|
@ -344,6 +344,14 @@ static void scene_load_item(struct obs_scene *scene, obs_data_t *item_data)
|
|||
}
|
||||
|
||||
item = obs_scene_add(scene, source);
|
||||
if (!item) {
|
||||
blog(LOG_WARNING, "[scene_load_item] Could not add source '%s' "
|
||||
"to scene '%s'!",
|
||||
name, obs_source_get_name(scene->source));
|
||||
|
||||
obs_source_release(source);
|
||||
return;
|
||||
}
|
||||
|
||||
obs_data_set_default_int(item_data, "align",
|
||||
OBS_ALIGN_TOP | OBS_ALIGN_LEFT);
|
||||
|
|
Loading…
Reference in a new issue